VEML7700 High Accuracy Ambient Light Sensor with I2C Interface

Dependents:   testVEML7700 ROS_VEML7700_test ROSSerial_MultipleSensors

Committer:
Rhyme
Date:
Fri May 19 06:09:32 2017 +0000
Revision:
2:63196ef2a2ed
Parent:
0:6dabb0ddf3d9
Child:
3:67634e08150f
document added

Who changed what in which revision?

UserRevisionLine numberNew 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 2:63196ef2a2ed 32 * @note bit[5:4] ALS_PERS ALS persistence protect number setting
Rhyme 2:63196ef2a2ed 33 * @note 00=1, 01=2, 10= 4, 11=8
Rhyme 2:63196ef2a2ed 34 * @note -
Rhyme 2:63196ef2a2ed 35 * @note bit[1] ALS_INT_EN ALS interrupt enable setting
Rhyme 2:63196ef2a2ed 36 * @note 0:ALS INT disable, 1:ALS INT enable
Rhyme 2:63196ef2a2ed 37 * @note -
Rhyme 2:63196ef2a2ed 38 * @note bit[0] ALS_SD ALS shutdown setting
Rhyme 2:63196ef2a2ed 39 * @note 0=ALS power on, 1=ALS shutdown
Rhyme 2:63196ef2a2ed 40 */
Rhyme 0:6dabb0ddf3d9 41 void setALSConf(uint16_t conf) ;
Rhyme 2:63196ef2a2ed 42
Rhyme 2:63196ef2a2ed 43 /**
Rhyme 2:63196ef2a2ed 44 * set ALS high threshold window setting
Rhyme 2:63196ef2a2ed 45 * @param uint16_t wh value to set
Rhyme 2:63196ef2a2ed 46 * @returns none
Rhyme 2:63196ef2a2ed 47 */
Rhyme 0:6dabb0ddf3d9 48 void setALS_WH(uint16_t wh) ;
Rhyme 2:63196ef2a2ed 49
Rhyme 2:63196ef2a2ed 50 /**
Rhyme 2:63196ef2a2ed 51 * set ALS low threshold window setting
Rhyme 2:63196ef2a2ed 52 * @param uint16_t wl value to set
Rhyme 2:63196ef2a2ed 53 * @returns none
Rhyme 2:63196ef2a2ed 54 */
Rhyme 0:6dabb0ddf3d9 55 void setALS_WL(uint16_t wl) ;
Rhyme 2:63196ef2a2ed 56
Rhyme 2:63196ef2a2ed 57 /**
Rhyme 2:63196ef2a2ed 58 * set Power Saving setting
Rhyme 2:63196ef2a2ed 59 * @param uint16_t ps
Rhyme 2:63196ef2a2ed 60 * @returns none
Rhyme 2:63196ef2a2ed 61 * @note bit[2:1] PSM Power Saving Mode
Rhyme 2:63196ef2a2ed 62 * @note bit[0] PSM_EN Power Saving Mode enable setting
Rhyme 2:63196ef2a2ed 63 */
Rhyme 0:6dabb0ddf3d9 64 void setPowerSaving(uint16_t ps) ;
Rhyme 2:63196ef2a2ed 65
Rhyme 2:63196ef2a2ed 66 /**
Rhyme 2:63196ef2a2ed 67 * get ALS
Rhyme 2:63196ef2a2ed 68 * @param none
Rhyme 2:63196ef2a2ed 69 * @returns uint16_t ALS (Ambient Light Sensed(?))
Rhyme 2:63196ef2a2ed 70 */
Rhyme 0:6dabb0ddf3d9 71 uint16_t getALS(void) ;
Rhyme 2:63196ef2a2ed 72
Rhyme 2:63196ef2a2ed 73 /**
Rhyme 2:63196ef2a2ed 74 * get White channel reading
Rhyme 2:63196ef2a2ed 75 * @param none
Rhyme 2:63196ef2a2ed 76 * @returns uint16_t White channel sensed
Rhyme 2:63196ef2a2ed 77 */
Rhyme 0:6dabb0ddf3d9 78 uint16_t getWHITE(void) ;
Rhyme 2:63196ef2a2ed 79
Rhyme 2:63196ef2a2ed 80 /**
Rhyme 2:63196ef2a2ed 81 * get ALS INT trigger event
Rhyme 2:63196ef2a2ed 82 * @param none
Rhyme 2:63196ef2a2ed 83 * @returns uint16_t ALS_INT
Rhyme 2:63196ef2a2ed 84 * @note bit[15] ALS_IF_L ALS crossing low threshold INT trigger event
Rhyme 2:63196ef2a2ed 85 * @note bit[14] ALS_IF_H ALS crossing high threshold INT trigger event
Rhyme 2:63196ef2a2ed 86 * @note bit[13:0] (reserved)
Rhyme 2:63196ef2a2ed 87 */
Rhyme 0:6dabb0ddf3d9 88 uint16_t getALS_INT(void) ;
Rhyme 0:6dabb0ddf3d9 89
Rhyme 0:6dabb0ddf3d9 90 private:
Rhyme 0:6dabb0ddf3d9 91 I2C m_i2c;
Rhyme 0:6dabb0ddf3d9 92 int m_addr;
Rhyme 0:6dabb0ddf3d9 93 void readRegs(int addr, uint8_t * data, int len);
Rhyme 0:6dabb0ddf3d9 94 void writeRegs(uint8_t * data, int len);
Rhyme 0:6dabb0ddf3d9 95
Rhyme 0:6dabb0ddf3d9 96 };
Rhyme 0:6dabb0ddf3d9 97 #endif /* _VEML6030_H_ */