VEML7700 High Accuracy Ambient Light Sensor with I2C Interface
Dependents: testVEML7700 ROS_VEML7700_test ROSSerial_MultipleSensors
VEML7700.h@3:67634e08150f, 2017-05-19 (annotated)
- Committer:
- Rhyme
- Date:
- Fri May 19 06:18:33 2017 +0000
- Revision:
- 3:67634e08150f
- Parent:
- 2:63196ef2a2ed
comment for higher bits of config register added
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:6dabb0ddf3d9 | 1 | #ifndef _VEML7700_H_ |
Rhyme | 0:6dabb0ddf3d9 | 2 | #define _VEML7700_H_ |
Rhyme | 0:6dabb0ddf3d9 | 3 | /** |
Rhyme | 0:6dabb0ddf3d9 | 4 | * Vishay VEML7700 |
Rhyme | 0:6dabb0ddf3d9 | 5 | * High Accuracy Ambient Light Sensor with I2C Interface |
Rhyme | 0:6dabb0ddf3d9 | 6 | */ |
Rhyme | 0:6dabb0ddf3d9 | 7 | /* |
Rhyme | 0:6dabb0ddf3d9 | 8 | * @code |
Rhyme | 0:6dabb0ddf3d9 | 9 | * @endcode |
Rhyme | 0:6dabb0ddf3d9 | 10 | */ |
Rhyme | 0:6dabb0ddf3d9 | 11 | class VEML7700 |
Rhyme | 0:6dabb0ddf3d9 | 12 | { |
Rhyme | 0:6dabb0ddf3d9 | 13 | public: |
Rhyme | 0:6dabb0ddf3d9 | 14 | /** |
Rhyme | 0:6dabb0ddf3d9 | 15 | * VEML7700 constructor |
Rhyme | 0:6dabb0ddf3d9 | 16 | * |
Rhyme | 0:6dabb0ddf3d9 | 17 | * @param sda SDA pin |
Rhyme | 0:6dabb0ddf3d9 | 18 | * @param sdl SCL pin |
Rhyme | 0:6dabb0ddf3d9 | 19 | * @param addr addr of the I2C peripheral |
Rhyme | 0:6dabb0ddf3d9 | 20 | */ |
Rhyme | 0:6dabb0ddf3d9 | 21 | VEML7700(PinName sda, PinName scl, int addr); |
Rhyme | 0:6dabb0ddf3d9 | 22 | |
Rhyme | 0:6dabb0ddf3d9 | 23 | /** |
Rhyme | 0:6dabb0ddf3d9 | 24 | * VEML7700 destructor |
Rhyme | 0:6dabb0ddf3d9 | 25 | */ |
Rhyme | 0:6dabb0ddf3d9 | 26 | ~VEML7700(); |
Rhyme | 2:63196ef2a2ed | 27 | |
Rhyme | 2:63196ef2a2ed | 28 | /** |
Rhyme | 2:63196ef2a2ed | 29 | * set ALS Configure register |
Rhyme | 2:63196ef2a2ed | 30 | * @param uint16_t conf value to set |
Rhyme | 2:63196ef2a2ed | 31 | * @returns none |
Rhyme | 3:67634e08150f | 32 | * @note bit[15:13] (reserved) |
Rhyme | 3:67634e08150f | 33 | * @note - |
Rhyme | 3:67634e08150f | 34 | * @note bit[12:11] ALS_GAIN Gain selection |
Rhyme | 3:67634e08150f | 35 | * @note 00=ALS gain x1, 01=ALS gain x2, 10=ALS gain x(1/8), 11=ALS gain x (1/4) |
Rhyme | 3:67634e08150f | 36 | * @note - |
Rhyme | 3:67634e08150f | 37 | * @note bit[10] (reserved) |
Rhyme | 3:67634e08150f | 38 | * @note - |
Rhyme | 3:67634e08150f | 39 | * @note bit[9:6] ALS_IT ALS integration time setting |
Rhyme | 3:67634e08150f | 40 | * @note 1100=25ms, 1000=50ms, 0000=100ms, 0001=200ms, 0010=400ms, 0011=800ms |
Rhyme | 3:67634e08150f | 41 | * @note - |
Rhyme | 2:63196ef2a2ed | 42 | * @note bit[5:4] ALS_PERS ALS persistence protect number setting |
Rhyme | 2:63196ef2a2ed | 43 | * @note 00=1, 01=2, 10= 4, 11=8 |
Rhyme | 2:63196ef2a2ed | 44 | * @note - |
Rhyme | 2:63196ef2a2ed | 45 | * @note bit[1] ALS_INT_EN ALS interrupt enable setting |
Rhyme | 2:63196ef2a2ed | 46 | * @note 0:ALS INT disable, 1:ALS INT enable |
Rhyme | 2:63196ef2a2ed | 47 | * @note - |
Rhyme | 2:63196ef2a2ed | 48 | * @note bit[0] ALS_SD ALS shutdown setting |
Rhyme | 2:63196ef2a2ed | 49 | * @note 0=ALS power on, 1=ALS shutdown |
Rhyme | 2:63196ef2a2ed | 50 | */ |
Rhyme | 0:6dabb0ddf3d9 | 51 | void setALSConf(uint16_t conf) ; |
Rhyme | 2:63196ef2a2ed | 52 | |
Rhyme | 2:63196ef2a2ed | 53 | /** |
Rhyme | 2:63196ef2a2ed | 54 | * set ALS high threshold window setting |
Rhyme | 2:63196ef2a2ed | 55 | * @param uint16_t wh value to set |
Rhyme | 2:63196ef2a2ed | 56 | * @returns none |
Rhyme | 2:63196ef2a2ed | 57 | */ |
Rhyme | 0:6dabb0ddf3d9 | 58 | void setALS_WH(uint16_t wh) ; |
Rhyme | 2:63196ef2a2ed | 59 | |
Rhyme | 2:63196ef2a2ed | 60 | /** |
Rhyme | 2:63196ef2a2ed | 61 | * set ALS low threshold window setting |
Rhyme | 2:63196ef2a2ed | 62 | * @param uint16_t wl value to set |
Rhyme | 2:63196ef2a2ed | 63 | * @returns none |
Rhyme | 2:63196ef2a2ed | 64 | */ |
Rhyme | 0:6dabb0ddf3d9 | 65 | void setALS_WL(uint16_t wl) ; |
Rhyme | 2:63196ef2a2ed | 66 | |
Rhyme | 2:63196ef2a2ed | 67 | /** |
Rhyme | 2:63196ef2a2ed | 68 | * set Power Saving setting |
Rhyme | 2:63196ef2a2ed | 69 | * @param uint16_t ps |
Rhyme | 2:63196ef2a2ed | 70 | * @returns none |
Rhyme | 2:63196ef2a2ed | 71 | * @note bit[2:1] PSM Power Saving Mode |
Rhyme | 2:63196ef2a2ed | 72 | * @note bit[0] PSM_EN Power Saving Mode enable setting |
Rhyme | 2:63196ef2a2ed | 73 | */ |
Rhyme | 0:6dabb0ddf3d9 | 74 | void setPowerSaving(uint16_t ps) ; |
Rhyme | 2:63196ef2a2ed | 75 | |
Rhyme | 2:63196ef2a2ed | 76 | /** |
Rhyme | 2:63196ef2a2ed | 77 | * get ALS |
Rhyme | 2:63196ef2a2ed | 78 | * @param none |
Rhyme | 2:63196ef2a2ed | 79 | * @returns uint16_t ALS (Ambient Light Sensed(?)) |
Rhyme | 2:63196ef2a2ed | 80 | */ |
Rhyme | 0:6dabb0ddf3d9 | 81 | uint16_t getALS(void) ; |
Rhyme | 2:63196ef2a2ed | 82 | |
Rhyme | 2:63196ef2a2ed | 83 | /** |
Rhyme | 2:63196ef2a2ed | 84 | * get White channel reading |
Rhyme | 2:63196ef2a2ed | 85 | * @param none |
Rhyme | 2:63196ef2a2ed | 86 | * @returns uint16_t White channel sensed |
Rhyme | 2:63196ef2a2ed | 87 | */ |
Rhyme | 0:6dabb0ddf3d9 | 88 | uint16_t getWHITE(void) ; |
Rhyme | 2:63196ef2a2ed | 89 | |
Rhyme | 2:63196ef2a2ed | 90 | /** |
Rhyme | 2:63196ef2a2ed | 91 | * get ALS INT trigger event |
Rhyme | 2:63196ef2a2ed | 92 | * @param none |
Rhyme | 2:63196ef2a2ed | 93 | * @returns uint16_t ALS_INT |
Rhyme | 2:63196ef2a2ed | 94 | * @note bit[15] ALS_IF_L ALS crossing low threshold INT trigger event |
Rhyme | 2:63196ef2a2ed | 95 | * @note bit[14] ALS_IF_H ALS crossing high threshold INT trigger event |
Rhyme | 2:63196ef2a2ed | 96 | * @note bit[13:0] (reserved) |
Rhyme | 2:63196ef2a2ed | 97 | */ |
Rhyme | 0:6dabb0ddf3d9 | 98 | uint16_t getALS_INT(void) ; |
Rhyme | 0:6dabb0ddf3d9 | 99 | |
Rhyme | 0:6dabb0ddf3d9 | 100 | private: |
Rhyme | 0:6dabb0ddf3d9 | 101 | I2C m_i2c; |
Rhyme | 0:6dabb0ddf3d9 | 102 | int m_addr; |
Rhyme | 0:6dabb0ddf3d9 | 103 | void readRegs(int addr, uint8_t * data, int len); |
Rhyme | 0:6dabb0ddf3d9 | 104 | void writeRegs(uint8_t * data, int len); |
Rhyme | 0:6dabb0ddf3d9 | 105 | |
Rhyme | 0:6dabb0ddf3d9 | 106 | }; |
Rhyme | 0:6dabb0ddf3d9 | 107 | #endif /* _VEML6030_H_ */ |