Als Temperatursensor wird der DS18B20 mit externer Spannungsversorgung verwendet.

.

Abb.: Temperatursensor ; Quelle: BBS2 Wolfsburg

Beim anschließen ist darauf zu achten, dass die richtigen Anschlüsse zu verwendet wird, wie auch in folgendem Bild dargestellt ist:


Abb.: Temperatursensor Pins ; Quelle: BBS2 Wolfsburg

Weitere Informationen können dem Datenblatt entnommen werden.


Auf der vorherigen Seite wurde die Adresse des Temperatursensors ausgelesen. Nun soll er die gemessene Temperatur ausgeben.

Damit auf die Methoden des DS18B20 einfacher zugegriffen werden kann, empfiehlt es sich eine Bibliothek zu verwenden.
Hier der Link zu der verwendeten Bibliothek:

https://github.com/milesburton/Arduino-Temperature-Control-Library

Zusätzlich zum OneWireBus muss der Temperatursensor über "DallasTemperature tempSensor(&oneWire)" konfiguriert werden.

Die Initialisierung wird durch "tempSensor.begin()" durchgeführt.

Die Temperaturmessung wird über "tempSensor.requestTemperatures()" angefordert.

"tempSensor.getTempCByIndex(0)" liest die Temperatur aus. Das Ergebniss sollte in einer Variablen gespeichert werden.

Zur Temperaturerfassung wurde der DS18B20 verwendet.

//Einbinden von Bibliotheken
#include "OneWire.h"                                                                         //OneWire-Bibliothek
#include "DallasTemperature.h"                                                               //Temperatursensor-Bibliothek

//Definition der Pins
#define ONE_WIRE_BUS 4                                                                       //Datenleitung für OneWire ist fest an Pin 4 angeschlossen

OneWire oneWire(ONE_WIRE_BUS);                                                               // Initialisiert den OneWireBus
DallasTemperature tempSensor(&oneWire);                                                      //Fügt die Adresse des Temperatursensor zum Bus hinzu

//Variablen für Datenauslesen
double temperature;                                                                          //Speicher der übermittelten Temperatur

void setup()
{
  Serial.begin(9600);                                                                        //Beginn des Seriellen Monitors
  tempSensor.begin();                                                                        // Messungsstart des Temperatursensors
}

void loop()                                                                                  //Schleifenfunktion (immer nötig bei der Programmierung von Mikrocontrollern)
{
    tempSensor.requestTemperatures();                                                        // Temperaturmessung wird gestartet
    temperature = tempSensor.getTempCByIndex(0);                                             // Rückgabewert speichern
    Serial.print("Temperature is: ");                                                        // Ausgabe der Werte
    Serial.println(temperature);                                                             // Rücksetzen der Ausleseanfrage
}


So kann der Monitor dann aussehen:

Abb.: Serieller Monitor mit Temperaturausgabe; Quelle: BBS2 Wolfsburg

Zuletzt geändert: Montag, 28. Februar 2022, 16:43