Mit dem Capture and Compare-Verfahren eines Mikrocontrollers kann eine
einfache und kostengünstige Temperaturmessung mit einem PT1000 Sensor
erfolgen. Hierbei sind neben dem Sensor nur noch zwei weitere Bauteile
(nämlich ein Referenzwiderstand und ein Kondensator) notwendig. Im
folgenden wird die Erfassung mit einem PIC Mikrocontroller erklärt.
Vorbetrachtungen:
Mit dem internen Komparator des PIC Controllers wird eine Schaltschwelle
getriggert, die durch die Ladekurve des externen Kondensators hervorgerufen
wird. Um die Bauteilanzahl gering zu halten, wird die Controller interne
Referenzspannung benutzt.
Funktionsweise:
- R1 ist ein Vergleichswiderstand mit 1kΩ und 0,1% Toleranz.
- Rx ist der PT1000 Sensor.
- C1 ist vorerst frei wählbar.
- Der Pin CIN- definiert den Komparatoreingang des Controllers.
- VRef ist die Controller interne Referenzspannung.
Über R1 und C1 wird im ersten Schritt die Zeitspanne mit der Bezeichnung t1
bis zum Überschreiten der Komparatorschwelle gemessen.
Über Rx und C1 wird im nächsten Schritt die Zeitspanne mit der Bezeichnung tx
bis zum Überschreiten der Komparatorschwelle gemessen.
Daraus kann der Widerstandswert von Rx ermittelt werden und mit Rx kann
aufgrund der Kennlinie des PT1000 die Temperatur berechnet werden.

R0 ist der Widerstandswert bei 0°C (1000Ω)
Die Formel II) gilt nur für positive Temperaturen.
Die Formel IV) gibt die relevante Temperatur an.
Nachdem die Berechnung der Temperatur nach Formel IV) jedoch für einen
Mikrocontroller mit begrenztem FLASH-Speicher sowohl Platz- als auch
Rechenintensiv ist, erfolgt alternativ eine näherungsweise Berechnung.
Alternative Berechnung:
Die Kennlinie des PT1000 ist im Bereich von 0°C bis 100°C nahezu linear
und ändert sich dort mit einer Steigung von überschlagsweise 3.85 Ω/Grad.
Über die Geradengleichung kann nun die Temperatur berechnet werden.

R1 = 1000Ω
Das Umsetzen dieser Formel kann nun auch ein Controller mit wenig Speicherplatz
erledigen. Jedoch wird hierzu immer noch eine Floatingpoint Berechnung für die
Multiplikation / Subtraktion notwendig. Die gemessenen Zeiten tx und t1 sind
immer vom Typ Integer. Wenn die Anforderungen an die Genauigkeit reduziert
werden können, dann reicht auch eine Multiplikation / Subtraktion mit Integer (260)
bzw. mit 2597 um eine Nachkommastelle zu produzieren.
Beispielrechner für alternative Berechnung(en):
1µs Zyklusdauer entspricht dann:
0.42 °C
Problembetrachtung:
Die interne Referenzspannung ist von der Betriebsspannung
abhängig. Daher sollte diese ausreichend gegen Störungen gefiltert sein. Weiterhin
besitzt der interne Komparator eine Hysterese über der Schaltschwelle, welche
die Zeitmessung verfälschen kann. Ab einer Messtemperatur von oberhalb 120°C
liegen die Abweichungen im Messergebnis bereits schon bei über 1°C. Bei einer
Spannungsversorgung mit 5V kann es zu Messfehlern aufgrund der höheren Eigenerwärmung
von Rx durch den höheren Strom kommen. Bei kleinem C1 bekommt die interne Latenzzeit
für die LOOP der eigentlichen Zeitmessung eine immer größere Bedeutung. Daher befindet
sich die Angabe bzgl. Messzeit und aufgelöster Temperatur über der Tabelle. Eine
richtige Abschätzung der erreichbaren Auflösung kann erst dann erfolgen, wenn die
Messzeitdauer und somit die Latenzzeit innerhalb des Source-Codes bekannt ist.
Diese ist jedoch von der gewählten Zyklusdauer und auch vom gewählten C1
abhängig.
Source-Code-Snippet:
Haben Sie schon unsere Simulatoren kennengelernt?