Sensiron SHT 7x Temperature and humidity device library
Dependents: temp xj-Nucleo-F303K8-SHT75-TEST
Diff: sht7X.h
- Revision:
- 1:20aa2d4a28bf
- Child:
- 2:dd218144f9fe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sht7X.h Wed Oct 27 15:51:27 2010 +0000 @@ -0,0 +1,100 @@ +/* mbed Sensiron SHT7x temperature and humidity sensor library +* +* Sensiron data at http://www.sensirion.com/en/01_humidity_sensors/06_humidity_sensor_sht75.htm +* +* Copyright (c) Ian Molesworth October 2010 +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to use +* copy or modify the software for private or non-commercial purposes only. +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + + +#ifndef SHT75_H +#define SHT75_H + +#include "mbed.h" + +const float C1= -4.0; // for 12 Bit humi +const float C2= +0.0405; // for 12 Bit humi +const float C3= -0.0000028; // for 12 Bit hum +const float TL= -39.61; // 3v 14 bit +const float T1= +0.01; // for 14 Bit @ 5V +const float T2= +0.00008; // for 14 Bit @ 5V + +/** SHT7x class +* +* Example: +* @code +* //initialise the device read temperature ticks, read humidity ticks and then +* calculate the liniarised humidity value. +* #include "mbed.h" +* #include "SHT7X.h" +00035 * +00036 * Servo myservo(p21); +00037 * +00038 * int main() { +00039 * while(1) { +00040 * for(int i=0; i<100; i++) { +00041 * myservo = i/100.0; +00042 * wait(0.01); +00043 * } +00044 * for(int i=100; i>0; i--) { +00045 * myservo = i/100.0; +00046 * wait(0.01); +00047 * } +00048 * } +00049 * } +00050 * @endcode +00051 */ +class SHT75 + { + public: + /** Create an SHT object connected to the specified Digital pins + * + * @param pclock digital pin to use as clock + * @param pdata digital pin to use as data bus ( bidirectional ) + */ + SHT75(PinName pclock, PinName pdata): _clock(pclock), _data(pdata) {}; + /** read the temperature ticks value 14 bit resolution + * + * @param int *temp pointer to an integer to hold the tick value + * @returns boolean true if read acknowledges + */ + bool readTempTicks(int* temp); + /** read the humidity ticks value 12 bit resolution + * + * @param int *temp pointer to an integer to hold the tick value + * @returns boolean true if read acknowledges + */ + bool readHumidityTicks(int* temp); + /** start up reset + * + * call to resync or abort current operation. + * worth calling every now and then to make sure your system is not hung. + */ + void reset(void); + void softReset(void); + int readStatus(void); + + private: + DigitalInOut _data; + DigitalOut _clock; + + void start(void); + int read(char); + bool write(char); + }; + +#endif