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

main.cpp

Committer:
jf1vrr
Date:
2011-04-28
Revision:
0:5f5b4e506d94

File content as of revision 0:5f5b4e506d94:

/* 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/].
*/
#include "mbed.h"
#include "TextLCD.h"
#include "DS1820.h"

TextLCD lcd(p24, p26, p27, p28, p29, p30);

const int MAX_PROBES = 1;
DS1820* probe[MAX_PROBES];

int main() {
    int i;
    int devices_found=0;
    // Initialize the probe array to DS1820 objects
     for (i = 0; i < MAX_PROBES; i++)
        probe[i] = new DS1820(p19);
    // Initialize global state variables
    probe[0]->search_ROM_setup();
    // Loop to find all devices on the data line
    while (probe[devices_found]->search_ROM() and devices_found<MAX_PROBES-1)
        devices_found++;
    // If maximum number of probes are found, 
    // bump the counter to include the last array entry
    if (probe[devices_found]->ROM[0] != 0xFF)
        devices_found++;

    lcd.cls();
    if (devices_found==0)
        lcd.printf("No devices found");
    else {
        lcd.printf("DS1820 Thermo" );
        while (true) {
            probe[0]->convert_temperature(DS1820::all_devices);
            lcd.locate(0,1);
            for (i=0; i<devices_found; i++) {
                lcd.printf("%4.1fc",probe[i]->temperature('c'));
            }
        }
    }
}