Vishay UV Sensor I2C library

Dependents:   test_VEML6075 quattro_vishay_6075_171018 testSensor

Committer:
Rhyme
Date:
Fri Oct 27 04:56:45 2017 +0000
Revision:
4:9518befb9fd3
Parent:
3:d0d23d5abf34
coefficients updated to reflect the values in the AN

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shockey 0:14ccc7ed49fa 1 /*
shockey 0:14ccc7ed49fa 2 * File description
shockey 0:14ccc7ed49fa 3 *
shockey 0:14ccc7ed49fa 4 */
shockey 0:14ccc7ed49fa 5
shockey 0:14ccc7ed49fa 6 #ifndef _VEML6075_H_
shockey 0:14ccc7ed49fa 7 #define _VEML6075_H_
shockey 0:14ccc7ed49fa 8
shockey 0:14ccc7ed49fa 9 #include "mbed.h"
shockey 0:14ccc7ed49fa 10
shockey 0:14ccc7ed49fa 11 /**
shockey 0:14ccc7ed49fa 12 * UVA and UVB Light Sensor with I2C Interface
shockey 0:14ccc7ed49fa 13 * I2C 7bit address: 0x10
shockey 0:14ccc7ed49fa 14 *
shockey 0:14ccc7ed49fa 15 */
shockey 0:14ccc7ed49fa 16
shockey 0:14ccc7ed49fa 17 class VEML6075
shockey 0:14ccc7ed49fa 18 {
shockey 0:14ccc7ed49fa 19 public:
shockey 0:14ccc7ed49fa 20 /**
shockey 0:14ccc7ed49fa 21 * constructor
shockey 0:14ccc7ed49fa 22 *
shockey 0:14ccc7ed49fa 23 * @param sda SDA pin
shockey 0:14ccc7ed49fa 24 * @param scl SCL pin
shockey 0:14ccc7ed49fa 25 * @param addr address of the I2C peripheral
shockey 0:14ccc7ed49fa 26 */
shockey 0:14ccc7ed49fa 27 VEML6075(PinName sda, PinName scl, int addr) ;
shockey 0:14ccc7ed49fa 28
shockey 0:14ccc7ed49fa 29 ~VEML6075() ;
shockey 0:14ccc7ed49fa 30
shockey 0:14ccc7ed49fa 31 /*
shockey 0:14ccc7ed49fa 32 * some member functions here (yet to be written)
shockey 0:14ccc7ed49fa 33 */
Rhyme 2:0f3bb80aba40 34 /**
Rhyme 2:0f3bb80aba40 35 * get UVA
Rhyme 2:0f3bb80aba40 36 * @param none
Rhyme 2:0f3bb80aba40 37 * @returns float UVA data
Rhyme 2:0f3bb80aba40 38 */
Rhyme 2:0f3bb80aba40 39 float getUVA(void) ;
Rhyme 2:0f3bb80aba40 40
Rhyme 2:0f3bb80aba40 41 /**
Rhyme 2:0f3bb80aba40 42 * get UVA_CIE
Rhyme 2:0f3bb80aba40 43 * @param none
Rhyme 2:0f3bb80aba40 44 * @returns float UVA_CIE data
Rhyme 2:0f3bb80aba40 45 */
Rhyme 2:0f3bb80aba40 46 float getUVA_CIE(void) ;
Rhyme 2:0f3bb80aba40 47
Rhyme 2:0f3bb80aba40 48 /**
Rhyme 2:0f3bb80aba40 49 * get UVB
Rhyme 2:0f3bb80aba40 50 * @param none
Rhyme 2:0f3bb80aba40 51 * @returns float UVB data
Rhyme 2:0f3bb80aba40 52 */
Rhyme 2:0f3bb80aba40 53 float getUVB(void) ;
Rhyme 2:0f3bb80aba40 54
Rhyme 2:0f3bb80aba40 55 /**
Rhyme 2:0f3bb80aba40 56 * get UVB_CIE
Rhyme 2:0f3bb80aba40 57 * @param none
Rhyme 2:0f3bb80aba40 58 * @returns float UVB_CIE data
Rhyme 2:0f3bb80aba40 59 */
Rhyme 2:0f3bb80aba40 60 float getUVB_CIE(void) ;
Rhyme 2:0f3bb80aba40 61
Rhyme 2:0f3bb80aba40 62 /**
Rhyme 2:0f3bb80aba40 63 * get UVConf
Rhyme 2:0f3bb80aba40 64 * @param uint8_t *uvconf
Rhyme 2:0f3bb80aba40 65 * @reurns none
Rhyme 2:0f3bb80aba40 66 */
shockey 0:14ccc7ed49fa 67 void getUVConf(uint8_t *uvconf) ;
Rhyme 2:0f3bb80aba40 68
Rhyme 2:0f3bb80aba40 69 /**
Rhyme 2:0f3bb80aba40 70 * set UVConf
Rhyme 2:0f3bb80aba40 71 * @param uint8_t uvconf
Rhyme 2:0f3bb80aba40 72 * @returns none
Rhyme 2:0f3bb80aba40 73 */
shockey 0:14ccc7ed49fa 74 void setUVConf(uint8_t uvconf) ;
Rhyme 2:0f3bb80aba40 75
Rhyme 2:0f3bb80aba40 76 /**
Rhyme 2:0f3bb80aba40 77 * get raw UVA data
Rhyme 2:0f3bb80aba40 78 * @param uint16_t *uvadata
Rhyme 2:0f3bb80aba40 79 * @returns none
Rhyme 2:0f3bb80aba40 80 */
shockey 0:14ccc7ed49fa 81 void getUVAData(uint16_t *uvadata) ;
Rhyme 2:0f3bb80aba40 82
Rhyme 2:0f3bb80aba40 83 /**
Rhyme 2:0f3bb80aba40 84 * get raw UVB data
Rhyme 2:0f3bb80aba40 85 * @param uint16_t *rvbdata
Rhyme 2:0f3bb80aba40 86 * @returns none
Rhyme 2:0f3bb80aba40 87 */
shockey 0:14ccc7ed49fa 88 void getUVBData(uint16_t *uvbdata) ;
Rhyme 2:0f3bb80aba40 89
Rhyme 2:0f3bb80aba40 90 /**
Rhyme 2:0f3bb80aba40 91 * get raw UVD data
Rhyme 2:0f3bb80aba40 92 * @param uint16_t *uvddata
Rhyme 2:0f3bb80aba40 93 * @returns none
Rhyme 3:d0d23d5abf34 94 *
Rhyme 3:d0d23d5abf34 95 * @note UVD was defined in the sample device datasheet
Rhyme 3:d0d23d5abf34 96 * @note but in the released device datasheet, it's gone
Rhyme 3:d0d23d5abf34 97 * @note so if you are using production version device
Rhyme 3:d0d23d5abf34 98 * @note make this function just return 0 to possible side effect.
Rhyme 2:0f3bb80aba40 99 */
shockey 0:14ccc7ed49fa 100 void getUVDData(uint16_t *uvddata) ;
Rhyme 2:0f3bb80aba40 101
Rhyme 2:0f3bb80aba40 102 /**
Rhyme 2:0f3bb80aba40 103 * get UVCOMP1 data
Rhyme 2:0f3bb80aba40 104 * @param *uint16_t *uvcomp1data
Rhyme 2:0f3bb80aba40 105 * @returns none
Rhyme 2:0f3bb80aba40 106 */
shockey 0:14ccc7ed49fa 107 void getUVCOMP1Data(uint16_t *uvcomp1data) ;
Rhyme 2:0f3bb80aba40 108
Rhyme 2:0f3bb80aba40 109 /**
Rhyme 2:0f3bb80aba40 110 * get UVCOMP2 data
Rhyme 2:0f3bb80aba40 111 * @param *uint16_t *uvcomp2data
Rhyme 2:0f3bb80aba40 112 * @returns none
Rhyme 2:0f3bb80aba40 113 */
shockey 0:14ccc7ed49fa 114 void getUVCOMP2Data(uint16_t *uvcomp2data) ;
Rhyme 2:0f3bb80aba40 115
Rhyme 2:0f3bb80aba40 116 /**
Rhyme 2:0f3bb80aba40 117 * get UVI UV Index
Rhyme 2:0f3bb80aba40 118 * @param none
Rhyme 2:0f3bb80aba40 119 * @returns float UVI
Rhyme 2:0f3bb80aba40 120 */
shockey 0:14ccc7ed49fa 121 float UVI(void) ;
Rhyme 2:0f3bb80aba40 122
Rhyme 2:0f3bb80aba40 123 /**
Rhyme 2:0f3bb80aba40 124 * get device ID
Rhyme 2:0f3bb80aba40 125 * @param uint16_t *id device ID
Rhyme 2:0f3bb80aba40 126 * @returns none
Rhyme 2:0f3bb80aba40 127 */
shockey 0:14ccc7ed49fa 128 void getID(uint16_t *id) ;
Rhyme 2:0f3bb80aba40 129
shockey 0:14ccc7ed49fa 130 // void cmdRead(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ;
shockey 0:14ccc7ed49fa 131 // void cmdWrite(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ;
shockey 0:14ccc7ed49fa 132
shockey 0:14ccc7ed49fa 133 private:
shockey 0:14ccc7ed49fa 134 I2C m_i2c;
shockey 0:14ccc7ed49fa 135 int m_addr;
shockey 0:14ccc7ed49fa 136 void readRegs(int addr, uint8_t * data, int len);
shockey 0:14ccc7ed49fa 137 void writeRegs(uint8_t * data, int len);
shockey 0:14ccc7ed49fa 138 } ;
shockey 0:14ccc7ed49fa 139 #endif /* _VEML6075_H_ */