14 #define I2C_AS72XX_SLAVE_STATUS_REG 0x00
15 #define I2C_AS72XX_SLAVE_WRITE_REG 0x01
16 #define I2C_AS72XX_SLAVE_READ_REG 0x02
17 #define I2C_AS72XX_SLAVE_TX_VALID 0x02
18 #define I2C_AS72XX_SLAVE_RX_VALID 0x01
20 #define I2C_AS726X_DEVICE_TYPE 0x00
21 #define I2C_AS726X_HW_VERSION 0x01
22 #define I2C_AS726X_CONTROL_SETUP 0x04
23 #define I2C_AS726X_INT_T 0x05
24 #define I2C_AS726X_DEVICE_TEMP 0x06
25 #define I2C_AS726X_LED_CONTROL 0x07
27 #define I2C_AS7262_V 0x08
28 #define I2C_AS7262_B 0x0A
29 #define I2C_AS7262_G 0x0C
30 #define I2C_AS7262_Y 0x0E
31 #define I2C_AS7262_O 0x10
32 #define I2C_AS7262_R 0x12
33 #define I2C_AS7262_V_CAL 0x14
34 #define I2C_AS7262_B_CAL 0x18
35 #define I2C_AS7262_G_CAL 0x1C
36 #define I2C_AS7262_Y_CAL 0x20
37 #define I2C_AS7262_O_CAL 0x24
38 #define I2C_AS7262_R_CAL 0x28
40 typedef bool(*BreakCondition)();
45 uint8_t addresses[MAX_MRM_COL];
46 HardwareSerial * serial;
53 float calibrated(uint8_t sensorNumber, uint8_t firstRegister);
60 uint16_t channel(uint8_t sensorNumber, uint8_t firstRegister);
66 void print(String message,
bool eol =
false);
73 uint8_t read(uint8_t sensorNumber, uint8_t virtualReg);
80 uint8_t readRegister(uint8_t sensorNumber, uint8_t addr);
87 void write(uint8_t sensorNumber, uint8_t virtualReg, uint8_t d);
94 void writeRegister(uint8_t sensorNumber, uint8_t addr, uint8_t val);
101 Mrm_col(HardwareSerial * hardwareSerial = 0);
112 void add(
byte address = 0x49, uint8_t integrationTime = 50, uint8_t dataConversionType = 2, uint8_t gain = 3);
118 uint16_t
blue(uint8_t sensorNumber);
155 void gainSet(uint8_t sensorNumber, uint8_t gain);
161 uint16_t
green(uint8_t sensorNumber);
217 uint16_t
orange(uint8_t sensorNumber);
229 uint16_t
red(uint8_t sensorNumber);
240 void reset(uint8_t sensorNumber);
251 void test(BreakCondition breakWhen = 0);
257 uint16_t
violet(uint8_t sensorNumber);
269 uint16_t
yellow(uint8_t sensorNumber);
279 void error(String message);
void interruptSet(uint8_t sensorNumber, bool enabled)
Definition: mrm-col.cpp:171
uint16_t green(uint8_t sensorNumber)
Definition: mrm-col.cpp:146
void gainSet(uint8_t sensorNumber, uint8_t gain)
Definition: mrm-col.cpp:133
uint16_t violet(uint8_t sensorNumber)
Definition: mrm-col.cpp:370
float blueCalibrated(uint8_t sensorNumber)
Definition: mrm-col.cpp:51
void ledIndicatorCurrentSet(uint8_t sensorNumber, uint8_t current)
Definition: mrm-col.cpp:211
uint16_t yellow(uint8_t sensorNumber)
Definition: mrm-col.cpp:429
void dataReadyClear(uint8_t sensorNumber)
Definition: mrm-col.cpp:117
void integrationTimeSet(uint8_t sensorNumber, uint8_t integrationValue)
Definition: mrm-col.cpp:162
void ledForIlluminationCurrentSet(uint8_t sensorNumber, uint8_t current)
Definition: mrm-col.cpp:185
void reset(uint8_t sensorNumber)
Definition: mrm-col.cpp:334
Mrm_col(HardwareSerial *hardwareSerial=0)
Definition: mrm-col.cpp:7
void add(byte address=0x49, uint8_t integrationTime=50, uint8_t dataConversionType=2, uint8_t gain=3)
Definition: mrm-col.cpp:19
void ledIndicatorSet(uint8_t sensorNumber, bool enabled)
Definition: mrm-col.cpp:223
uint16_t orange(uint8_t sensorNumber)
Definition: mrm-col.cpp:233
uint16_t red(uint8_t sensorNumber)
Definition: mrm-col.cpp:319
uint16_t blue(uint8_t sensorNumber)
Definition: mrm-col.cpp:43
float orangeCalibrated(uint8_t sensorNumber)
Definition: mrm-col.cpp:241
void test(BreakCondition breakWhen=0)
Definition: mrm-col.cpp:351
void ledForIlluminationSet(uint8_t sensorNumber, bool enabled)
Definition: mrm-col.cpp:197
float violetCalibrated(uint8_t sensorNumber)
Definition: mrm-col.cpp:378
float yellowCalibrated(uint8_t sensorNumber)
Definition: mrm-col.cpp:437
void dataConversionTypeSet(uint8_t sensorNumber, uint8_t mode)
Definition: mrm-col.cpp:94
float redCalibrated(uint8_t sensorNumber)
Definition: mrm-col.cpp:327
uint8_t temperature(uint8_t sensorNumber)
Definition: mrm-col.cpp:344
boolean dataReadyGet(uint8_t sensorNumber)
Definition: mrm-col.cpp:109
float greenCalibrated(uint8_t sensorNumber)
Definition: mrm-col.cpp:154