30 #include <mraa/i2c.hpp> 34 #define TCS37727_NAME "TCS37727" 35 #define TCS37727_I2C_ADDRESS 0x29 36 #define TCS37727_DEVICE_ID 0x49 37 #define TCS37727_DEVICE_ID_REG 0x92 39 #define TCS37727_ATIME_DEFAULT 200000 40 #define TCS37727_AG_THRESHOLD_LOW 200 41 #define TCS37727_AG_THRESHOLD_HIGH (65535 - TCS37727_AG_THRESHOLD_LOW) 45 #define TCS37727_ENABLE 0x80 46 #define TCS37727_ATIME 0x81 47 #define TCS37727_PTIME 0x82 48 #define TCS37727_WTIME 0x83 49 #define TCS37727_AILTL 0x04 50 #define TCS37727_AILTH 0x05 51 #define TCS37727_AIHTL 0x06 52 #define TCS37727_AIHTH 0x07 53 #define TCS37727_PILTL 0x08 54 #define TCS37727_PILTH 0x09 55 #define TCS37727_PIHTL 0x0A 56 #define TCS37727_PIHTH 0x0B 57 #define TCS37727_PERS 0x8C 58 #define TCS37727_CONFIG 0x8D 59 #define TCS37727_PPULSE 0x8E 60 #define TCS37727_CONTROL 0x8F 61 #define TCS37727_STATUS 0x93 62 #define TCS37727_CDATA 0x14 63 #define TCS37727_CDATAH 0x15 64 #define TCS37727_RDATA 0x16 65 #define TCS37727_RDATAH 0x17 66 #define TCS37727_GDATA 0x18 67 #define TCS37727_GDATAH 0x19 68 #define TCS37727_BDATA 0x1A 69 #define TCS37727_BDATAH 0x1B 70 #define TCS37727_PDATA 0x1C 71 #define TCS37727_PDATAH 0x1D 74 #define TCS37727_BYTE_TRANS 0x80 75 #define TCS37727_INC_TRANS 0xA0 76 #define TCS37727_SF_PICLR 0xE5 77 #define TCS37727_SF_CICLR 0xE6 78 #define TCS37727_SF_PCICLR 0xE7 81 #define TCS37727_ENABLE_PIEN (1 << 5) 82 #define TCS37727_ENABLE_AIEN (1 << 4) 83 #define TCS37727_ENABLE_WEN (1 << 3) 84 #define TCS37727_ENABLE_PEN (1 << 2) 85 #define TCS37727_ENABLE_AEN (1 << 1) 86 #define TCS37727_ENABLE_PON (1 << 0) 89 #define TCS37727_CONTROL_PDRIVE_100 0x00 90 #define TCS37727_CONTROL_PDRIVE_50 0x04 91 #define TCS37727_CONTROL_PDRIVE_25 0x08 92 #define TCS37727_CONTROL_PDRIVE_12 0x0C 93 #define TCS37727_CONTROL_PDRIVE_MASK 0x0C 94 #define TCS37727_CONTROL_AGAIN_1 0x00 95 #define TCS37727_CONTROL_AGAIN_4 0x01 96 #define TCS37727_CONTROL_AGAIN_16 0x02 97 #define TCS37727_CONTROL_AGAIN_60 0x03 98 #define TCS37727_CONTROL_AGAIN_MASK 0x03 101 #define TCS37727_ATIME_MIN 2400 102 #define TCS37727_ATIME_MAX 614000 104 #define TCS37727_ATIME_TO_REG(val) (256 - (uint8_t)((val) / 2400)) 105 #define TCS37727_ATIME_TO_US(reg) ((256 - (uint8_t)(reg)) * 2400) 110 #define R_COEF_IF 136 111 #define G_COEF_IF 1000 112 #define B_COEF_IF -444 113 #define CT_COEF_IF 3810 114 #define CT_OFFSET_IF 1391 169 TCS37727 (
int bus,
int atime_us=TCS37727_ATIME_DEFAULT,
170 int devAddr=TCS37727_I2C_ADDRESS);
200 uint8_t trimGain(
int rawc);
254 uint32_t
getLux(
int bSampleData = 0);
281 mraa::I2c m_i2ControlCtx;
int setStandby(void)
Definition: tcs37727.cpp:114
uint32_t getColorTemperature(int bSampleData=0)
Definition: tcs37727.cpp:319
uint32_t ct
Definition: tcs37727.hpp:124
uint32_t blue
Definition: tcs37727.hpp:121
int getData(tcs37727_data_t *data, int bSampleData=0)
Definition: tcs37727.cpp:332
uint32_t red
Definition: tcs37727.hpp:119
uint32_t green
Definition: tcs37727.hpp:120
int setActive(void)
Definition: tcs37727.cpp:96
Definition: tcs37727.hpp:118
C++ API wrapper for the bh1749 driver.
Definition: a110x.hpp:29
uint32_t clear
Definition: tcs37727.hpp:122
uint32_t getChannelGreen(int bSampleData=0)
Definition: tcs37727.cpp:267
uint32_t getChannelBlue(int bSampleData=0)
Definition: tcs37727.cpp:280
uint32_t lux
Definition: tcs37727.hpp:123
API for the TCS37727 Color Light-To-Digital Converter.
Definition: tcs37727.hpp:158
int checkID(void)
Definition: tcs37727.cpp:82
uint32_t getChannelRed(int bSampleData=0)
Definition: tcs37727.cpp:254
uint32_t getLux(int bSampleData=0)
Definition: tcs37727.cpp:306
TCS37727(int bus, int atime_us=TCS37727_ATIME_DEFAULT, int devAddr=TCS37727_I2C_ADDRESS)
Definition: tcs37727.cpp:39
int sampleData(void)
Definition: tcs37727.cpp:208
uint32_t getChannelClear(int bSampleData=0)
Definition: tcs37727.cpp:293