leider erneut ein Beitrag wie Tausend andere zum Thema Temperaturmessung mit PT100 an einen Operationsverstärker. Ich versuche seit Tagen weiter zu kommen, aber es klappt nicht. Ich hab drei E-Techniker gefragt und alle können mir warum auch immer nicht weiterhelfen...
2 PT100 Sensoren sind an einen MCP6004T OpAmp angeschlossen, welcher wiederum an den integrierten 12bit ADC von einem SAME70 MCU angeschlossen ist. Der ADC kann von 0V bis VREF (hier 3,3V) konvertieren und stellt den analogen Input linear auf diesen Bereich dar ("The conversion is performed on a full range between 0V and the reference voltage carried on pin VREFP. Analog inputs between these voltages convert to values based on a linear conversion").
Ich hab das folgende Schaltnetz und was auch schon auf 2 Platinen zum Testen bestückt ist. Derjenige, der das entworfen hat, ist nicht mehr da und ich quäle mich durch den Code und was sich dabei gedacht wurde. Im Code wird der digitale Wert, welcher der ADC ausgibt, wie folgt berechnet. Die Multiplikation mit 10 ist zum Darstellen von der ersten Nachkommastelle als Integerzahl. 140, 170 und 14 sind magisch rein gewürfelt. Dazu ist mir beim Testen aufgefallen, dass adc_val2 und adc_val1 eine Differenz haben, obwohl die Sensoren nebeneinander stehen und der Wert dann identisch sein sollte. Der Offset ist auf beiden auf 512 laut ADC eingestellt. Auch wenn man die Sensoren austauscht, ändert sich nichts an den Werten.
1
uint16_tt1=(read_adc(ch1)-140)/14*10
2
uint16_tt2=(read_adc(ch2)-170)/14*10
Ich bin mithilfe der Forenbeiträge und vor allem dieser Seite http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.32 auch schon weiter gekommen, aber ich schaffe es trotzdem nicht. Der Schaltplan in Figure 4 von https://www.ti.com/lit/pdf/slyt442 entspricht auch meinem vorliegenden, bis dass R5 nicht vorhanden ist und der Verstärkerausgang nicht zurück an den nicht-invertierenden Eingang gekoppelt ist. Ich habe diese Excel Tabelle RTD_Linearization_v7 auch gefunden, würde mir aber ehrlich gesagt nur weiterbringen wenn man eine neue Platine bestückt.
Was für eine Output-Range hat jetzt der OpAmp und wie hoch ist der Verstärkungsfaktor? Ich bin schon längst am verzweifeln....
Schau dir mal genau deinen Schaltplan an.
Dann zeichne ihn noch einmal, direkt mit einem PT100 als veränderlichen Widerstand. Dann erkennst du dein Problem. Löse auch deinen Käfer in Schaltzeichen auf.
Dann sehen wir weiter.
Die Multiplikation mit 10 ist zum Darstellen von der ersten
Nachkommastelle als Integerzahl.
Dann muß diese zuerst erfolgen. Was einmal an Auflösung weg ist, bleibt weg. Oder rechne alles in float.
Gibt doch erstmal die ADC-Rohwerte aus und rechne sie z.B. in Excel um.
Schau dir mal genau deinen Schaltplan an.
Dann zeichne ihn noch einmal, direkt mit einem PT100 als veränderlichen
Widerstand. Dann erkennst du dein Problem. Löse auch deinen Käfer in
Schaltzeichen auf.
Dann sehen wir weiter.
Meinst du, die fehlende Verbindung zwischen NTC1 und 1IN+ vom OpAmp? Die Linie ist nicht eingezeichnet.
Die Multiplikation mit 10 ist zum Darstellen von der ersten
Nachkommastelle als Integerzahl.
Dann muß diese zuerst erfolgen. Was einmal an Auflösung weg ist, bleibt
weg. Oder rechne alles in float.
Gibt doch erstmal die ADC-Rohwerte aus und rechne sie z.B. in Excel um.
Ja, das stimmt, danke. Die ADC Rohwerte habe ich mir auch mal ausgegeben, aber kann nur schwer damit was anfangen. Bei 25-26° Raumtemperatur sind die Rohwerte ca. 420 und 470. Richtung 0° Grad geht es dann auf ein Wert von ca. 100, bei 35° Richtung 700.
Ich bin jetzt eben auf den nicht invertierenden Verstärker mit Offset gestoßen, was ja genau meine Abbildung entspricht (https://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Nichtinvertierender_Verst%C3%A4rker_mit_Offset). Ich habe das mal auf die schnelle ausgerechnet mit Beispielwerten für den PT bei 0 Grad und 100 Grad (100 Ohm und 138,51 Ohm) und komme auf eine Ausgangsspannung von -161,612V für 100 Ohm und -160,359V bei 138,51 Ohm. Das hört sich aber bisschen extrem an...Die Verstärkung wäre 51,999:
bei 138,51 Ohm für 100 Grad. In einer Excel Tabelle alles automatisch
berechnen lassen, somit komme ich auf ein ADC Wert vonADC0=87ADC_{0} =
87 bei 100 Ohm undADC138=1655ADC_{138} = 1655 bei 138,51 Ohm.
Willst Du keine negativen Temperaturen messen? Ansonsten müßtest Du bei der gewählten Schaltung noch ca. 80 Ohm in Reihe zum PT100 schalten und alles neu berechnen. Alternativ auch R6/R18 verkleinern. Der OPV ist zwar rail to rail, ich würde aber nicht unbedingt am Anschlag arbeiten, es sei denn es geht ausschließlich um Messungen ab Zimmertemperatur. Viel Erfolg noch!
ich würde aber nicht unbedingt am Anschlag arbeiten,
Ob der Ersteller die unlinearität im unteren Bereich genutzt hat den "Bauch" aus der PT Kennlinie zu ziehen?
Nach meinen Berechnungen (ohne Offset und linearen OP) gibt Adc-Wert *100/156 genaue zehntel Grad von 0-30° aus. Darüber wird's zu wenig (bei 100° fehlen 1,7° und bei 220 Grad fehlen schon 10°)
Willst Du keine negativen Temperaturen messen? Ansonsten müßtest Du bei
der gewählten Schaltung noch ca. 80 Ohm in Reihe zum PT100 schalten und
alles neu berechnen. Alternativ auch R6/R18 verkleinern. Der OPV ist
zwar rail to rail, ich würde aber nicht unbedingt am Anschlag arbeiten,
es sei denn es geht ausschließlich um Messungen ab Zimmertemperatur.
Viel Erfolg noch!
Vielen Dank! Nein, negative Temperaturen brauchen wir nicht. Eigentlich reicht sogar der Bereich zwischen 0°C und 50°C. Die 80 Ohm wären zusätzlich zu den 4k9 vor PT oder nach PT? Das wäre dann aber für negative Temperaturen?
Da nur bis 50°C relevant sind und auch 100°C noch ca. bei 1,3V sind, arbeitet der OPV doch im normalen Bereich, oder nicht?
Das Platinen-Layout wird noch mal gefixt und hier würde ich dann auch vorschlagen, dass man das so durchführt wie über die R7_Linearization Excel Tabelle vorgegeben ist. Dann hat man da etwas festes und es ist nachvollziehbar. Hier könnte ich von z.B. im OPV Output Range von 0,25V bis 3,275 Volt arbeiten, damit ich 0,25V Puffer am Anfang und Ende habe, oder was meint ihr (s. Datasheet "Maximum Output Voltage Swing", oder ist das falsch?)
Ob der Ersteller die unlinearität im unteren Bereich genutzt hat den
"Bauch" aus der PT Kennlinie zu ziehen?
Nach meinen Berechnungen (ohne Offset und linearen OP) gibt Adc-Wert
*100/156 genaue zehntel Grad von 0-30° aus. Darüber wird's zu wenig (bei
100° fehlen 1,7° und bei 220 Grad fehlen schon 10°)
Bin da etwas verwirrt - ist die PT-Kennlinie allgemein im unteren Temperaturbereich ungenauer als im oberen? Wie kommst du auf 100 und 156 für die Berechnung?
Hier könnte ich von z.B. im OPV Output Range von 0,25V
bis 3,275 Volt arbeiten, damit ich 0,25V Puffer am Anfang und Ende habe,
oder was meint ihr (s. Datasheet "Maximum Output Voltage Swing", oder
ist das falsch?)
Den im DB angegebenen "Maximum Output Voltage Swing" würde ich nicht voll ausnutzen. Die Angabe gilt nur für Vdd=5.5V und "0.5V input overdrive". Das hier habe ich dazu gefunden: https://electronics.stackexchange.com/questions/534140/what-is-input-overdrive. Für eine Betriebsspannung von 3.3V sieht das vermutlich anders aus.
Eine eigene Frage?
Dieser Thread ist über 3 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.