TI HDC1000 Temperature and Humidity Sensor
Diff: HDC1000.h
- Revision:
- 2:f574cd898cba
- Parent:
- 1:f2c04c5b28ab
--- a/HDC1000.h Mon Apr 17 07:37:19 2017 +0000
+++ b/HDC1000.h Tue Apr 18 02:44:57 2017 +0000
@@ -5,6 +5,8 @@
* HDC1000 Integrated Low Power Humidity and Temperature Digital Sensor
* I2C address: 0x40
*/
+
+#define USE_READY_PIN 1
class HDC1000 {
public:
@@ -13,23 +15,59 @@
*
* @param sda SDA pin
* @param scl SCL pin
+ * @param rdy Ready pin
* @param addr address of the I2C peripheral
*/
-// HDC1000(PinName sda, PinName scl, int addr=0x40) ;
+#if USE_READY_PIN
HDC1000(PinName sda, PinName scl, PinName rdy, int addr=0x40) ;
+#else
+HDC1000(PinName sda, PinName scl, int addr=0x40) ;
+#endif
~HDC1000() ;
+/**
+ * read Temperature
+ * @param NONE
+ * @returns float Temperature in Celsius degree
+ */
float readTemperature(void) ;
+
+/**
+ * read Humidity
+ * @param NONE
+ * @returns float Humidity in percentage
+ */
float readHumidity(void) ;
+/**
+ * reset the module
+ */
void reset(void) ;
float u2f_temp(uint16_t utemp) ;
float u2f_hume(uint16_t uhume) ;
+
/* for mode 0 */
+/**
+ * get Raw Temperature value
+ * @param NONE
+ * @reurns Raw Temperature value
+ */
uint16_t getTemperature(void) ;
+
+/**
+ * get Raw Humidity value
+ * @param NONE
+ * @returns Raw Humidity value
+ */
uint16_t getHumidity(void) ;
+
+/**
+ * read Temperature and Humidity together (mode==0)
+ * @param float *temp returns temperature
+ * @param float *hume returns humidity
+ */
void readData(float *temp, float *hume) ;
/* for mode 1 */
@@ -53,7 +91,9 @@
private:
I2C m_i2c;
+#if USE_READY_PIN
DigitalIn m_rdy ;
+#endif
int m_addr;
void readRegs(int addr, uint8_t * data, int len);
void writeRegs(uint8_t * data, int len);