Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of SHT_v1 by
SHT.h@1:0dbbb4802508, 2016-02-23 (annotated)
- Committer:
- fblanc
- Date:
- Tue Feb 23 08:10:54 2016 +0000
- Revision:
- 1:0dbbb4802508
- Parent:
- 0:df1c8f2961a1
SHT V4 5V;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| roselea | 0:df1c8f2961a1 | 1 | /* mbed module to use a Sensirion SHT1x /SHT7x sensor |
| roselea | 0:df1c8f2961a1 | 2 | * Copyright (c) 2007-2009 Stephen McGarry |
| roselea | 0:df1c8f2961a1 | 3 | * Released under the MIT License: http://mbed.org/license/mit |
| roselea | 0:df1c8f2961a1 | 4 | */ |
| roselea | 0:df1c8f2961a1 | 5 | #ifndef SHT_H |
| roselea | 0:df1c8f2961a1 | 6 | #define SHT_H |
| roselea | 0:df1c8f2961a1 | 7 | |
| roselea | 0:df1c8f2961a1 | 8 | #include "mbed.h" |
| roselea | 0:df1c8f2961a1 | 9 | |
| fblanc | 1:0dbbb4802508 | 10 | |
| roselea | 0:df1c8f2961a1 | 11 | enum SHT_acc { |
| roselea | 0:df1c8f2961a1 | 12 | SHT_low=0, |
| roselea | 0:df1c8f2961a1 | 13 | SHT_high=1 |
| roselea | 0:df1c8f2961a1 | 14 | }; |
| roselea | 0:df1c8f2961a1 | 15 | |
| roselea | 0:df1c8f2961a1 | 16 | typedef unsigned char byte; |
| roselea | 0:df1c8f2961a1 | 17 | |
| fblanc | 1:0dbbb4802508 | 18 | class SHT { |
| roselea | 0:df1c8f2961a1 | 19 | public: |
| roselea | 0:df1c8f2961a1 | 20 | /* Constructor: SHT |
| roselea | 0:df1c8f2961a1 | 21 | * Creates an SHT interface connected to specific pins. |
| roselea | 0:df1c8f2961a1 | 22 | * |
| roselea | 0:df1c8f2961a1 | 23 | */ |
| roselea | 0:df1c8f2961a1 | 24 | SHT(PinName p_sclk, PinName p_data, SHT_acc p_accuracy); |
| roselea | 0:df1c8f2961a1 | 25 | |
| roselea | 0:df1c8f2961a1 | 26 | /* Functions |
| roselea | 0:df1c8f2961a1 | 27 | */ |
| roselea | 0:df1c8f2961a1 | 28 | float get_temperature(); // get the most recent temp reading |
| roselea | 0:df1c8f2961a1 | 29 | float get_humidity(); // get the most recent humidity reading |
| roselea | 0:df1c8f2961a1 | 30 | float get_dewpoint(); // get the most recent dewpoint value |
| fblanc | 1:0dbbb4802508 | 31 | int update(SHT_acc accuracy); // update stored values from sensor |
| roselea | 0:df1c8f2961a1 | 32 | |
| roselea | 0:df1c8f2961a1 | 33 | protected: |
| roselea | 0:df1c8f2961a1 | 34 | byte read_byte(bool send_ack); |
| roselea | 0:df1c8f2961a1 | 35 | char write_byte(byte value); |
| roselea | 0:df1c8f2961a1 | 36 | void trans_start(void); |
| roselea | 0:df1c8f2961a1 | 37 | void connection_reset(void); |
| roselea | 0:df1c8f2961a1 | 38 | char soft_reset(); |
| roselea | 0:df1c8f2961a1 | 39 | char read_status(byte &value); |
| roselea | 0:df1c8f2961a1 | 40 | char write_status(byte value); |
| roselea | 0:df1c8f2961a1 | 41 | char measure(int &value, byte mode); |
| roselea | 0:df1c8f2961a1 | 42 | void calculate(); |
| roselea | 0:df1c8f2961a1 | 43 | |
| roselea | 0:df1c8f2961a1 | 44 | DigitalOut sclk; |
| roselea | 0:df1c8f2961a1 | 45 | DigitalInOut data; |
| roselea | 0:df1c8f2961a1 | 46 | SHT_acc accuracy; // will we use high or low accuracy mode on the sensor |
| roselea | 0:df1c8f2961a1 | 47 | |
| roselea | 0:df1c8f2961a1 | 48 | float temperature; // calculated from sensor reading |
| roselea | 0:df1c8f2961a1 | 49 | float humidity; |
| roselea | 0:df1c8f2961a1 | 50 | float dewpoint; |
| roselea | 0:df1c8f2961a1 | 51 | int temp,hum; // integer values from sensor before conversion |
| roselea | 0:df1c8f2961a1 | 52 | |
| roselea | 0:df1c8f2961a1 | 53 | enum commands { |
| roselea | 0:df1c8f2961a1 | 54 | com_read_status_reg=0x06, |
| roselea | 0:df1c8f2961a1 | 55 | com_write_status_reg=0x07, |
| roselea | 0:df1c8f2961a1 | 56 | com_measure_temp=0x03, |
| roselea | 0:df1c8f2961a1 | 57 | com_measure_humid=0x05, |
| roselea | 0:df1c8f2961a1 | 58 | com_reset=0x1E |
| roselea | 0:df1c8f2961a1 | 59 | }; |
| roselea | 0:df1c8f2961a1 | 60 | |
| roselea | 0:df1c8f2961a1 | 61 | enum acks { |
| roselea | 0:df1c8f2961a1 | 62 | no_ack=0, |
| roselea | 0:df1c8f2961a1 | 63 | send_ack=1 |
| roselea | 0:df1c8f2961a1 | 64 | }; |
| roselea | 0:df1c8f2961a1 | 65 | }; |
| roselea | 0:df1c8f2961a1 | 66 | |
| roselea | 0:df1c8f2961a1 | 67 | #endif |
