SAM – Einbau des Temperatursensors DS18B20

 

Der DS18B20 ist ein Temperatursensor mit 1Wire-Schnittstelle. Er benötigt zum Auslesen der Messwerte eine zusätzliche Ader im Sensorkabel. Der Temperatursensor hat laut Hersteller eine Absolutgenauigkeit von +/-0.5° und eine Auflösung von 0.625K/bit.

 

Anschlussbelegung: (von vorn auf die flache Seite mit der Beschriftung gesehen)

 

1-     GND (Masse)

2-     DQ (Datenleitung)

3-     VDD (+5V)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Einbau:

 

Der DS18B20 wird mit seiner Datenleitung DQ (Pin2) direkt an den PIC-Mikrocontroller angeschlossen. Dazu wird der Eingang RA4 (Pin6) des 16F877 genutzt. Zusätzlich muss die Datenleitung über einen Widerstand 4.7kOhm auf VCC (+5V) des PIC-Mikrocontrollers gelegt werden. Der VDD-Anschluss des DS18B20 (Pin3) wird mit der Betriebsspannung des Magnetfeldsensors verbunden. Der Pin1 des DS18B20 wird mit der Masse des Magnetfeldsensors verbunden.

 

Der Temperatursensor müsste mit dieser Beschaltung bereits funktionieren. Es hat sich jedoch gezeigt, dass die Datenübertragung vom ständig anliegenden Sensorsignal beeinflusst wird. Aus diesem Grund macht sich folgende Zusatzbeschaltung erforderlich:

 

1.      Kondensator 2.2nF zwischen Datenleitung DQ (Pin1) und GND (Pin2) des DS18B20. Dieser Kondensator soll Störspitzen auf der Datenleitung unterdrücken. Ohne diesen Kondensator kommt es zu ca. 40% Lesefehlern.

2.      Tantal-Elko 10µF/35V über die Betriebsspannung des Magnetfeldsensors und damit gleichzeitig über GND (pin2) und VDD (Pin3) des DS18B20. Wird dieser Kondensator weggelassen, dann erfolgt keine Temperaturmessung durch den DS18B20. Die Ursache liegt beim Magnetfeldsensor.

 

Einbau:

 

1.      Der Ausgang RA4 (PIN6) des PIC-Mikrocontrollers wird gesucht. Dieser befindet sich auf der Seite der 34poligen Wannenstiftleiste in der Nähe von R31. Vom PIN6 gehen sowohl auf der Löt- als auch auf der Bestückungsseite keine Leiterzüge ab.

2.      Jetzt wird an RA4 ein dünner Draht angelötet, dessen andere Seite auf einem freien Lötpunkt des Lötrasterfelds angelötet wird.

3.      Der 4.7kOhm-Widerstand wird daneben platziert und mit diesem Drahtende verbunden.

4.      Vom gleichen Lötpunkt aus wird eine Draht zur 6poligen Sensorbuchse gezogen und dort an PIN1 (Feld2) angelötet (siehe Baumappe S.7: Buchse X3). Es kann alternativ der PIN2 (Feld1) der Sensorbuchse verwendet werden. Dieser ist ebenfalls nicht belegt.

5.      Das freie Ende des 4.7kOhm Widerstandes muss jetzt noch mit VDD verbunden werden. Am einfachsten ist das Anlöten eines Drahtes direkt am 5V-Regler (78S05 – IC3). Der 5V-Ausgang ist im Bestückungsplan in der Baumappe mit „O“ gekennzeichnet  (siehe auch Baumappe S. 7: Messpunkt +5V).

 

Nach Abschluss dieser Arbeiten wurde folgende Schaltung realisiert:

 


                                                  VDD

 

 


                                                    4.7k

 

 


                6 (RA4)

                                                                                                                            Feld2

 

 

 

 

 

 

 

 

6.      Am Magnetfeldsensor wird der Tantal-Elko (10µF/35V) über den Betriebsspannungsanschlüssen verlötet. Dabei ist die Polarität des Tantal-Elkos zu beachten. Der Pluspol ist gekennzeichnet.

7.      Der DS18B20 wird mit den Anschlüssen GND (Pin1) und VDD (PIN3) mit den  Anschlüssen GND und +5V des Magnetfeldsensors verbunden.

8.      Der 2.2nF Kondensator wird mit den Anschlüssen GND (Pin1) und DQ (Pin2) des DS18B20 verlötet.

9.      Die Datenleitung des DS18B20 muss noch im Stecker des Sensorkabels angelötet werden.

 

Bei allen Lötarbeiten ist darauf zu achten, dass sich keine Lötbrücken bilden. Dies gilt besonders für das Anlöten des Drahtes an RA4 des Controllers sowie die Verdrahtung des DS18B20.


Test:

 

Zum Test des Temperatursensors gibt es ein spezielles Programm DS18B20.HEX. Dieses ist wie gewohnt mit dem PIC-Loader aufzuspielen. Das Testprogramm arbeitet in 3 Schritten:

 

1.      Überprüfung, ob der Sensor angesprochen werden kann,

2.      Auslesen der Hardwareadresse des Sensors (jeder Sensor hat eine weltweit einmalige 48bit-Adresse),

3.      Auslesen der Temperatur.

 

Die Ergebnisse dieser Schritte werden in den ersten drei Displayzeilen dargestellt. In der 4. Zeile wird die Anzahl aufgetretener Lesefehler ausgegeben.

 

 

Fehlersuche:

 

„DS18B20 nicht OK“ in 1. Zeile:

 

Der Temperatursensor wurde nicht erkannt -> Verdrahtung überprüfen

 

„Lesefehler“ in 2. Zeile:

 

Der DS18B20 wurde erkannt. Seine Adresse wurde nicht korrekt ausgelesen -> Überprüfung, ob 2.2nF-Kondensator zwischen Datenleitung DQ (PIN2) und GND (PIN1) liegt. Wenn ja, dann kann versucht werden, einen anderen Kondensator mit etwas geringerer oder größerer Kapazität einzulöten. Möglicherweise bei großen Leitungslängen ein zusätzlicher Kondensator am PIC-Controller (RA4 gegen GND) eingelötet werden.

Eventuell kann man auch versuchen, von RA4 (Pin6) des Mikrocontrollers einen 68kOhm-Widerstand nach GND zu löten.

 

„T: Lesefehler“ in 3. Zeile

 

Die Adresse des DS18B20 wurde korrekt gelesen, das Auslesen der gemessenen Temperatur ist jedoch fehlgeschlagen -> Überprüfung, on der Tantal-Elko mit der richtigen Polarität über der Betriebsspannung des Magnetfeldsensors liegt und VDD (Pin2) des DS18B20 mit der Betriebsspannung des Magnetfeldsensors verbunden ist.

 

„Fehler: >0“ in 4. Zeile

 

Der DS18B20 konnte erfolgreich abgefragt werden, es kommt jedoch hin und wieder zu Lesefehlern.

 


SAM-Betriebssoftware V2.02

 

Wenn die Inbetriebnahme des DS18B20 abgeschlossen ist, kann die neue SAM-Betriebssoftware aufgespielt werden. Außer der Temperaturmessung wurde die Darstellung des K-Wertes in der 4. Zeile wie folgt überarbeitet:

 

K: <aktuell> (letzte Periode) D: <aktuelle Schwankungsbreite>

 

z.B.:

 

K: 4 (3) D: 57nT

 

Diese Ausgabe bedeutet:

 

 

Die Darstellung der Schwankungsbreite ist hilfreich um einzuschätzen, ob ein bestimmter K-Wert gerade so erreicht wurde oder ob die Schwelle für den nächsthöheren K-Wert fast erreicht ist.

 

Nach der Initialisierung des Magnetfeldsensors (ca. 10 Sekunden) wird der DS18B20 angesprochen und das Ergebnis kurz im Display dargestellt. Danach wird der normale Messbetrieb aufgenommen und zusätzlich zum magnetischen Fluss die Temperatur im 1s-Zyklus gemessen. Die gemessene Temperatur wird in der 3. Displayzeile ausgegeben. Zusätzlich erfolgt die Ausgabe der Temperatur am Ende jeder Datenzeile auf der RS-232 Schnittstelle.

Die Temperaturmessung kann über den Taster <F4> ein- und ausgeschaltet werden. Dabei darf es zu keinen Veränderungen der Magnetfeldmesswerte kommen, was im Kalibriermodus überprüft werden kann. Falls es doch größere Veränderungen (> 2-3nT) gibt, habe ich noch einen Fehler bei der Programmierung gemacht.

Eine Temperaturkompensation der Magnetfeldmesswerte erfolgt momentan noch nicht. Diese kann erst erfolgen, wenn uns die genaue Temperaturkennlinie des Magnetfeldsensors bekannt ist.