Forum: Mikrocontroller und Digitale Elektronik PT-100 auslesen über Spannungsteiler


von Alexander R. (alex12)


Angehängte Dateien:

Lesenswert?

Hallo,

ich will mit meinen Teensy 3.5 einen PT-100 Messfühler auslesen, und das 
Ganze mit einem Spannungsteiler realisieren.
Ich habe im Anhang mal eine Skizze und meinen Code mithochgeladen.
Leider bringt er mir immmer eine Temperatur im Raum von ca. 42°C was 
leider nicht stimmt. Halte ich den PT-100 ins Wasser verändert sich die 
Temperatur, also im Grunde ist die Funktion gegeben.
Hat von euch jemand eine Idee was mein Fehler ist?

Danke & Gruß

Alex

von Harald W. (wilhelms)


Lesenswert?

Alexander R. schrieb:
> Hallo,
>
> ich will mit meinen Teensy 3.5 einen PT-100 Messfühler auslesen, und das
> Ganze mit einem Spannungsteiler realisieren.
> Ich habe im Anhang mal eine Skizze und meinen Code mithochgeladen.
> Leider bringt er mir immmer eine Temperatur im Raum von ca. 42

"42" passt eigentlich fast immer:
https://de.wikipedia.org/wiki/42_(Antwort)

von Mario M. (thelonging)


Lesenswert?


von Alexander Raab (Gast)


Lesenswert?

Mario M. schrieb:
> http://www.pt100.de/messfehler.htm#Eigenerw%E4rmung

Das mit der Eigenerwärmung wusste ich, aber das das so eine große 
Abweichung ergibt dachte ich nicht, sind ja fast 20 Grad.

von Sven B. (scummos)


Lesenswert?

Die Rechnung ist falsch. Der Aufbau ergibt keinen linearen Zusammenhang 
zwischen Temperatur und gemessener Spannung, weil sich ja auch die 
Gesamptimpedanz des Spannungsteilers ändert.

Löse mal nach dem Widerstand des PT100 auf, dann siehst du es.

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Alexander Raab schrieb:
> Das mit der Eigenerwärmung wusste ich, aber das das so eine große
> Abweichung ergibt dachte ich nicht, sind ja fast 20 Grad.

du heizt ja auch mit rund 15mA - üblich sind eher 1mA oder weniger. Und 
die Verlustleistung wächst quadratisch mit dem Strom.

Deine linearisierte Formel trägt dann bei Raumtemperatur nochmal mit 
einem zusätzlichen Fehler von rund 5 Grad zur Verfälschung bei.

von Harald (Gast)


Lesenswert?

So ganz primitiv mit Spannungsteiler wird das nix. Mache es gleich 
ordentlich mit einem MAX31865 o.ä. Wenn du den nicht magst wären 
OP-Schaltungen die Alternative, da ist aber einiges an Analog-Know-How 
gefragt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Achim S. schrieb:
> du heizt ja auch mit rund 15mA - üblich sind eher 1mA oder weniger.
Da wäre dann ein PT1000 schon einfacher im obigen Spannungsteiler 
zusammen mit einem 1k (oder gern auch ein wenig mehr) Widerstand 
anzuwenden. Und dann würde ich eine kleine Tabelle mit ein paar 
Spannungs-Temperatur-Stützwerten anlegen und dazwischen einfach linear 
interpolieren...

: Bearbeitet durch Moderator
von m.n. (Gast)


Lesenswert?

Harald schrieb:
> Mache es gleich
> ordentlich mit einem MAX31865 o.ä.

Es geht auch einfacher: 
Beitrag "Re: PT1000, einfache Auswertung mit AVR (ATmega328)"
und auch mit Arduino.

von Sven B. (scummos)


Lesenswert?

Lothar M. schrieb:
> Und dann würde ich eine kleine Tabelle mit ein paar
> Spannungs-Temperatur-Stützwerten anlegen und dazwischen einfach linear
> interpolieren...

Ok, aber die exakte Formel implementieren mit 2 Stützstellen ist jetzt 
auch kein Hexenwerk ;)

von MaWin (Gast)


Lesenswert?

Alexander R. schrieb:
> ich will mit meinen Teensy 3.5 einen PT-100 Messfühler auslesen, und das
> Ganze mit einem Spannungsteiler realisieren.

Das geht so halt einfach nicht.

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.32

von Harald (Gast)


Lesenswert?

m.n. schrieb:
> Harald schrieb:
>> Mache es gleich
>> ordentlich mit einem MAX31865 o.ä.
>
> Es geht auch einfacher:
> Beitrag "Re: PT1000, einfache Auswertung mit AVR (ATmega328)"
> und auch mit Arduino.

PT1000 ist aber nicht PT100. Ich habe es überflogen, bei 1000Ohm hat man 
natürlich eine bessere Chance (aber immer noch nicht ganz trivial)

von Jürgen (Gast)


Lesenswert?

Alexander R. schrieb:
> er nicht stimmt. Halte ich den PT-100 ins Wasser verändert sich die
> Temperatur, also im Grunde ist die Funktion gegeben.


Die PT und NTC Tabellen haben mir schon öfter geholfen.

http://afug-info.de/Download/

von Alexander R. (alex12)


Lesenswert?

Danke für die vielen Tipps.
Habe gerade mit einem Kollegen geredet der meint man könnte das auch 
über einen PT-100 Messwandler machen, wie er z.B hier vorhanden ist.

http://www.suran-elektronik.de/produktgruppe-messumformer-pt100-pt1000.php
(MU-PT100-U010)

Der sollte dann normalerweise ein Signal von 0-10V ausgeben. Aber wie 
krieg ich das dann runter auf 0-5V? Weil mein Teensy 3.5 kann nur eine 
Analog Spannung von 5V lesen.

von chris (Gast)


Angehängte Dateien:

Lesenswert?

würde es mit einer KSQ umsetzen.

Die KSQ (mit 2 Transistoren) treibt ein Strom von 1mA der durch den 
PT100/1000 fließt. Somit ist der Spannungsfall indirekt berechenbar. 
Dimensioniert man die Spannung zb auf
PT100  4V bei 0°C = 100  Ohm (bei 20°C 3,9922V )
PT1000 4V bei 0°C = 1000 Ohm (bei 20°C 3,922V)
Spannung am Kollektor zum ADC führen und die Differenz zu den 4V bilden.

Diese Differenz durch 0,39 (3,9) Ohm/Grad teilen und man hat seine 
Temperatur recht grob. Jenachdem wie man die Differenz bildet kann man 
zwischen minus und plus Graden unterscheiden. Sicherlich muss man noch 
das ein oder andere fein justieren...

Um die Eigenerwärmung gering zu halten wird die Transistorstufe 1 am 
Kollektor mit ca 590 Ohm zb vom Controller eingeschaltet

Bsp:
https://www.temperaturmesstechnik.de/fileadmin/user_upload/pdf/tmh_pt100_tabelle.pdf
4V - 3,9894V / 0,001mA = 10,6 Ohm / 0,39Ohm/Grad = 27,179°C = 110,6 Ohm


https://www.temperaturmesstechnik.de/fileadmin/user_upload/pdf/tmh_pt1000_tabelle.pdf
4V - 3,938V / 0,001mA = 106 Ohm / 3,9Ohm/Grad = 27,179°C = 1106 Ohm

von Pandur S. (jetztnicht)


Lesenswert?

Vergiss die Konstantstromquelle. Die muss naemlich ein Stueck besser wie 
die 0.3% pro Grad des Pt Widerstandes sein. Ratiometrisch ist das 
einfachste und Genaueste mit marginalem aufwand.

von Manfred (Gast)


Lesenswert?

Joggel E. schrieb:
> Ratiometrisch ist das
> einfachste und Genaueste mit marginalem Aufwand.

Und wenn man noch einen freien Port hat, speist man den Spannungsteiler 
aus diesem.

In einer Anwendung messe ich die Temperatur nur alle 20 Sekunden. Wegen 
der möglichen Eigenerwärmung schalte ich den Port auf high, messe die 
Spannung am Teiler und schalte wieder aus anstatt das Gebilde dauerhaft 
unter Strom zu halten.

von Michael B. (laberkopp)


Lesenswert?

Alexander R. schrieb:
> Aber wie krieg ich das dann runter auf 0-5V?

Noch nie von Spannungsteiler aus 2 Widerständen gehört ?

von Harald (Gast)


Lesenswert?

Michael B. schrieb:
> Alexander R. schrieb:
>> Aber wie krieg ich das dann runter auf 0-5V?
>
> Noch nie von Spannungsteiler aus 2 Widerständen gehört ?

Alexander R. schrieb:
> Der sollte dann normalerweise ein Signal von 0-10V ausgeben. Aber wie
> krieg ich das dann runter auf 0-5V? Weil mein Teensy 3.5 kann nur eine
> Analog Spannung von 5V lesen.

Hat der wirklich 0..5V oder gar nur 0..3.3V? Im ersten Fall nimmst du 
zwei gleiche Widerstände (z.B. 10k) in Reihe gegen Masse, ansonsten oben 
einen 6.8k und unten einen 3.3k. An den unteren Widerstand parallel noch 
einen kleinen Kondensator parallel (100...1000nF), der dämpft Störungen 
und hält Ladung für das Sample&Hold im ADC vor.

von Harald (Gast)


Lesenswert?

Oder nehme einen Wandler mit Stromausgang 4..20mA. Dann brauchst nur 
einen Widerstand am Eingang gegen Masse, 180 Ohm bei 3.3V oder 250Ohm 
bei 5V. Über dem Widerstand fällt dann eine Spannung ab, die dem Strom 
entspricht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Harald schrieb:
> Oder nehme einen Wandler mit Stromausgang 4..20mA.
Man kann auch einen Wandler mit I²C oder SPI Schnittstelle nehmen, dann 
kann man die Temperatur mit etwas Glück bei der Auswahl gleich in °C 
auslesen...

Aber das ist eben so gesehen technischer Overkill.

Alexander R. schrieb:
> Leider bringt er mir immmer eine Temperatur im Raum von ca. 42°C was
> leider nicht stimmt.
Hast du sinnvollerweise mal die "Rohwerte" (Spannung und ADC Ergebnis) 
betrachtet? Was komt da raus? Welcher Temperatur entsprechen diese 
Werte?

chris schrieb:
> (bei 20°C 3,9922V )
Die Nachkommastellen hättest du auch großzügig wegrunden können, denn 
deine KSQ selbst ist dank der beiden "Referenzdioden" (BE von V1 und die 
V3) ein Thermometer, das abhängig von der Umgebungstemperatur einen 
bestimmten Strom generiert. Die Uf einer einzigen Diode fällt mit 2mV 
pro °C, bei 10K Temperaturunterschied hast du also 2*2mV/K*10K = 40mV 
Spannungsänderung und damit einen knapp 3% (40mV/1,3V) veringerten 
"Konstantstrom".

Alexander R. schrieb:
> Der sollte dann normalerweise ein Signal von 0-10V ausgeben. Aber wie
> krieg ich das dann runter auf 0-5V? Weil mein Teensy 3.5 kann nur eine
> Analog Spannung von 5V lesen.
Lies mal die Doku zu dem Ding. So wie ich das überschlägig sehe, kann 
der nur bis maximal 3,3V am Pin ab ohne kaputt zu gehen:
https://forum.pjrc.com/threads/55064-Can-teensy-3-5-board-take-5V-analog-input

Und deshalb brauchst du dank Brain 1.0 einen Spannungsteiler, der die 
maximal 10V auf 3,3V herunterteilt:
1
     --4k7--4k7---o----> ADC
2
                  |
3
0..10V           4k7     0..3,333V
4
                  |
5
GND  -------------o----- GND
Ich nehme da lauter 4k7 Widerstände, weil ich sonst einen 9k4 bräuchte, 
der aber nicht so arg leicht erhältlich ist. Und wenn die 4k7 vom selben 
Gurt sind, dann weichen deren Widerstände idR. gleich ab, sodass ich da 
auch überall 4k8 oder 4k6 einsetzen könnte, ohne dass sich das 
Teilervehältnis ändert.

von Peter D. (peda)


Lesenswert?

Lothar M. schrieb:
> Ich nehme da lauter 4k7 Widerstände, weil ich sonst einen 9k4 bräuchte,

Ich würde den Spannungsteiler nicht so knapp dimensionieren, sondern 
eher auf ~11..12V.
Fertige Meßwandler geben oft auch >10V aus, um Fehlerzustände zu 
signalisieren, z.B. Sensor-Break.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> Ich würde den Spannungsteiler nicht so knapp dimensionieren, sondern
> eher auf ~11..12V.
Ich in der brutalen Realität auch nicht...  ;-)

> Fertige Meßwandler geben oft auch >10V aus, um Fehlerzustände zu
> signalisieren, z.B. Sensor-Break.
Irgendwann muss man wie schon angemerkt dann tatsächlich mal die 
Datenblätter der verwendeten Bauteile anschauen.

Und wenn man dann den Messbereich noch weiter einengen muss, dann kann 
man auch gleich beliebige Widerstände nehmen und das hinterher nach dem 
ADC einfach wieder "geraderechnen".

von m.n. (Gast)


Lesenswert?

Alexander R. schrieb:
> Habe gerade mit einem Kollegen geredet der meint man könnte das auch
> über einen PT-100 Messwandler machen, wie er z.B hier vorhanden ist.
>
> http://www.suran-elektronik.de/produktgruppe-messumformer-pt100-pt1000.php
> (MU-PT100-U010)

Über Deine konkreten Anforderungen ist ja noch nichts bekannt.

Natürlich kannst Du fertige Gerätschaften kaufen, die sicherlich auch 
höheren Anforderungen standhalten. Aber, wenn es nur um Messungen mit 1 
K Auflösung bzw. Genauigkeit geht und Du eigene Erfahrungen machen 
möchtest, dürfte die Anschaffung eines PT1000 und direkter Anschluß an 
den vorhandenen Teensy erheblich kostengünstiger sein.

Verrate doch mal, was es werden soll.

von Peter D. (peda)


Lesenswert?

Am einfachsten lassen sich natürlich digitale Sensoren auslesen, z.B. 
DS18B20. Die gibt es auch fertig konfektioniert im Stahlrohr.

von Marc E. (mahwe)


Lesenswert?

Kauf dir von ti nen ref 200

von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> Am einfachsten lassen sich natürlich digitale Sensoren auslesen, z.B.
> DS18B20. Die gibt es auch fertig konfektioniert im Stahlrohr.

Wie genau sind die denn bei 500° C?

von Sven B. (scummos)


Lesenswert?

m.n. schrieb:
> Peter D. schrieb:
>> Am einfachsten lassen sich natürlich digitale Sensoren auslesen, z.B.
>> DS18B20. Die gibt es auch fertig konfektioniert im Stahlrohr.
>
> Wie genau sind die denn bei 500° C?

Dieses aufblasen von Anforderungen auf Skalen, die der TO offensichtlich 
nicht hat, ist eine Seuche in diesem Forum. Könntest du das bitte 
lassen? Danke.

Der TO möchte mit seinem Arduino und seinen zwei Widerständen ganz 
sicher keine Temperatur von 500°C messen. Richtig, er hat das nirgends 
gesagt, und richtig, es wäre cooler gewesen er hätte das getan -- aber 
in diesem (und vielen anderen Fällen) kann man auch einfach mal den 
gesunden Menschenverstand anwenden und das erraten.

Genausowenig möchte er auf 10 mK genau messen. Selbst wenn er es will: 
die Diskussion hilft nicht. Helft doch erstmal, das Bestehende zum 
Laufen zu kriegen, und wenn es danach ein Folgeprojekt gibt, so sei es.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Sven B. schrieb:
> Der TO möchte mit seinem Arduino und seinen zwei Widerständen ganz
> sicher keine Temperatur von 500°C messen.
> ...
> gesunden Menschenverstand anwenden und das erraten.

So so, der gesunde Menschenverstand ist gefragt. Dessen Eigentümer bist 
Du?
Könntest du das bitte lassen? Danke.

Wenn Der TO zu einem PTx Fragen stellt, dann akzeptiere ich das und 
bleibe bei diesem Thema.
Klar, es gibt andere Sensoren wie DS18, KTY oder NTC. Das war aber nicht 
die Frage. Auch werde ich daher kein anderes Board als Ersatz für seinen 
Teensy vorschlagen.

von Achim S. (Gast)


Lesenswert?

m.n. schrieb:
> Wenn Der TO zu einem PTx Fragen stellt, dann akzeptiere ich das und
> bleibe bei diesem Thema.

Wenn der TO bei 500°C messen wollte, dann würde seine - über den Bereich 
0°C..100°C linearisierte - Auswertung einen Fehler von ca. 200K machen.

Ich finde die Vermutung von Sven, dass es dem TO nicht um Messungen bis 
500°C geht, schon ziemlich naheliegend.

von m.n. (Gast)


Lesenswert?

Achim S. schrieb:
> Wenn der TO bei 500°C messen wollte, dann würde seine - über den Bereich
> 0°C..100°C linearisierte - Auswertung einen Fehler von ca. 200K machen.

Es ist nicht verboten, Fehler zu machen.
Und niemand hat behauptet, der TO wolle 500° C messen.
Aber genaues Lesen ist hier nicht jedermanns Sache. Warten wir doch 
einfach ab, was vom TO noch kommt.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Alexander R. schrieb:
> Leider bringt er mir immmer eine Temperatur im Raum von ca. 42°C was
> leider nicht stimmt.

Das kommt ganz gut hin für einen Sensor mit einer Eigenerwärmung von
etwa 500 K/W. Das wäre dann ein Sensor in einer Bauform ähnlich dieser:

  https://de.farnell.com/littelfuse/ppg101a6/rtd-sensor-pt100-200-to-600deg/dp/2888871?st=pt100

Da du ohnehin einen Mikrocontroller zur Auswertung benutzt, könntest du
prinzipiell deinen Aufbau so lassen wie er ist, und sämtliche
nichtlinearen Effekte (Spannungsteiler, PT100-Kennlinie und
Eigenerwärmung) per Software kompensieren.

Hast du eine genaue Typbezeichnung oder ein Datenblatt für deinen
Sensor?

Welcher Temperaturbereich soll abgedeckt werden?

: Bearbeitet durch Moderator
von B. P. (skorpionx)


Lesenswert?


von Harald (Gast)


Lesenswert?

Alexander ist schon länger nicht mehr dabei, vermutlich hat er einfach 
den fertigen Wandler genommen.
Wie ich schon oben schrieb, diese ganzen OP-Schaltungen für PT100 sind 
tückisch. Referenz, Drift, Toleranzen u.v.a.m. ist nicht unbedingt was 
für Anfänger bzw. Nicht-Analog-Profis. Dazu kommt noch die Abhärtung 
gegen Falschbeschaltung (24V) und ESD, falls man darauf Wert legt.
Ich kannte den MAX vorher auch nicht, was mir auf Anbieb sehr gut gefiel 
ist die Abhärtung gegen +/-45V am Eingang. Von daher würde ich in 
Zukunft den nehmen oder eben einen fertigen Wandlerbaustein vom 
etablierten Hersteller.

Aber wie man sieht wird jeder PT100 Thread hier im Forum immer lang und 
emotional.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.