Temperatursensor DS18B20

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen


→ zurück zur Übersicht: WS 18/19: Sensortechnik (MTR)

DS18B20

Autor: David Reger
Betreuer: Prof. Schneider

Aufgabe

Innerhalb des Moduls Systems Design Engineering (SDE), sollte im Fach Sensortechnik ein Primärsensor ausgewählt und mit einem beliebigen Mikrocontroller ausgewertet werden. Dazu gehört das ermitteln der Sensordaten und Funkionsweise des Sensors.
Anhand der Daten wird eine Schaltung entworfen, in welcher Art der Sensor bei dem Mikrocontroller angebunden wird. Nachdem der Sensor mit dem Mikrocontroller verknüpft ist, soll ein Quelltext zum Auswerten der Sensordaten erstellt werden.
Der Aufbau der Schaltung wird in einer Skizze dargestellt. Die durchgeführte Messung zum erhalten der Sensordaten wird in einem YouTube Video dokumentiert. Während der Temperaturaufnahme wurde im Versuch ein Referenzgerät zum vergleichen der Temperaturwerte verwendet.
Zum Schluss werden die erhaltenen Temperaturdaten bewertet.

Technische Übersicht

Eigenschaft Daten
Betriebsspannung min. 3,0 V - max. 5V
Schnittellen: 3 (VDD, DQ, GND)
Sensortyp: Digital (1-Wire-Bus)
Auflösung: 9/12 Bit
Temperaturbereich: -55°C - +125°C
Abweichung: +-0,5°C
Produktgehäuse TO-92 (Transistor Outline)


Verwendete Software

Für dieses Projekt wurde folgende Software verwendet:
Programmierung und Auswertung der Sensordaten

  • Arduino IDE 1.8.7

Schaltungsentwurf

  • Fritzing

Videobearbeitung

  • Vegas Pro 13

Auswerteschaltung

Verwendete Hardware

  • Arduino UNO R3
  • DS18B20 Sensor
  • Jumper Wires
  • Display
  • 4,7k Ohm Widerstand

Datenblätter

Datenblatt Mikrocontroller: Arduino UNO
Datenblatt Sensor: DS18B20

Steckplatine

Schaltung

Messkette

Auswahl eines Primärsensors

Der DS18B20 ist ein Halbleiter Temperatursensor, der abhängig von der Temperatur eine digital umgesetzte Spannung liefert. Die Konvertierung erfolgt innerhalb des Sensors im Scratchpad.

Scratchpad des DS18B20

Bussystem

Der Sensor und Mikrocontroller interagieren über ein 1-Wire Bus miteinander.

Digitale Signalverarbeitung

Der Sensor kann mit verschiedenen Auflösungen verwendet werden, welche von 9-12 Bit konfiguriert werden kann. Standardmäßig ist die Auflösung auf 12 Bit gesetzt und wurde in dem Projekt beibehalten. Um aus dem digitalen Signal einen Wert zu erhalten muss dieses umgerechnet werden. Da die 12 Bits in 2 Bytes gespeichert werden muss hierzu in ein LSB (Least Significant Byte) und MSB (Most Significant Byte) unterschieden werden. Die Wertigkeiten sind in der nachfolgenden Tabelle dargestellt

Bitwertigkeiten Tabelle

. Um die Temperatur zu berechnen wird das MSB um 8 Bits nach links geshiftet, damit es die passende Wertigkeit zugewiesen bekommt. Anschließend werden LSB und MSB miteinander addiert und mit der Auflösung des Sensors multipliziert. Daraus ergibt sich folgende Rechnung.

Temperatur = ((MSB << 8) +LSB) * 0.0625 (Auflösung bei 12 Bit)

Die Konvertierung der Temperatur bei einer Auflösung von 12 Bit benötigt 750 ms, wodurch in der Auswertung ein Delay eingebaut werden muss. Anschließend wird der Wert auf einem Display ausgegeben

Bewertung der Sensordaten

In jedem Schritt innerhalb einer Messkette können Messfehler austreten. Bei der Konvertierung der Temperatur in ein digitales Signal, bei der Kommunikation zwischen Sensor und Mikrocontroller, bei der Umrechnung des digitalen Signals in einen Temperaturwert und bei der Ausgabe auf dem Display. Es können überall Messunsicherheiten auftreten. Der Hersteller des Sensors gibt im Bereich von -10 °C bis +85°C, eine Messgenauigkeit von ± 0,5 °C an. Bei der Messung, welche im Youtube Video zu sehen ist, wird ein Referenzgerät zur Ermittlung der Temperatur verwendet. Hier lässt sich eine Messgenauigkeit von ca. ± 1 °C feststellen. Ursache hierfür können die oben genannten Messfehler in der Messkette sein. Außerdem benötigt die Konvertierung des 12 Bit Wertes 750 ms, wodurch der Sensor langsamer Werte misst als das Referenzgerät. Dadurch kann der Sensor schnelle Temperaturänderungen abhängig von der Zeit weniger gut erfassen. Bei einer konstanten Temperatur ist die Genauigkeit besser.

Lernerfolg

Durch Anbindung und Auswertung eines Sensors wurde ein guter Einblick in den Bereich Sensortechnik erlangt. Besonders bei der Auswahl des Sensors wurden die verschiedenen Anwendungsmöglichkeiten verdeutlicht. Außerdem wurden Verknüpfungen zu anderen Fächern erstellt. Zum einen diente die Zusatzaufgabe als Ergänzung des Fachs Sensortechnik und erhöhte den Lerneffekt durch die praktische Anwendung. Da der DS18B20 ein digitaler Sensor ist und über den 1-Wire Bus angeschlossen wird, wurden Kenntnisse aus dem dritten Semester im Fach Digitaltechnik aufgegriffen. Außerdem wurde durch die Recherche über den Bus eine Vorbereitung zum Fach Bussysteme im 6. Semester getroffen. Durch die Anbindung an einen Mikrocontroller konnte das Wissen, welches parallel im 5. Semester erlangt wurde, aus Systemarchitektur und Embedded Systems eingebracht werden. Vor allem bei der Programmierung war das Vorwissen erleichternd. Insgesamt deckt die Zusatzaufgabe viele Bereiche aus dem Studiengang Mechatronik ab und verknüpft Wissen aus verschiedenen Bereichen.

Gesamtfazit

YouTube Video

YouTube-Video DS18B20

Schwierigkeitsgrad

'***'

--- → zurück zur Übersicht: WS 18/19: Sensortechnik (MTR)