Wer Angst vor analogen Schaltungen hat und mit seinem µC Temperaturen messen will benutzt häufig digitale Sensoren und spart sich so eine Menge Aufwand. Wer allerdings schon eingebaute PT100 oder andere PTCs verwenden will, oder einfach eine höhere Genauigkeit braucht als bezahlbare, digitale Sensoren liefern steht vor einem Problem: welcher Schaltungsvorschlag aus dem Netz ist geeignet, genau genug und macht nicht zuviel Arbeit?
Die folgende Schaltung soll hier eine weitere Alternative bieten, die ohne großen Aufwand und ohne besondere Kenntnisse in Analogtechnik jedem einen Nachbau ermöglichen soll.
Sie bietet gegenüber einigen anderen Schaltungen folgende Vorteile:
- einfacher Aufbau mit einem 2-fach-OP und häufig vorhandenen Widerstandswerten
- Konstantstromspeisung des Sensors um Eigenerwärmung und Linearitätsabweichungen zu reduzieren
- einfacher Nullpunktabgleich durch Referenzwiderstand gemäß Liste
- hohe Eingangsimpedanz um Linearitätsabweichungen zu reduzieren
- Zweileiter- oder Dreileiterschaltung möglich
- optimiert für unsymmetrische Spannungsversorgungen (z.B. +5V)
- geringe Anforderungen an den R2R-Output-Swing des OPs, da alle OP-Eingänge und der interne Ausgang zwischen 40-60% Ub liegen
- automatische Verstärkungsanpassung auf +Vref (bzw. +Ub) eines nachgeschalteten ADCs
- niedrige Ausgangsimpedanz
Natürlich hat diese Schaltung auch ihre Nachteile:
- der R2R-Output-Swing des OPs reduziert natürlich auch hier den nutzbaren Spannungsbereich am Ausgang wie bei jeder OP-Schaltung
- die Ausgangsspannung ist umgekehrt proportional zur Temperatur, erfordert also eine Subtraktion in der Auswertung
Was macht diese Schaltung und wofür ist sie gedacht:
Gedacht ist diese Schaltung um mit wenig analogem Schaltungsaufwand, ohne präzise Referenzspannung und mit nur einer +5V Spannungsversorgung den
temperaturbedingten Spannungsänderung eines PT100 etwa in den Eingangsspannungsbereich eines ADC's zu verstärken.
Dabei arbeitet die Schaltung "umgekehrt": 0°C entsprechen also etwa Uref bzw. Ub und 100°C etwa 0V am Ausgang - eine nachträgliche Subtraktion im Controller ist eine Programmzeile,
schaltungstechnisch müßte man noch einen zusätzlichen OP einbauen, oder nichtlineare Einflüsse in Kauf nehmen.
Die Kalibrierung zum Nullpunktabgleich und Ermittlung der Steigung sind auch für den nachgeschalteten Controller gedacht, (geht natürlich auch analog).
Ein Trimmer zum exakten Nullabgleich ist beabsichtigt nicht vorgesehen, sondern der leicht angehobene Nullpunkt durch den zusätzlichen Leitungswiderstand
eines angeschlossenen Sensors wird benutzt, um die Ausgangsspannungsgrenze des OPs zu überwinden, wenn nur eine (unsymmetrische) Spannungsquelle für Betriebsspannung und Uref benutzt wird.
Beispiel:
Ein Sensor wird mit 2 Leitungen angeschlossen und statt des exakten Uref-Endwertes bei 100 Ohm von 1023 liefert der ADC einen Meßwert von 1017. Diesen Wert speichert man als Nullpunkt.
Nun wird die Verstärkung am Trimmer so eingestellt, daß der ADC-Wert bei 100°C exakt um 1000 Inkremente niedriger liegt als der Nullpunkt, also bei 17.
Es ergibt sich ein Verhältnis von ca. 0,1% pro Wandlerinkrement über den kompletten Meßbereich von 100°C und die Umrechnung beschränkt sich darauf ein Komma zu setzen!
Es verbleibt in diesem Beispiel am oberen Rand zur Referenzspannung ca. 30mV ungenutzte Spannungsreserve, am unteren Rand bleiben ganze 83mV bis 0V übrig,
die auch von billigen, als Rail-To-Rail verkauften Ops tatsächlich erreicht werden.
Ein Beispiel für ein einfach justierbares µC-Programm mit zur Justierung über Terminalprogramm oder Display:
Do
1. ADCwert einlesen
2. If Tastendruck Then Nullpunkt = ADCwert
3. Temperatur = Nullpunkt - ADCwert
4. Print Temperatur
Loop
Die Schleife lässt man laufen, kühlt den Sensor in kaltem Öl oder Salzwasser ab oder schließt sich einen 100,0 Ohm Referenzwiderstand an's Kabelende an.
Hat der Sensor genau 0°C drückt man die Taste und die Anzeigewerte sollten auf 0 gehen. Dadurch, daß der Wert vom Nullpunkt abgezogen wird statt wie üblich umgekehrt wird automatisch auch gleich das "invertierte" Temparaturverhalten der Schaltung richtig gedreht.
Dann erwärmt man den Sensor auf 37°C oder 100°C und misst die genaue Temperatur mit einem Fiber-/thermometer. Man kann sich natürlich statt dessen auch irgendeinen
genauen Referenzwiderstand statt des PT100 an's Kabelende löten. Welchen Widerstand ein PT100 bei welcher Temperatur hätte entnehmt bitte der folgenden Liste:
Ein wirklich ziemlich präzises Berechnungsprogramm für PT100-Temperatur/Widerstandswerte findet Ihr auch auf meiner Seite bei den Tabellen und Berechnungstools.
Wer garnicht kalibrieren will, der stelle sich am Poti zumindest einen rel. exakten Strom von 2,54mA durch den PT100 ein. Bei einer Verstärkung von 49,9 ergibt sich dann bei 100°C Temperaturänderung am PT100 eine Spannungsänderung von 4,883V am Ausgang, was bei einem 10-Bit-ADC mit 5V Ref etwa den Wert 1000 ausmacht. Macht man das mit Festwiderstand oder erwärmt man den Sensor mit Referenzthermometer, dann dreht man einfach am Poti bis der µC den entsprechenden Vergleichswert ausgibt und fertig! (Will man es ganz genau haben wiederholt man das ganze noch einmal, weil der Nullpunkt sich beim Drehen am Poti minimal verstellt.
Wer einen anderen Meßbereich, z.B. von -50°C bis +50C wünscht baue sich einfach einen entsprechenden Rz-Widerstandswert gemäß Liste ein und lasse den Rest so, wer größere/kleinere Meßbereiche als 100°C braucht wird nicht umhin kommen, sich die Widerstände R4/R5 so anzupassen, daß sich ein enstprechender Konstantstrom durch den PT100 ergibt, das dessen Spannungsabfalländerung x 49,9 seiner gewünschten Ausgangsspannung entspricht.