In diesem Thema geht es um die Temperaturmessung mit einem Dallas DS18B20 Sensor
Die Temperaturmessung ist eine der häufigsten Anwendungen mit einem Arduino. Es gibt eine Vielzahl Möglichkeiten die Temperatur mit einem Arduino zu messen. Temperaturabhängige Widerstände wie Heißleiter (NTC - negativer TemperaturCoeffizient), das sind Widerstände die bei Temperaturanstieg ihren Widerstandswert erhöhen, Kaltleiter (PTC - positiver TemperaturCoeffizient), deren Widerstand sich bei Temperaturanstieg verringert, Platin- und Siliziumwiderstände, bei denen man über eine Messchaltung quasi über den fließenden Strom durch eine Spannungsfallmessung die Temperatur auswertet.
Das kann im Einzelnen eine sehr aufwändige Messschaltung erfordern. Es gibt aber auch Temperaturmesssensoren, die in kompakter Form die Messschaltung quasi in einem Bauteil enthalten. Dazu gehört auch der TMP35 / TMP 36 oder der LM 35 (DZ). Diese Sensoren liefern als Messergebnis bereits eine Spannung, die proportional zur gemessenen Temperatur ist. Diese Spannung liest man über einen analogen Messkanal ein und rechnet die Spannung in eine Temperatur um. In diesem Thema möchte ich mich aber nur auf den Dallas DS18B20 Messsensor konzentrieren und habe die anderen Varianten nur kurz und nicht komplett vollständig erwähnt.
Der Dallas DS18B20 ist ein Messensor, der sich besonders gut für Microcontrolleranwendungen eignet, weil dieser die gemessene Temperatur bereits als digitalen Wert liefert. Es gibt ihn in zwei typischen Bauformen, einmal in einem TO-Gehäuse, das sieht wie ein einfacher Transistor aus und in einer Tauchhülse mit Anschlusskabel. Beide Varianten haben ihren Einsatzzweck.
Angeschlossen wird der DS18B20 in den häufigsten Fällen mit drei Anschlüssen, Plus, Masse und eine Datenleitung. Die Datenleitung ist ein digitaler Ausgang, der das Messergebnis seriell an den Microcontroller übermitteln kann. Damit die Datenübermittlung funktioniert, muß man zwischen Plus und dem Datenausgang einen 4,7 Kiloohm Widerstand legen.
Es gibt zwei Varianten des DS18B20, die unterschiedlich angeschlossen werden, aber im Prinzip gleich funktionieren. Einmal die Variante, bei der tatsächlich Plus, Masse und die Datenleitung getrennt angklemmt werden und eine Varainte, die nur zwei Anschlüsse besitzt. Diese Sonderform wird im parasitären Modus betrieben, d.h., sie benötigt keine direkte Verbindung zu Plus. Masse und die Datenleitung müssen aber angeschlossen werden.
Damit diese parasitäre DS18B20 Sensortype funktioniert, muß trotzdem ein 4,7 Kiloohm Widerstand zwischen Plus und die Datenleitung gelegt werden. Die Elektronik im Sensor zieht in den Ruhephasen (wenn sie nicht angesprochen wird) quasi den Betriebsstrom über den 4k7 Widerstand und "lädt" sich darüber auf. Das aber nur der Vollständigkeit halber, weil ich selbst nur den Typ mit drei Anschlüssen verwende.
Eines der größten Vorteile der DS18B20 Sensoren ist die Möglichkeit, mehrere dieser Sensoren parallel zu betreiben. D.h., man benötigt jeweils nur Plus und Masse und kann die Datenausgänge aller verwendeten Sensoren gemeinsam an einen Digitaleingang eines Microcontrollers anschließen.
Um die Messwerte der einzelnen Sensoren gterennt abrufen zu können, hat jeder Sensor eine eigene Adresse, über die er angesprochen werden kann und auf Anforderung den Messwert übermittelt. Die Adressen sehen in hexadezimaler Schreibweise etwa so aus : {0x28, 0xAA, 0xD9, 0xA6, 0x3B, 0x14, 0x01, 0x16}.
Die Temperaturmessung ist eine der häufigsten Anwendungen mit einem Arduino. Es gibt eine Vielzahl Möglichkeiten die Temperatur mit einem Arduino zu messen. Temperaturabhängige Widerstände wie Heißleiter (NTC - negativer TemperaturCoeffizient), das sind Widerstände die bei Temperaturanstieg ihren Widerstandswert erhöhen, Kaltleiter (PTC - positiver TemperaturCoeffizient), deren Widerstand sich bei Temperaturanstieg verringert, Platin- und Siliziumwiderstände, bei denen man über eine Messchaltung quasi über den fließenden Strom durch eine Spannungsfallmessung die Temperatur auswertet.
Das kann im Einzelnen eine sehr aufwändige Messschaltung erfordern. Es gibt aber auch Temperaturmesssensoren, die in kompakter Form die Messschaltung quasi in einem Bauteil enthalten. Dazu gehört auch der TMP35 / TMP 36 oder der LM 35 (DZ). Diese Sensoren liefern als Messergebnis bereits eine Spannung, die proportional zur gemessenen Temperatur ist. Diese Spannung liest man über einen analogen Messkanal ein und rechnet die Spannung in eine Temperatur um. In diesem Thema möchte ich mich aber nur auf den Dallas DS18B20 Messsensor konzentrieren und habe die anderen Varianten nur kurz und nicht komplett vollständig erwähnt.
Der Dallas DS18B20 ist ein Messensor, der sich besonders gut für Microcontrolleranwendungen eignet, weil dieser die gemessene Temperatur bereits als digitalen Wert liefert. Es gibt ihn in zwei typischen Bauformen, einmal in einem TO-Gehäuse, das sieht wie ein einfacher Transistor aus und in einer Tauchhülse mit Anschlusskabel. Beide Varianten haben ihren Einsatzzweck.
Angeschlossen wird der DS18B20 in den häufigsten Fällen mit drei Anschlüssen, Plus, Masse und eine Datenleitung. Die Datenleitung ist ein digitaler Ausgang, der das Messergebnis seriell an den Microcontroller übermitteln kann. Damit die Datenübermittlung funktioniert, muß man zwischen Plus und dem Datenausgang einen 4,7 Kiloohm Widerstand legen.
Es gibt zwei Varianten des DS18B20, die unterschiedlich angeschlossen werden, aber im Prinzip gleich funktionieren. Einmal die Variante, bei der tatsächlich Plus, Masse und die Datenleitung getrennt angklemmt werden und eine Varainte, die nur zwei Anschlüsse besitzt. Diese Sonderform wird im parasitären Modus betrieben, d.h., sie benötigt keine direkte Verbindung zu Plus. Masse und die Datenleitung müssen aber angeschlossen werden.
Damit diese parasitäre DS18B20 Sensortype funktioniert, muß trotzdem ein 4,7 Kiloohm Widerstand zwischen Plus und die Datenleitung gelegt werden. Die Elektronik im Sensor zieht in den Ruhephasen (wenn sie nicht angesprochen wird) quasi den Betriebsstrom über den 4k7 Widerstand und "lädt" sich darüber auf. Das aber nur der Vollständigkeit halber, weil ich selbst nur den Typ mit drei Anschlüssen verwende.
Eines der größten Vorteile der DS18B20 Sensoren ist die Möglichkeit, mehrere dieser Sensoren parallel zu betreiben. D.h., man benötigt jeweils nur Plus und Masse und kann die Datenausgänge aller verwendeten Sensoren gemeinsam an einen Digitaleingang eines Microcontrollers anschließen.
Um die Messwerte der einzelnen Sensoren gterennt abrufen zu können, hat jeder Sensor eine eigene Adresse, über die er angesprochen werden kann und auf Anforderung den Messwert übermittelt. Die Adressen sehen in hexadezimaler Schreibweise etwa so aus : {0x28, 0xAA, 0xD9, 0xA6, 0x3B, 0x14, 0x01, 0x16}.
Zuletzt bearbeitet: