Team Diana

Dependencies:   OneWire

Dependents:   BOX_1

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?

UserRevisionLine numberNew 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_ */