sad
Dependencies: OneWire
DS1820.h@14:b02fa18b294a, 2019-01-20 (annotated)
- Committer:
- hudakz
- Date:
- Sun Jan 20 10:11:31 2019 +0000
- Revision:
- 14:b02fa18b294a
- Parent:
- 13:b593a82ce790
- Child:
- 20:98c261bcb399
Improved One-Wire.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hudakz | 0:433af64321d5 | 1 | #ifndef DS1820_H_ |
hudakz | 0:433af64321d5 | 2 | #define DS1820_H_ |
hudakz | 0:433af64321d5 | 3 | |
hudakz | 0:433af64321d5 | 4 | #include <OneWire.h> |
hudakz | 0:433af64321d5 | 5 | |
hudakz | 14:b02fa18b294a | 6 | /** |
hudakz | 14:b02fa18b294a | 7 | * Dallas' DS1820 family temperature sensor. |
hudakz | 14:b02fa18b294a | 8 | * This library depends on the OneWire library (Dallas' 1-Wire bus protocol implementation) |
hudakz | 14:b02fa18b294a | 9 | * available at <http://developer.mbed.org/users/hudakz/code/OneWire/> |
hudakz | 14:b02fa18b294a | 10 | * |
hudakz | 14:b02fa18b294a | 11 | * Example of use: |
hudakz | 14:b02fa18b294a | 12 | * |
hudakz | 14:b02fa18b294a | 13 | * @code |
hudakz | 14:b02fa18b294a | 14 | * #include "DS1820.h" |
hudakz | 14:b02fa18b294a | 15 | * |
hudakz | 14:b02fa18b294a | 16 | * Serial serial(USBTX, USBRX); |
hudakz | 14:b02fa18b294a | 17 | * |
hudakz | 14:b02fa18b294a | 18 | * int main() { |
hudakz | 14:b02fa18b294a | 19 | * DS1820 ds1820(PA_9); // substitute PA_9 with actual mbed pin name connected to the DS1820 data pin |
hudakz | 14:b02fa18b294a | 20 | * |
hudakz | 14:b02fa18b294a | 21 | * if(ds1820.begin()) { |
hudakz | 14:b02fa18b294a | 22 | * ds1820.startConversion(); |
hudakz | 14:b02fa18b294a | 23 | * wait(1.0); |
hudakz | 14:b02fa18b294a | 24 | * while(1) { |
hudakz | 14:b02fa18b294a | 25 | * serial.printf("temp = %3.1f\r\n", ds1820.read()); // read temperature |
hudakz | 14:b02fa18b294a | 26 | * ds1820.startConversion(); // start temperature conversion |
hudakz | 14:b02fa18b294a | 27 | * wait(1.0); // let DS1820 complete the temperature conversion |
hudakz | 14:b02fa18b294a | 28 | * } |
hudakz | 14:b02fa18b294a | 29 | * } else |
hudakz | 14:b02fa18b294a | 30 | * serial.printf("No DS1820 sensor found!\r\n"); |
hudakz | 14:b02fa18b294a | 31 | * } |
hudakz | 14:b02fa18b294a | 32 | * |
hudakz | 14:b02fa18b294a | 33 | * @endcode |
hudakz | 14:b02fa18b294a | 34 | * |
hudakz | 14:b02fa18b294a | 35 | * Note: Don't forget to connect a 4.7k Ohm resistor |
hudakz | 14:b02fa18b294a | 36 | * between the DS1820's data pin and the +3.3V pin |
hudakz | 14:b02fa18b294a | 37 | * |
hudakz | 14:b02fa18b294a | 38 | */ |
hudakz | 0:433af64321d5 | 39 | class DS1820 |
hudakz | 0:433af64321d5 | 40 | { |
hudakz | 0:433af64321d5 | 41 | OneWire oneWire; |
hudakz | 8:8dfdd1603e4d | 42 | bool present; |
hudakz | 8:8dfdd1603e4d | 43 | bool model_s; |
hudakz | 0:433af64321d5 | 44 | uint8_t data[12]; |
hudakz | 0:433af64321d5 | 45 | uint8_t addr[8]; |
hudakz | 0:433af64321d5 | 46 | float toFloat(uint16_t word); |
hudakz | 0:433af64321d5 | 47 | public: |
hudakz | 7:4403a206e78a | 48 | |
hudakz | 0:433af64321d5 | 49 | DS1820(PinName pin); |
hudakz | 0:433af64321d5 | 50 | DS1820(char model, PinName pin); |
hudakz | 0:433af64321d5 | 51 | bool begin(void); |
hudakz | 8:8dfdd1603e4d | 52 | bool isPresent(); |
hudakz | 4:adf4e7972d73 | 53 | void setResolution(uint8_t res); |
hudakz | 0:433af64321d5 | 54 | void startConversion(void); |
hudakz | 0:433af64321d5 | 55 | float read(void); |
hudakz | 13:b593a82ce790 | 56 | uint8_t read(float& temp); |
hudakz | 0:433af64321d5 | 57 | }; |
hudakz | 0:433af64321d5 | 58 | #endif /* DS1820_H_ */ |