mbed library to use a SENSIRION SHT1x/SHT7x sensor humidity and temperature
SHT1x.h
- Committer:
- okini3939
- Date:
- 2012-06-21
- Revision:
- 0:ad72ec3d85e8
File content as of revision 0:ad72ec3d85e8:
/* * mbed library to use a SENSIRION SHT1x/SHT7x sensor * Copyright (c) 2011 Hiroshi Suga * Released under the MIT License: http://mbed.org/license/mit */ /** @file * @brief mbed library to use a SENSIRION SHT1x/SHT7x sensor * humidity/temperature sensor SHT11, SHT15, SHT71, SHT75 (SENSIRION) * interface: I2C digital */ #ifndef SHT1x_H #define SHT1x_H #include "mbed.h" /** * @brief resolution setting */ enum SHT_acc { SHT_low = 0, ///< RH 8bit, temp 12bit SHT_high = 1, ///< RH 10bit, temp 14bit }; enum SHT_vdd { SHT_3V3 = 0, SHT_5V = 1, }; /** * @brief SHT1x class */ class SHT1x : public Base { public: /** * @brief Initializes interface (private I2C) * @param p_sda port of I2C SDA * @param p_scl port of I2C SCL * @param p_acc resolution setting * @param p_vdd power */ SHT1x(PinName p_sda, PinName p_scl, SHT_acc p_acc = SHT_high, SHT_vdd p_vdd = SHT_3V3); /** * @brief Initializes interface (public I2C) * @param p_i2c instance of I2C class * @param p_acc resolution setting * @param p_vdd power */ SHT1x(I2C& p_i2c, SHT_acc p_acc = SHT_high, SHT_vdd p_vdd = SHT_3V3); /** * @brief Get temperature * @return temperature (`C) */ float get_temperature(); /** * @brief Get humidity * @return humidity (%) */ float get_humidity(); /** * @brief Update results */ void update(); protected: void init(SHT_acc p_acc, SHT_vdd p_vdd); unsigned short twi_readshort (int addr, int wait); void twi_writechar (int, int); I2C i2c; float humidity, temperature; private: float d1, d2, c1, c2, c3, t1, t2; enum SHT_acc accuracy; }; #endif