Demo for reading DS1820 temperature sensor with STM32F103C8T6 board.

Dependencies:   mbed DS1820

Reading DS1820 temperature sensor with STM32F103C8T6 board

Import the program into your online compiler.

Schematic

/media/uploads/hudakz/stm32f103c8t6_ds1820_04.png

Wiring

STM32F103C8T6DS1820
GND<=>GND
PA_9<=>DQ
3.3V<=>VDD

main.cpp

Committer:
hudakz
Date:
2019-02-05
Revision:
3:99631e445ec4
Parent:
2:171926fbefb3

File content as of revision 3:99631e445ec4:

/*
 * DS1820 sensor demo
 *
 * Note: Don't forget to connect a 4.7k Ohm resistor 
 *       between the DS1820's data pin and the +3.3V pin
 *
 */
#include "mbed.h"
#include "DS1820.h"
  
Serial      pc(PA_2, PA_3);
DigitalOut  led(PC_13);   
DS1820      ds1820(PA_9);    // substitute PA_9 with actual mbed pin name connected to the DS1820 data pin                             
float       temp = 0;

int main() 
{                          
    int  error = 0; 
    
    if(ds1820.begin()) {
        while(1) {
            ds1820.startConversion();  // start temperature conversion from analog to digital
            wait(1.0);                 // let DS1820 complete the temperature conversion 
            error = ds1820.read(temp); // read temperature from DS1820 and perform cyclic redundancy check (CRC)
            switch(error) {
            case 0:    // no errors -> 'temp' contains the value of measured temperature
                pc.printf("temp = %3.1f%cC\r\n", temp, 176);
                break;
            case 1:    // no sensor present -> 'temp' is not updated
                pc.printf("no sensor present\n\r");
                break;
            case 2:    // CRC error -> 'temp' is not updated
                pc.printf("CRC error\r\n");
            } 
            led = !led;
        }
    } else
        pc.printf("No DS1820 sensor found!\r\n");
}