Vishay VEML6040 Color RGB sensor I2C driver library
Dependents: test_VEML6040 testSensor
VEML6040.h@5:a4dcc19d057e, 2017-11-06 (annotated)
- Committer:
- Rhyme
- Date:
- Mon Nov 06 01:18:56 2017 +0000
- Revision:
- 5:a4dcc19d057e
- Parent:
- 4:f5b142e3fe79
get and set Integration Time (IT) were added
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shockey | 0:e6e6107c659e | 1 | /* |
shockey | 0:e6e6107c659e | 2 | * File description |
shockey | 0:e6e6107c659e | 3 | * |
shockey | 0:e6e6107c659e | 4 | */ |
shockey | 0:e6e6107c659e | 5 | |
shockey | 0:e6e6107c659e | 6 | #ifndef _VEML6040_H_ |
shockey | 0:e6e6107c659e | 7 | #define _VEML6040_H_ |
shockey | 0:e6e6107c659e | 8 | |
shockey | 0:e6e6107c659e | 9 | #include "mbed.h" |
shockey | 0:e6e6107c659e | 10 | |
shockey | 0:e6e6107c659e | 11 | /** |
shockey | 0:e6e6107c659e | 12 | * RGBW Color Sensor with I2C Interface |
shockey | 0:e6e6107c659e | 13 | * I2C 7bit address: 0x10 |
shockey | 0:e6e6107c659e | 14 | * |
shockey | 0:e6e6107c659e | 15 | */ |
shockey | 0:e6e6107c659e | 16 | |
shockey | 0:e6e6107c659e | 17 | class VEML6040 |
shockey | 0:e6e6107c659e | 18 | { |
shockey | 0:e6e6107c659e | 19 | public: |
shockey | 0:e6e6107c659e | 20 | /** |
shockey | 0:e6e6107c659e | 21 | * constructor |
shockey | 0:e6e6107c659e | 22 | * |
shockey | 0:e6e6107c659e | 23 | * @param sda SDA pin |
shockey | 0:e6e6107c659e | 24 | * @param scl SCL pin |
shockey | 0:e6e6107c659e | 25 | * @param addr address of the I2C peripheral |
shockey | 0:e6e6107c659e | 26 | */ |
shockey | 0:e6e6107c659e | 27 | VEML6040(PinName sda, PinName scl, int addr) ; |
shockey | 0:e6e6107c659e | 28 | |
shockey | 0:e6e6107c659e | 29 | ~VEML6040() ; |
shockey | 0:e6e6107c659e | 30 | |
shockey | 0:e6e6107c659e | 31 | /* |
shockey | 0:e6e6107c659e | 32 | * some member functions here (yet to be written) |
shockey | 0:e6e6107c659e | 33 | */ |
Rhyme | 3:c6614597c135 | 34 | /** |
Rhyme | 3:c6614597c135 | 35 | * get Red |
Rhyme | 3:c6614597c135 | 36 | * @param none |
Rhyme | 3:c6614597c135 | 37 | * @returns float value of Red |
Rhyme | 3:c6614597c135 | 38 | */ |
shockey | 0:e6e6107c659e | 39 | float getR(void) ; // return float value of Red |
Rhyme | 3:c6614597c135 | 40 | |
Rhyme | 3:c6614597c135 | 41 | /** |
Rhyme | 3:c6614597c135 | 42 | * get Green |
Rhyme | 3:c6614597c135 | 43 | * @param none |
Rhyme | 3:c6614597c135 | 44 | * @returns float value of Green |
Rhyme | 3:c6614597c135 | 45 | */ |
shockey | 0:e6e6107c659e | 46 | float getG(void) ; // return float value of Green |
Rhyme | 3:c6614597c135 | 47 | |
Rhyme | 3:c6614597c135 | 48 | /** |
Rhyme | 3:c6614597c135 | 49 | * get Blue |
Rhyme | 3:c6614597c135 | 50 | * @param none |
Rhyme | 3:c6614597c135 | 51 | * @returns float value of Blue |
Rhyme | 3:c6614597c135 | 52 | */ |
shockey | 0:e6e6107c659e | 53 | float getB(void) ; // return float value of Blue |
Rhyme | 3:c6614597c135 | 54 | |
Rhyme | 3:c6614597c135 | 55 | /** |
Rhyme | 3:c6614597c135 | 56 | * get White |
Rhyme | 3:c6614597c135 | 57 | * @param none |
Rhyme | 3:c6614597c135 | 58 | * @returns float value of White |
Rhyme | 3:c6614597c135 | 59 | */ |
shockey | 0:e6e6107c659e | 60 | float getW(void) ; // return float value of White |
Rhyme | 3:c6614597c135 | 61 | |
Rhyme | 3:c6614597c135 | 62 | /** |
Rhyme | 3:c6614597c135 | 63 | * get CCT(McCAMY FORMULA) value X |
Rhyme | 3:c6614597c135 | 64 | * @param none |
Rhyme | 3:c6614597c135 | 65 | * @returns float CCT value X |
Rhyme | 3:c6614597c135 | 66 | */ |
shockey | 1:5540b216acfc | 67 | float getX(void) ; // return float value of X |
Rhyme | 3:c6614597c135 | 68 | |
Rhyme | 3:c6614597c135 | 69 | /** |
Rhyme | 3:c6614597c135 | 70 | * get CCT(McCAMY FOMULA) value Y |
Rhyme | 3:c6614597c135 | 71 | * @param none |
Rhyme | 3:c6614597c135 | 72 | * @returns float CCT value Y |
Rhyme | 3:c6614597c135 | 73 | */ |
shockey | 1:5540b216acfc | 74 | float getY(void) ; // return float value of Y |
Rhyme | 3:c6614597c135 | 75 | |
Rhyme | 3:c6614597c135 | 76 | /** |
Rhyme | 3:c6614597c135 | 77 | * get CCT(McCAMY FOMULA) value Z |
Rhyme | 3:c6614597c135 | 78 | * @param none |
Rhyme | 3:c6614597c135 | 79 | * @returns float CCT value Z |
Rhyme | 3:c6614597c135 | 80 | */ |
shockey | 1:5540b216acfc | 81 | float getZ(void) ; // return float value of Z |
Rhyme | 3:c6614597c135 | 82 | |
Rhyme | 3:c6614597c135 | 83 | /** |
Rhyme | 3:c6614597c135 | 84 | * get CIE1931 X |
Rhyme | 3:c6614597c135 | 85 | * @param none |
Rhyme | 3:c6614597c135 | 86 | * @returns float CIE1931 X |
Rhyme | 3:c6614597c135 | 87 | */ |
shockey | 1:5540b216acfc | 88 | float getCIEX(void) ; // return float value of CIE1931_x |
Rhyme | 3:c6614597c135 | 89 | |
Rhyme | 3:c6614597c135 | 90 | /** |
Rhyme | 3:c6614597c135 | 91 | * get CIE1931 Y |
Rhyme | 3:c6614597c135 | 92 | * @param none |
Rhyme | 3:c6614597c135 | 93 | * @returns float CIE1931 Y |
Rhyme | 3:c6614597c135 | 94 | */ |
shockey | 1:5540b216acfc | 95 | float getCIEY(void) ; // return float value of CIE1931_y |
shockey | 1:5540b216acfc | 96 | |
shockey | 0:e6e6107c659e | 97 | void getCOLORConf(uint8_t *colorconf) ; |
shockey | 0:e6e6107c659e | 98 | void setCOLORConf(uint8_t colorconf) ; |
Rhyme | 5:a4dcc19d057e | 99 | |
Rhyme | 5:a4dcc19d057e | 100 | /** |
Rhyme | 5:a4dcc19d057e | 101 | * get Integration Time accoding to |
Rhyme | 5:a4dcc19d057e | 102 | * current colorconf setting. |
Rhyme | 5:a4dcc19d057e | 103 | * As error margin is +/-20%, |
Rhyme | 5:a4dcc19d057e | 104 | * The value has 25% addition. |
Rhyme | 5:a4dcc19d057e | 105 | */ |
Rhyme | 5:a4dcc19d057e | 106 | int getIT(void) ; |
Rhyme | 5:a4dcc19d057e | 107 | |
Rhyme | 5:a4dcc19d057e | 108 | /** |
Rhyme | 5:a4dcc19d057e | 109 | * set Integration Time |
Rhyme | 5:a4dcc19d057e | 110 | */ |
Rhyme | 5:a4dcc19d057e | 111 | #define IT_40MS 0x00 |
Rhyme | 5:a4dcc19d057e | 112 | #define IT_80MS 0x10 |
Rhyme | 5:a4dcc19d057e | 113 | #define IT_160MS 0x20 |
Rhyme | 5:a4dcc19d057e | 114 | #define IT_320MS 0x30 |
Rhyme | 5:a4dcc19d057e | 115 | #define IT_640MS 0x40 |
Rhyme | 5:a4dcc19d057e | 116 | #define IT_1280MS 0x50 |
Rhyme | 5:a4dcc19d057e | 117 | void setIT(uint8_t it_value) ; |
Rhyme | 5:a4dcc19d057e | 118 | |
shockey | 1:5540b216acfc | 119 | // void getX(uint8_t *X) ; |
shockey | 1:5540b216acfc | 120 | // void getY(uint8_t *Y) ; |
shockey | 1:5540b216acfc | 121 | // void getZ(uint8_t *Z) ; |
Rhyme | 3:c6614597c135 | 122 | /** |
Rhyme | 3:c6614597c135 | 123 | * get raw Red data |
Rhyme | 3:c6614597c135 | 124 | * @param uint16_t *rdata |
Rhyme | 4:f5b142e3fe79 | 125 | * @returns i2c status 0: success non-0: failure |
Rhyme | 3:c6614597c135 | 126 | */ |
Rhyme | 4:f5b142e3fe79 | 127 | int getRData(uint16_t *rdata) ; |
Rhyme | 3:c6614597c135 | 128 | |
Rhyme | 3:c6614597c135 | 129 | /** |
Rhyme | 3:c6614597c135 | 130 | * get raw Green data |
Rhyme | 3:c6614597c135 | 131 | * @param uint16_t *gdata |
Rhyme | 4:f5b142e3fe79 | 132 | * @returns i2c status 0: success non-0: failure |
Rhyme | 3:c6614597c135 | 133 | */ |
Rhyme | 4:f5b142e3fe79 | 134 | int getGData(uint16_t *gdata) ; |
Rhyme | 3:c6614597c135 | 135 | |
Rhyme | 3:c6614597c135 | 136 | /** |
Rhyme | 3:c6614597c135 | 137 | * get raw Blue data |
Rhyme | 3:c6614597c135 | 138 | * @param uint16_t *bdata |
Rhyme | 4:f5b142e3fe79 | 139 | * @returns i2c status 0: success non-0: failure |
Rhyme | 3:c6614597c135 | 140 | */ |
Rhyme | 4:f5b142e3fe79 | 141 | int getBData(uint16_t *bdata) ; |
Rhyme | 3:c6614597c135 | 142 | |
Rhyme | 3:c6614597c135 | 143 | /** |
Rhyme | 3:c6614597c135 | 144 | * get raw White data |
Rhyme | 3:c6614597c135 | 145 | * @param uint16_t *wdata |
Rhyme | 4:f5b142e3fe79 | 146 | * @returns i2c status 0: success non-0: failure |
Rhyme | 3:c6614597c135 | 147 | */ |
Rhyme | 4:f5b142e3fe79 | 148 | int getWData(uint16_t *wdata) ; |
Rhyme | 3:c6614597c135 | 149 | |
shockey | 1:5540b216acfc | 150 | // void getCCTiData(uint16_t *cctidata) ; |
Rhyme | 3:c6614597c135 | 151 | /** |
Rhyme | 3:c6614597c135 | 152 | * get CCTi data for CCT (EMPIRICAL APPROACH) |
Rhyme | 3:c6614597c135 | 153 | * @param none |
Rhyme | 3:c6614597c135 | 154 | * @returns float CCTi data |
Rhyme | 3:c6614597c135 | 155 | */ |
shockey | 1:5540b216acfc | 156 | float getCCTiData(void) ; |
shockey | 1:5540b216acfc | 157 | // void getCCTData(uint16_t *cctdata) ; |
Rhyme | 3:c6614597c135 | 158 | |
Rhyme | 3:c6614597c135 | 159 | /** |
Rhyme | 3:c6614597c135 | 160 | * get CCT data (EMPIRICAL APPROACH) |
Rhyme | 3:c6614597c135 | 161 | * @param none |
Rhyme | 3:c6614597c135 | 162 | * @returns float CCD data |
Rhyme | 3:c6614597c135 | 163 | */ |
shockey | 1:5540b216acfc | 164 | float getCCTData(void) ; |
shockey | 0:e6e6107c659e | 165 | // void cmdRead(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ; |
shockey | 0:e6e6107c659e | 166 | // void cmdWrite(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ; |
shockey | 0:e6e6107c659e | 167 | |
shockey | 0:e6e6107c659e | 168 | private: |
shockey | 0:e6e6107c659e | 169 | I2C m_i2c; |
shockey | 0:e6e6107c659e | 170 | int m_addr; |
Rhyme | 4:f5b142e3fe79 | 171 | int readRegs(int addr, uint8_t * data, int len); |
Rhyme | 4:f5b142e3fe79 | 172 | int writeRegs(uint8_t * data, int len); |
shockey | 0:e6e6107c659e | 173 | } ; |
shockey | 0:e6e6107c659e | 174 | #endif /* _VEML6040_H_ */ |