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 € |
So habe ich das immer aufgebaut, Irrtümer und Änderungen vorbehalten!