Stand: 18/11/2019

LED Thermometer

Das nachfolgend beschriebene Digital-Thermometer habe ich entworfen, um den 1-Wire Datenbus am Beispiel des MAXIM Temperatursensors DS18S20 kennen zu lernen.

Das Grundgerüst hierzu bildet ein ATtiny2313 Prozessor, der eine 4-stellige LED-Anzeige ansteuert. Zur Kommunikation mit dem "One Wire Sensor" reicht - wie der Name schon sagt - ein einziger Portpin aus. Die Übertragung erfolgt sogar bidirektional, d.h. der Sensor fungiert wahlweise als Sender oder als Empfänger. Zwar ist hierzu im Vergleich zu einem analogen Sensor der Programmieraufwand höher, dafür kann man aber Prozessoren ohne A/D Wandler benutzen, und man bekommt den kalibrierten Messwert direkt digital geliefert.

Entscheidend für die stabile Funktion der Messung ist die Einhaltung des im Sensor-Datenblatt beschriebenen Timings. Hierzu sind im Programm-Quelltext die entsprechend umgesetzten Impulsdiagramme dargestellt. Das Assembler-Programm ist gut kommentiert; es implementiert die Grundfunktion zur Auswertung eines Sensors mit einem Messbereich von
-9,5ºC ... +99,5ºC und einer Auflösung von 0,5ºC. Die Genauigkeit des Sensors liegt unterhalb von 85ºC bei +/- 0,5ºC.

Der Sensor selbst ist in einem TO-92-Gehäuse untergebracht, das man von Kleinsignal Transistoren kennt; er besitzt 3 Anschlüsse: GND & VDD zur Spannungsversorgung und DQ als Datenleitung (3 Draht Modus). Alternativ - bei entsprechender Auslegung der Firmware - kann man den Sensor auch im Zweidraht-Modus betreiben. Hierbei werden die beiden äußeren Anschlüsse VDD und GND des Sensors mit Schaltungsmasse verbunden, und die Stromversorgung des Sensors erfolgt nun auch noch über die Datenleitung vom Portpin des Prozessors. Bezeichnung hierfür im Datenblatt: “parasite power". Das hier beschriebene Design unterstützt beide Anschluss Varianten. Darüber hinaus besteht die Möglichkeit, mehrere Sensoren parallel am gleichen Portpin anzuschließen. Hierzu müsste allerdings die Firmware entsprechend erweitert werden, Näheres siehe Datenblatt.

Das Hardware-Design ist dank der Verwendung einer fertig verschalteten, 4-stelligen LED Anzeige recht simpel und findet auf einer einseitigen, kreuzungsfrei entflochtenen Platine Platz. Abmessungen: 3 x 4cm. Als Taktgeber reicht der Prozessor-interne 8MHz RC Oszillator völlig aus, ein Quarz wird nicht benötigt.

DS18S20 Thermometer mit Sensor im „parasite“ Modus

 

 

Downloads

Firmware
Platinenlayout