TI HDC1000 Temperature and Humidity Sensor
Diff: HDC1000.h
- Revision:
- 0:1db0d0071723
- Child:
- 1:f2c04c5b28ab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HDC1000.h Mon Apr 17 02:49:07 2017 +0000 @@ -0,0 +1,60 @@ +#ifndef _HDC1000_H_ +#define _HDC1000_H_ +#include "mbed.h" +/** + * HDC1000 Integrated Low Power Humidity and Temperature Digital Sensor + * I2C address: 0x40 + */ + +class HDC1000 { +public: + /** + * constructor + * + * @param sda SDA pin + * @param scl SCL pin + * @param addr address of the I2C peripheral + */ +// HDC1000(PinName sda, PinName scl, int addr=0x40) ; +HDC1000(PinName sda, PinName scl, PinName rdy, int addr=0x40) ; + +~HDC1000() ; + +float readTemperature(void) ; +float readHumidity(void) ; + +void reset(void) ; + +/* for mode 0 */ +uint16_t getTemperature(void) ; +uint16_t getHumidity(void) ; +void readData(float *temp, float *hume) ; + +/* for mode 1 */ +void getData(uint16_t *temp, uint16_t *hume) ; + +void setConfig(uint16_t conf) ; +uint16_t getConfig(void) ; +void setMode(int mode) ; +int getMode(void) ; +void setTres(int tres) ; +int getTres(void) ; +void setHres(int hres) ; +int getHres(void) ; +void getSerialID(uint8_t data[]) ; /* returns 5 bytes ID */ +uint16_t getManufactureID(void) ; /* 0x5449 : Texas Instruments */ +uint16_t getDeviceID(void) ; /* 0x1000 */ + +float getTDelay(void) ; +float getHDelay(void) ; +float getDelay(void) ; + +private: + I2C m_i2c; + DigitalIn m_rdy ; + int m_addr; + void readRegs(int addr, uint8_t * data, int len); + void writeRegs(uint8_t * data, int len); +} ; + +#endif /* _HDC1000_H_ */ \ No newline at end of file