TI HDC1000 Temperature and Humidity Sensor

Dependents:   test_HDC1000

Committer:
Rhyme
Date:
Tue Apr 18 02:44:57 2017 +0000
Revision:
2:f574cd898cba
Parent:
1:f2c04c5b28ab
Documentation writing started

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:1db0d0071723 1 #ifndef _HDC1000_H_
Rhyme 0:1db0d0071723 2 #define _HDC1000_H_
Rhyme 0:1db0d0071723 3 #include "mbed.h"
Rhyme 0:1db0d0071723 4 /**
Rhyme 0:1db0d0071723 5 * HDC1000 Integrated Low Power Humidity and Temperature Digital Sensor
Rhyme 0:1db0d0071723 6 * I2C address: 0x40
Rhyme 0:1db0d0071723 7 */
Rhyme 2:f574cd898cba 8
Rhyme 2:f574cd898cba 9 #define USE_READY_PIN 1
Rhyme 0:1db0d0071723 10
Rhyme 0:1db0d0071723 11 class HDC1000 {
Rhyme 0:1db0d0071723 12 public:
Rhyme 0:1db0d0071723 13 /**
Rhyme 0:1db0d0071723 14 * constructor
Rhyme 0:1db0d0071723 15 *
Rhyme 0:1db0d0071723 16 * @param sda SDA pin
Rhyme 0:1db0d0071723 17 * @param scl SCL pin
Rhyme 2:f574cd898cba 18 * @param rdy Ready pin
Rhyme 0:1db0d0071723 19 * @param addr address of the I2C peripheral
Rhyme 0:1db0d0071723 20 */
Rhyme 2:f574cd898cba 21 #if USE_READY_PIN
Rhyme 0:1db0d0071723 22 HDC1000(PinName sda, PinName scl, PinName rdy, int addr=0x40) ;
Rhyme 2:f574cd898cba 23 #else
Rhyme 2:f574cd898cba 24 HDC1000(PinName sda, PinName scl, int addr=0x40) ;
Rhyme 2:f574cd898cba 25 #endif
Rhyme 0:1db0d0071723 26
Rhyme 0:1db0d0071723 27 ~HDC1000() ;
Rhyme 0:1db0d0071723 28
Rhyme 2:f574cd898cba 29 /**
Rhyme 2:f574cd898cba 30 * read Temperature
Rhyme 2:f574cd898cba 31 * @param NONE
Rhyme 2:f574cd898cba 32 * @returns float Temperature in Celsius degree
Rhyme 2:f574cd898cba 33 */
Rhyme 0:1db0d0071723 34 float readTemperature(void) ;
Rhyme 2:f574cd898cba 35
Rhyme 2:f574cd898cba 36 /**
Rhyme 2:f574cd898cba 37 * read Humidity
Rhyme 2:f574cd898cba 38 * @param NONE
Rhyme 2:f574cd898cba 39 * @returns float Humidity in percentage
Rhyme 2:f574cd898cba 40 */
Rhyme 0:1db0d0071723 41 float readHumidity(void) ;
Rhyme 0:1db0d0071723 42
Rhyme 2:f574cd898cba 43 /**
Rhyme 2:f574cd898cba 44 * reset the module
Rhyme 2:f574cd898cba 45 */
Rhyme 0:1db0d0071723 46 void reset(void) ;
Rhyme 0:1db0d0071723 47
Rhyme 1:f2c04c5b28ab 48 float u2f_temp(uint16_t utemp) ;
Rhyme 1:f2c04c5b28ab 49 float u2f_hume(uint16_t uhume) ;
Rhyme 2:f574cd898cba 50
Rhyme 0:1db0d0071723 51 /* for mode 0 */
Rhyme 2:f574cd898cba 52 /**
Rhyme 2:f574cd898cba 53 * get Raw Temperature value
Rhyme 2:f574cd898cba 54 * @param NONE
Rhyme 2:f574cd898cba 55 * @reurns Raw Temperature value
Rhyme 2:f574cd898cba 56 */
Rhyme 0:1db0d0071723 57 uint16_t getTemperature(void) ;
Rhyme 2:f574cd898cba 58
Rhyme 2:f574cd898cba 59 /**
Rhyme 2:f574cd898cba 60 * get Raw Humidity value
Rhyme 2:f574cd898cba 61 * @param NONE
Rhyme 2:f574cd898cba 62 * @returns Raw Humidity value
Rhyme 2:f574cd898cba 63 */
Rhyme 0:1db0d0071723 64 uint16_t getHumidity(void) ;
Rhyme 2:f574cd898cba 65
Rhyme 2:f574cd898cba 66 /**
Rhyme 2:f574cd898cba 67 * read Temperature and Humidity together (mode==0)
Rhyme 2:f574cd898cba 68 * @param float *temp returns temperature
Rhyme 2:f574cd898cba 69 * @param float *hume returns humidity
Rhyme 2:f574cd898cba 70 */
Rhyme 0:1db0d0071723 71 void readData(float *temp, float *hume) ;
Rhyme 0:1db0d0071723 72
Rhyme 0:1db0d0071723 73 /* for mode 1 */
Rhyme 0:1db0d0071723 74 void getData(uint16_t *temp, uint16_t *hume) ;
Rhyme 0:1db0d0071723 75
Rhyme 0:1db0d0071723 76 void setConfig(uint16_t conf) ;
Rhyme 0:1db0d0071723 77 uint16_t getConfig(void) ;
Rhyme 0:1db0d0071723 78 void setMode(int mode) ;
Rhyme 0:1db0d0071723 79 int getMode(void) ;
Rhyme 0:1db0d0071723 80 void setTres(int tres) ;
Rhyme 0:1db0d0071723 81 int getTres(void) ;
Rhyme 0:1db0d0071723 82 void setHres(int hres) ;
Rhyme 0:1db0d0071723 83 int getHres(void) ;
Rhyme 0:1db0d0071723 84 void getSerialID(uint8_t data[]) ; /* returns 5 bytes ID */
Rhyme 0:1db0d0071723 85 uint16_t getManufactureID(void) ; /* 0x5449 : Texas Instruments */
Rhyme 0:1db0d0071723 86 uint16_t getDeviceID(void) ; /* 0x1000 */
Rhyme 0:1db0d0071723 87
Rhyme 0:1db0d0071723 88 float getTDelay(void) ;
Rhyme 0:1db0d0071723 89 float getHDelay(void) ;
Rhyme 0:1db0d0071723 90 float getDelay(void) ;
Rhyme 0:1db0d0071723 91
Rhyme 0:1db0d0071723 92 private:
Rhyme 0:1db0d0071723 93 I2C m_i2c;
Rhyme 2:f574cd898cba 94 #if USE_READY_PIN
Rhyme 0:1db0d0071723 95 DigitalIn m_rdy ;
Rhyme 2:f574cd898cba 96 #endif
Rhyme 0:1db0d0071723 97 int m_addr;
Rhyme 0:1db0d0071723 98 void readRegs(int addr, uint8_t * data, int len);
Rhyme 0:1db0d0071723 99 void writeRegs(uint8_t * data, int len);
Rhyme 0:1db0d0071723 100 } ;
Rhyme 0:1db0d0071723 101
Rhyme 0:1db0d0071723 102 #endif /* _HDC1000_H_ */