This is a thermometer using DS1820. With DS1820 library of Michael Hagberg, I just used most of the sample cords. Please see notebook [http://mbed.org/users/jf1vrr/notebook/ds1820-thermometer/].

Dependencies:   TextLCD mbed

Committer:
jf1vrr
Date:
Thu Apr 28 08:18:58 2011 +0000
Revision:
0:5f5b4e506d94
Rev. 0.01A 2011/04/28 New

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jf1vrr 0:5f5b4e506d94 1 /* This is a thermometer using DS1820. With DS1820 library
jf1vrr 0:5f5b4e506d94 2 of Michael Hagberg, I just used most of the sample cords.
jf1vrr 0:5f5b4e506d94 3 Please see notebook [http://mbed.org/users/jf1vrr/notebook/ds1820-thermometer/].
jf1vrr 0:5f5b4e506d94 4 */
jf1vrr 0:5f5b4e506d94 5 #include "mbed.h"
jf1vrr 0:5f5b4e506d94 6 #include "TextLCD.h"
jf1vrr 0:5f5b4e506d94 7 #include "DS1820.h"
jf1vrr 0:5f5b4e506d94 8
jf1vrr 0:5f5b4e506d94 9 TextLCD lcd(p24, p26, p27, p28, p29, p30);
jf1vrr 0:5f5b4e506d94 10
jf1vrr 0:5f5b4e506d94 11 const int MAX_PROBES = 1;
jf1vrr 0:5f5b4e506d94 12 DS1820* probe[MAX_PROBES];
jf1vrr 0:5f5b4e506d94 13
jf1vrr 0:5f5b4e506d94 14 int main() {
jf1vrr 0:5f5b4e506d94 15 int i;
jf1vrr 0:5f5b4e506d94 16 int devices_found=0;
jf1vrr 0:5f5b4e506d94 17 // Initialize the probe array to DS1820 objects
jf1vrr 0:5f5b4e506d94 18 for (i = 0; i < MAX_PROBES; i++)
jf1vrr 0:5f5b4e506d94 19 probe[i] = new DS1820(p19);
jf1vrr 0:5f5b4e506d94 20 // Initialize global state variables
jf1vrr 0:5f5b4e506d94 21 probe[0]->search_ROM_setup();
jf1vrr 0:5f5b4e506d94 22 // Loop to find all devices on the data line
jf1vrr 0:5f5b4e506d94 23 while (probe[devices_found]->search_ROM() and devices_found<MAX_PROBES-1)
jf1vrr 0:5f5b4e506d94 24 devices_found++;
jf1vrr 0:5f5b4e506d94 25 // If maximum number of probes are found,
jf1vrr 0:5f5b4e506d94 26 // bump the counter to include the last array entry
jf1vrr 0:5f5b4e506d94 27 if (probe[devices_found]->ROM[0] != 0xFF)
jf1vrr 0:5f5b4e506d94 28 devices_found++;
jf1vrr 0:5f5b4e506d94 29
jf1vrr 0:5f5b4e506d94 30 lcd.cls();
jf1vrr 0:5f5b4e506d94 31 if (devices_found==0)
jf1vrr 0:5f5b4e506d94 32 lcd.printf("No devices found");
jf1vrr 0:5f5b4e506d94 33 else {
jf1vrr 0:5f5b4e506d94 34 lcd.printf("DS1820 Thermo" );
jf1vrr 0:5f5b4e506d94 35 while (true) {
jf1vrr 0:5f5b4e506d94 36 probe[0]->convert_temperature(DS1820::all_devices);
jf1vrr 0:5f5b4e506d94 37 lcd.locate(0,1);
jf1vrr 0:5f5b4e506d94 38 for (i=0; i<devices_found; i++) {
jf1vrr 0:5f5b4e506d94 39 lcd.printf("%4.1fc",probe[i]->temperature('c'));
jf1vrr 0:5f5b4e506d94 40 }
jf1vrr 0:5f5b4e506d94 41 }
jf1vrr 0:5f5b4e506d94 42 }
jf1vrr 0:5f5b4e506d94 43 }