Temperaturmonitor mit 1-Wire Bus

Die von mir gebaute Schaltung wurde getestet und befindet sich noch im Einsatz, für eventuelle Schäden an anderen Fahrzeugen oder Folgeschäden übernehme ich keine Gewähr, hierfür ist jeder selbst verantwortlich!





Entworfen und gebaut habe ich mir die Schaltung für meinem NSU RO 80. Es ist doch ein entspannteres Fahren mit meinem Oldtimer, wenn man zumindest über das thermische Verhalten seiner seltenen Technik genaustens Bescheid weiß und gegebenenfalls rechtzeitig handeln kann. Aber auch neuere PKW’s zeigen z.B. die Kühlwassertemperatur ungenau an, denn die Temperatur kann sich in einem bestimmtem Bereich um den Soll bewegen, aber die Anzeige bleibt in der Mitte stehen. Aus diesen Grund habe ich mir die selbe Anzeige noch einmal gebaut mit 8 Messstellen für meinen betagten SUV aus der Neuzeit. Auch für Boote ist die Schaltung geeignet, den Sensor mit angelöteten Kabel in ein Stück Edelstahlrohr mit Epoxidharz eingießen und schon ist er einigermaßen Seewasser beständig.





Als Temperatursensoren habe ich die digitalen DS18B20 und DS18S20 aus die 1-Wire (1-Draht) Reihe verwendet. Wobei 1-Draht nicht stimmt, man benötigt wenigsten noch einen 2. für die Masse. Diese Temperatursensoren besitzen alle eine unverwechselbare, eigene 64-Bit Adresse, mit der ich jeden einzeln ansprechen kann.

Ich habe einen 3-Draht-Bus verlegt. Da ich die +5V Versorgungsspannung mit zu jedem Sensor verlegt habe und so auch bis 125°C messen kann. Parasitär mit 2-Draht nur bis 100°C. Der DS18S20 legt den Messwert 9-Bit breit intern ab, wo bei das 9.Bit nur für das Vorzeichen ist, somit hat er ein Auflösung von 0,5°C. Der DS1820 legt den Messwert 12-Bit breit ab und hat somit ein Auflösung von 0,1°C. Für Außen- und Innentemperatur habe ich den DS18B20 verwendet. Dadurch, dass ich nur einen Bus durch das Auto gelegt habe und da alle Sensoren angeschlossen sind, gibt es kein riesen Kabelgewirr. 1.Sensor Innenraum, 2.Sensor Getriebeöl, 3.Sensor Motoröl, 4.Sensor Kühlwasserausgang, 5,Sensor Kühlwassereingang und der letzte Sensor Außentemperatur. Für Sportfahrzeuge kann der Sensor für das Motoröl knapp werde, da die DS18... nur bis 125°C funktionieren, kaputt geht aber nichts, da die Sensoren 200°C aushalten.



Das 1-Wire Datenprotokoll ist einfach und nicht sehr zeitkritisch, schon alleine, weil der Master alles steuert.

Er fordert sogar jedes Bit einzeln an.

Ein Time-Slot darf zwischen 60-120 µs lang sein, wichtig ist nur, der Einlese-Zeitpunkt muss ziemlich genau 15µs nach der fallenden Flanke sein, im Normalmodus. Dann beträgt die Datenrate 15 kBit/s, die ich auch verwende. Im Overdrivemodus sind es 125 kBit/s, nur wird man da mit dem Controller den Bus wieder auf hight ziehen müssen, da mit Pull-up Widerstand die Flanke nicht steil genug ist.



Als Master verwende ich einen PIC 16f688, 4MHz getaktet und der ist völlig unterfordert. Ich habe das Programm so geschrieben, der Master gibt einen Befehl an alle Slave’s die Temperatur zu messen. Das dauert bis zu 750ms, während der Zeit misst der Controller Bordspannung,

Kraftstoff, wandelt alle Werte und bringt sie zu Anzeige. Dann werden nach einander alle angeschlossenen DS18... einzeln mit ihrer 64 Bit Identnummer angesprochen, der Temperaturwert ausgelesen und ein einen °C Dezimalwert umgerechnet. Man kann sagen die Werte werden jede Sekunde aktualisiert. Um verschiedene Werte anzuzeigen, habe ich 5 Anzeigenmodi programmiert. Des weitern habe ich im Programm noch eine Funktion vorgesehen um die 64 Bit Identnummer auszulesen. Wenn man nur einen 1-Wire Slave anschließt und während dem Einschalten den Anzeigen Taster drückt, wird die 64 Bit Identnummer ausgelesen und angezeigt.


Angezeigt wird alles mit einen 2x20 Dot-Matrix Display. Ich habe ein PC 2002 Display mit 10mm Zeichengröße verwendet. Das Display lässt sich wunderbar im Dunkeln, bei vollem Sonnenlicht und aus verschiedenen Blickwinkeln ablesen.


Nachteil diesen Typ’s, man benötigt noch eine IC, eine Ladepumpe um eine kleine negative Kontrast-Spannung zu erzeugen und die Hintergrundbeleuchtung verschlingt 1,2W (nichts für ein autarkes Segelboot). Verwendet man einfache Anzeigen mit kleinen Zeichen, kann man den ICL 7660 weglassen und ein einfache Poti verwenden. Viel Typen von Dot-Matrix Displays gibt es für wirklich wenig Geld bei ebay.



Zum Schluss habe ich noch alles in ein Kunststoffgehäuse gebaut. Nur die Schalter und Taster müsste ich noch durch schwarze ersetzen.

Da das Gehäuse schwarz ist und das Display im ausgeschalteten Zustand ganz dunkelblau, bemerkt man es im abgestellten Auto gar nicht und das schöne Aussehen des Armaturenbretts wird nicht gestört oder verändert.



Stückliste mit Reichelt Bestellnummern:


Artikel

Bestellnummer

Preis

PIC 16f688

PIC 16f688-I/P

1,88 €

7805 Spannungsregler

ΜA 7805

0,27 €

Z-Dioden

ZF 4,7

0,15 €

Widerstände u.Kondensatoren

diverse

~1,00 €

Poti's

diverse

~1,00 €

Dot-Matrix Display

ebay

10,00 €

Gehäuse

ebay

10,00 €

PC 817

PC 817X

0,64 €

ICL 7660

ICL 7660

0,57 €


























Datenblatt DS18S20


Datenblatt DS18B20







So habe ich das immer aufgebaut, Irrtümer und Änderungen vorbehalten!







zurück



Counter