Vishay UV Sensor I2C library
Embed:
(wiki syntax)
Show/hide line numbers
VEML6075.h
00001 /* 00002 * File description 00003 * 00004 */ 00005 00006 #ifndef _VEML6075_H_ 00007 #define _VEML6075_H_ 00008 00009 #include "mbed.h" 00010 00011 /** 00012 * UVA and UVB Light Sensor with I2C Interface 00013 * I2C 7bit address: 0x10 00014 * 00015 */ 00016 00017 class VEML6075 00018 { 00019 public: 00020 /** 00021 * constructor 00022 * 00023 * @param sda SDA pin 00024 * @param scl SCL pin 00025 * @param addr address of the I2C peripheral 00026 */ 00027 VEML6075(PinName sda, PinName scl, int addr) ; 00028 00029 ~VEML6075() ; 00030 00031 /* 00032 * some member functions here (yet to be written) 00033 */ 00034 /** 00035 * get UVA 00036 * @param none 00037 * @returns float UVA data 00038 */ 00039 float getUVA(void) ; 00040 00041 /** 00042 * get UVA_CIE 00043 * @param none 00044 * @returns float UVA_CIE data 00045 */ 00046 float getUVA_CIE(void) ; 00047 00048 /** 00049 * get UVB 00050 * @param none 00051 * @returns float UVB data 00052 */ 00053 float getUVB(void) ; 00054 00055 /** 00056 * get UVB_CIE 00057 * @param none 00058 * @returns float UVB_CIE data 00059 */ 00060 float getUVB_CIE(void) ; 00061 00062 /** 00063 * get UVConf 00064 * @param uint8_t *uvconf 00065 * @reurns none 00066 */ 00067 void getUVConf(uint8_t *uvconf) ; 00068 00069 /** 00070 * set UVConf 00071 * @param uint8_t uvconf 00072 * @returns none 00073 */ 00074 void setUVConf(uint8_t uvconf) ; 00075 00076 /** 00077 * get raw UVA data 00078 * @param uint16_t *uvadata 00079 * @returns none 00080 */ 00081 void getUVAData(uint16_t *uvadata) ; 00082 00083 /** 00084 * get raw UVB data 00085 * @param uint16_t *rvbdata 00086 * @returns none 00087 */ 00088 void getUVBData(uint16_t *uvbdata) ; 00089 00090 /** 00091 * get raw UVD data 00092 * @param uint16_t *uvddata 00093 * @returns none 00094 * 00095 * @note UVD was defined in the sample device datasheet 00096 * @note but in the released device datasheet, it's gone 00097 * @note so if you are using production version device 00098 * @note make this function just return 0 to possible side effect. 00099 */ 00100 void getUVDData(uint16_t *uvddata) ; 00101 00102 /** 00103 * get UVCOMP1 data 00104 * @param *uint16_t *uvcomp1data 00105 * @returns none 00106 */ 00107 void getUVCOMP1Data(uint16_t *uvcomp1data) ; 00108 00109 /** 00110 * get UVCOMP2 data 00111 * @param *uint16_t *uvcomp2data 00112 * @returns none 00113 */ 00114 void getUVCOMP2Data(uint16_t *uvcomp2data) ; 00115 00116 /** 00117 * get UVI UV Index 00118 * @param none 00119 * @returns float UVI 00120 */ 00121 float UVI(void) ; 00122 00123 /** 00124 * get device ID 00125 * @param uint16_t *id device ID 00126 * @returns none 00127 */ 00128 void getID(uint16_t *id) ; 00129 00130 // void cmdRead(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ; 00131 // void cmdWrite(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ; 00132 00133 private: 00134 I2C m_i2c; 00135 int m_addr; 00136 void readRegs(int addr, uint8_t * data, int len); 00137 void writeRegs(uint8_t * data, int len); 00138 } ; 00139 #endif /* _VEML6075_H_ */
Generated on Wed Jul 13 2022 10:44:13 by 1.7.2