Thermometer mit DS18S20

In meinem neuen Dacia Duster fehlt leider eine Aussentemperaturanzeige. Eine fertige Anzeige mit LCD schied aus da der Kontrast bei Sonnenlicht meist nicht besonders ist. Ich hatte noch alphanummerisches LED-Displays in rot da die sich für dieses Projekt bestens eignen. Als Controller kommt ein ATTINY 2313 zum Einsatz. Der Temperatursensor ist ein 1-Wire-Digitalsensor. Damit entfällt der aufwändige Abgleich des Sensors.

Hardware

Da die Elektronik im Auto zum Einsatz kommt habe ich der Stromversorgung einen besonderen Augenmerk gewidmet. Die 12V kann von 7V - 15V schwanken mit Spitzen bis 40V positiv wie negativ. Desweiteren sollen keine Störungen aufs Auto zurückwirken. Um dies einzuhalten sind verschiedene Entstömaßnahmen vorgesehen incl. Eingangsschutz gegen die Spannungsspitzen. Die Anzeige wurde abgesetzt zur Steuerelektronik eingebaut und beide Gehäuse innen mit einem EMV-Spray auf Kupferbasis behandelt. Diese Abschirmung wurde auf Masse gelegt. Die +5V für ATTINY, Sensor und Anzeige werden von einem Schaltregler LM2574 erzeugt. Damit die Anzeige im Dunkeln nicht blendet wird mit dem Einschalten des Lichts die Anzeige etwas gedimmt.

Schaltplan:

Schaltplan der Steuerplatine

zum vergrößern anklicken

fertige Platine:

fertig bestückte Platine

zum vergrößern anklicken

Software

Die Software ist mit WINAVR20090313 geschrieben. Aller 10msek. erfolgt ein Interrupt wo eine Zeitvariable hochgezählt wird. In der Hauptschleife wird dann mit switch case der Programmablauf gesteuert. Dabei wird zuerst versucht den DS18S20 zu initalisieren und bei Erfolg wird die Messung gestartet. Die Wandlung dauert ca. 800msek.. Danach wird der Speicher des Sensors ausgelesen. Bei einer negativen Temperatur (scratchpad[1] ungleich 0) wird eine andere Berechnung angewendet als bei einer positiven Temperatur. Die führende Null wird noch ausgeblendet und das Ergebnis an die LED-Anzeige geschickt. Danach beginnt der Zyklus von neuem. Nach dem Start der Messung wird noch abgefragt ob das Licht eingeschalten wurde. In dem Fall wird die Anzeige über den Anschluß „blank“ gedimmt.

Programmablaufplan:

Programmablaufplan

fertig eingebaut

Die Anzeige selbst habe ich direkt verdrahtet auf einer Lochrasterplatine. Die Blende sitzt auf Abstandsbolzen zur Anzeige.

Gesamtansicht

Einbauort

zum vergrößern anklicken

Download

Eagle Dateien der Platine:

Eagle Dateien

AVR-Firmware:

Quellcode

 
projekte/thermometer_mit_ds18s20.txt · Zuletzt geändert: 2017/04/15 22:59 (Externe Bearbeitung)
Recent changes RSS feed Creative Commons License Driven by DokuWiki Made on Mac