17 #ifndef LIB_ADAFRUIT_AS276X 18 #define LIB_ADAFRUIT_AS276X 26 #include <Adafruit_I2CDevice.h> 31 #define AS726x_ADDRESS (0x49) 40 AS726X_HW_VERSION = 0x00,
41 AS726X_FW_VERSION = 0x02,
42 AS726X_CONTROL_SETUP = 0x04,
44 AS726X_DEVICE_TEMP = 0x06,
45 AS726X_LED_CONTROL = 0x07,
75 AS726X_SLAVE_STATUS_REG = 0x00,
76 AS726X_SLAVE_WRITE_REG = 0x01,
77 AS726X_SLAVE_READ_REG = 0x02,
78 AS726X_SLAVE_TX_VALID = 0x02,
79 AS726X_SLAVE_RX_VALID = 0x01,
94 AS7262_VIOLET_CALIBRATED = 0x14,
95 AS7262_BLUE_CALIBRATED = 0x18,
96 AS7262_GREEN_CALIBRATED = 0x1C,
97 AS7262_YELLOW_CALIBRATED = 0x20,
98 AS7262_ORANGE_CALIBRATED = 0x24,
99 AS7262_RED_CALIBRATED = 0x28,
152 #define AS726x_INTEGRATION_TIME_MULT 2.8 153 #define AS726x_NUM_CHANNELS 6 185 bool begin(TwoWire *theWire = &Wire);
219 bool dataReady() {
return virtualRead(AS726X_CONTROL_SETUP) & 0x02; }
311 Adafruit_I2CDevice *i2c_dev = NULL;
314 void write8(byte reg, byte value);
315 uint8_t read8(byte reg);
317 uint8_t virtualRead(uint8_t addr);
318 void virtualWrite(uint8_t addr, uint8_t value);
320 void read(uint8_t reg, uint8_t *buf, uint8_t num);
321 void write(uint8_t reg, uint8_t *buf, uint8_t num);
324 struct control_setup {
329 uint8_t DATA_RDY : 1;
352 return ((DATA_RDY << 1) | (BANK << 2) | (GAIN << 4) | (INT << 6) |
356 control_setup _control_setup;
363 uint8_t
get() {
return INT_T; };
380 return (LED_IND | (ICL_IND << 1) | (LED_DRV << 3) | (ICL_DRV << 4));
383 led_control _led_control;
void drvOn()
turn on the driver LED
Definition: Adafruit_AS726x.cpp:82
float readCalibratedOrange()
Read calibrated orange color value (AS7262 only)
Definition: Adafruit_AS726x.h:295
void startMeasurement()
begin a measurement. This sets the conversion mode to ONE_SHOT.
Definition: Adafruit_AS726x.cpp:193
float readCalibratedViolet()
Read calibrated violet color value (AS7262 only)
Definition: Adafruit_AS726x.h:267
uint16_t readChannel(uint8_t channel)
read an individual raw spectral channel
Definition: Adafruit_AS726x.cpp:207
uint8_t readTemperature()
Read the on-board temperature sensor.
Definition: Adafruit_AS726x.h:225
void setGain(uint8_t gain)
Set the sensor gain.
Definition: Adafruit_AS726x.cpp:151
float readCalibratedBlue()
Read calibrated blue color value (AS7262 only)
Definition: Adafruit_AS726x.h:274
float readCalibratedRed()
Read calibrated red color value (AS7262 only)
Definition: Adafruit_AS726x.h:302
void readRawValues(uint16_t *buf, uint8_t num=AS726x_NUM_CHANNELS)
read the raw channels
Definition: Adafruit_AS726x.cpp:219
bool dataReady()
Check if the sensor is ready to return data.
Definition: Adafruit_AS726x.h:219
float readCalibratedValue(uint8_t channel)
read an individual calibrated spectral channel
Definition: Adafruit_AS726x.cpp:288
float readCalibratedGreen()
Read calibrated green color value (AS7262 only)
Definition: Adafruit_AS726x.h:281
float readCalibratedYellow()
Read calibrated yellow color value (AS7262 only)
Definition: Adafruit_AS726x.h:288
uint16_t readViolet()
Read raw violet color value (AS7262 only)
Definition: Adafruit_AS726x.h:232
drv_led_current_limits
Driver LED current limit settings. Default is 12.5 mA.
Definition: Adafruit_AS726x.h:143
uint16_t readRed()
Read raw red color value (AS7262 only)
Definition: Adafruit_AS726x.h:257
void drvOff()
turn off the driver LED
Definition: Adafruit_AS726x.cpp:92
void disableInterrupt()
disable the device interrupt
Definition: Adafruit_AS726x.cpp:183
Class that stores state and functions for interacting with AS726x spectral sensors.
Definition: Adafruit_AS726x.h:175
#define AS726x_ADDRESS
default I2C address
Definition: Adafruit_AS726x.h:31
void setConversionType(uint8_t type)
Set the conversion mode.
Definition: Adafruit_AS726x.cpp:139
void enableInterrupt()
enable the device interrupt
Definition: Adafruit_AS726x.cpp:173
uint16_t readGreen()
Read raw green color value (AS7262 only)
Definition: Adafruit_AS726x.h:242
uint16_t readOrange()
Read raw orange color value (AS7262 only)
Definition: Adafruit_AS726x.h:252
void setDrvCurrent(uint8_t current)
set the current limit for the driver LED.
Definition: Adafruit_AS726x.cpp:104
uint16_t readBlue()
Read raw blue color value (AS7262 only)
Definition: Adafruit_AS726x.h:237
void readCalibratedValues(float *buf, uint8_t num=AS726x_NUM_CHANNELS)
read the calibrated channels
Definition: Adafruit_AS726x.cpp:254
conversion_types
conversion modes. Default is Mode 2
Definition: Adafruit_AS726x.h:107
channel_gain
gain settings. Default is 1x gain
Definition: Adafruit_AS726x.h:119
uint16_t readYellow()
Read raw yellow color value (AS7262 only)
Definition: Adafruit_AS726x.h:247
void indicateLED(boolean on)
turn on/off the indicator LED
Definition: Adafruit_AS726x.cpp:115
#define AS726x_NUM_CHANNELS
number of sensor channels
Definition: Adafruit_AS726x.h:153
ind_led_current_limits
indicator LED current limit settings. Default is 1mA
Definition: Adafruit_AS726x.h:131
void setIndicateCurrent(uint8_t current)
set the current limit for the driver LED.
Definition: Adafruit_AS726x.cpp:127
Adafruit_AS726x(int8_t addr=AS726x_ADDRESS)
Class constructor.
Definition: Adafruit_AS726x.h:182
bool begin(TwoWire *theWire=&Wire)
Set up hardware and begin communication with the sensor.
Definition: Adafruit_AS726x.cpp:41
void setIntegrationTime(uint8_t time)
Set the integration time for the sensor.
Definition: Adafruit_AS726x.cpp:163