Temperaturmessung mit PT1000

Einfache Temperaturauswertung mittels Capture and Compare Verfahren

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:

Ü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):

aktuelle Betriebsspannung: 5.0V       3.3V

interne VRef:       Kapazität C1 in nF: 

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?