Der DS18B20-Sensor verfügt über 3 Anschluss-Kabel.
Schließe diese wie folgt an den Arduino an:
Über das gelbe Kabel wird der Messwert bei diesem Sensor nicht als einfacher Spannungswert ausgegeben. Der Sensor liefert statt dessen nach dem OneWire-Protokoll codierte Daten.
Um sie verarbeiten zu können, müssen wir die entsprechende Bibliothek installieren.
Der DS18B20-Sensor wurde von der Firma Dallas Semiconductors entwickelt. Die Bibliothek heißt daher DallasTemperature:
Erstelle einen neuen Sketch und speichere ihn unter dem Namen Temperatur.
Kopiere folgende Codezeilen an den Beginn deines Sketeches:
#include <OneWire.h>
#include <DallasTemperature.h>
Mit folgenden Sketchzeilen legst du fest, dass der Sensor an Pin2 des Arduinos angeschlossen ist:
// Anschluss des Sensors an Pin2
int tempPin=2;
OneWire oneWire(tempPin);
DallasTemperature sensors(&oneWire);
In der setup()-Methode startest du die serielle Datenübertragung und den Sensor:
void setup()
{
Serial.begin(9600);
sensors.begin();
}
In der loop()-Methode wird alle 100ms ein Temperatur-Wert gelesen und an die Serielle Schnittstelle ausgegeben:
void loop(void)
{
// Sende Signal zum Abfragen der Temperatur
sensors.requestTemperatures();
// Lese den Wert des Sensors mit dem Index 0 (es können mehrere Sensoren angeschlossen werden)
float tempC = sensors.getTempCByIndex(0);
// Ausgabe des Wertes an die Serielle Schnittstelle
Serial.println(tempC);
// 100 ms Pause
delay(100);
}
Wenn du das Programm gestartet hast, wird die gemessene Temperatur in °C auf dem Seriellen Monitor ausgegeben.
Ein Wert von -127.0 zeigt hierbei an, dass ein Fehler vorliegt - überprüfe den Code und die Verkabelung des Sensors.
Über den Seriellen Plotter kannst du die Messwerte grafisch darstellen lassen: