Hallo,
ich will eine Temperaturmessung mit einem PT100 machen:
http://at.farnell.com/labfacility/dm-514/sensor-pt100-duennfilm-1-0-x-3/dp/2081259?Ntt=2081259
Es ist ein einfacher Spannungteiler mit einem Vorwiderstand vorgesehen
(Gesamtspannung 2,5V), die SPannung am PT100 wird direkt zu einem ADC
EIngang geführt (Referenzspannung 2,1V). Ich will eine Temperatur
zwischen 0°C und 40°C mit einer Auflösung von 0,1°C messen.
Ist das prinzipiell möglich? Im Datenblatt ist ein !fundamental
interval" angegeben: 38,5 Ohm. Ist das der Widerstandswert, um den der
Widerstand mit jedem °C steigt? Oder wie komme ich auf den
Widerstandswert bei einer gewissen Temperatur? Finde im DB keine andere
Information...
Vielen Dank!
Im Prinzip sollte das hier reichen: http://de.wikipedia.org/wiki/Pt100
Mit Klasse A Sensoren kommt man schon ziemlich weit und die sind auch
relativ preiswert zu bekommen.
Hallo,
ein PT100 ist meistens so dimensioniert, dass bei 0°C -> 100R Widerstand
vorhanden sind. Da die Werte aber nicht ganz linear mit der Temperatur
ansteigen, muss man sich eine passende Formel ausdenken oder eine
Tabelle mit vor berechneten Werten nutzen.
Schau auch mal bei der Wikipedia:
http://de.wikipedia.org/wiki/Widerstandsthermometer
oder such nach "PT100 Kennlinie"
Ich hab nun doch eine Gesamtspannung von 3,3V am Spannungsteiler... Wenn
ich nun einen 100Ohm vorwiderstand benutze, dann fließen durch den PT100
3,3V/200Ohm, das sind ca 16mA... das ergibt eine komplett falschew
messung durch die Eigenerwärmung, sehe ich das richtig?
Gert schrieb:> ich will eine Temperaturmessung mit einem PT100 machen:> [...]> Es ist ein einfacher Spannungteiler mit einem Vorwiderstand> vorgesehen (Gesamtspannung 2,5V), die SPannung am PT100 wird> direkt zu einem ADC EIngang geführt (Referenzspannung 2,1V).> Ich will eine Temperatur zwischen 0°C und 40°C mit einer> Auflösung von 0,1°C messen.>> Ist das prinzipiell möglich?
Ja - aber nicht mit einem einfachen Spannungsteiler.
Vollbrücke verwenden; Verstärker vorsehen (z.B. OP07).
> Im Datenblatt ist ein !fundamental interval" angegeben:> 38,5 Ohm. Ist das der Widerstandswert, um den der> Widerstand mit jedem °C steigt?
Nein. Der TK ist ungefähr 0.385%/K, das sind also knapp
0.4 Ohm/K.
Alles klar, das wird dann wohl nichts mit dem Spannungsteiler. Wenn ich
beim Spannungsteiler bleiben will, muss ich wohl auf einen höherohmigen
NTC wechseln...
Gert schrieb:> Es ist ein einfacher Spannungteiler mit einem Vorwiderstand vorgesehen> (Gesamtspannung 2,5V), die SPannung am PT100 wird direkt zu einem ADC> EIngang geführt (Referenzspannung 2,1V). Ich will eine Temperatur> zwischen 0°C und 40°C mit einer Auflösung von 0,1°C messen.>> Ist das prinzipiell möglich?
Kannst du vergessen.
Die Widerstandsänderung des Pt100 und damit die Spannungsänderung ist
nicht gross genug, die Auflösung des A/D zu klein.
Gert schrieb:> Wenn ich beim Spannungsteiler bleiben will, muss ich wohl auf einen> höherohmigen NTC wechseln...
Auch mit dem wird es schwierig.
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.7.8
Warum haben Leute nur so extreme Abneigung gegen Operationsverstärker ?
Habe gerade genau das selbe wie du als Abschlussarbeit realisiert, ging
perfekt mit einem NTC. wichtig halt nur, dass du bedenkst dass ein NTC
keineswegs Linear ist.
Empfehle eine Linearisierung mit Stützwerten. Kann dir Empfehlen, alle
Werte in Excel einzutragen, Grafiken mit einer XY Achse zu erstellen und
zwar ca. alle 5 - 10 Grad eine, also hättest du rund 4 - 8 Kurven.
Danach Rechtsklick auf die kurve -> Trendlinie Hinzufügen -> Linear ->
Formel im Diagramm anzeigen.
Schon erhälst du eine Formel mit der sich die Temperatur berechnen
lässt. Wenn du genügend Speicher zur Verfügung hast, einfach direkt die
Formel da rein, ein C Compiler kann die problemlos interpretieren.
Läuft bei mir perfekt, auf einem Temperaturbereich von 0 - 40 °C habe
ich niergends eine grössere Abweichung als 0,1 °C.
Olaf B. schrieb:> ein PT100 ist meistens so dimensioniert, dass bei 0°C -> 100R Widerstand> vorhanden sind.
Das ist nicht meistens, sondern immer so (innerhalb gewisser
Toleranzen). Deshalb heisst das gute Stück auch PT100. :-) Es gibt auch
PT25, PT500
und PT1000. Die haben dann andere 0° Widerstände.
Gruss
Harald
Natuerlich geht ein Spannungsteiler mit einem Platinwiderstand. Eine
Frage der dimensionierung. Ueber einem PT100 darf man max 30mV haben,
ueber einem PT1k 300mV. Ich wuerd weniger nehmen.
zB ein PT1k zusammen mit einem 10k in Serie an einer 2.5V Referenz. Oder
so. Der 10k muss natuerlich ein Praezisionswiderstand sein sein, kein
1%-er.
Und genuegend Bit sollte man auch haben. Auch bei einem Verstaerker
mal-10.
Wolfi schrieb:> PT100 darf man max 30mV habenWolfi schrieb:> Und genuegend Bit sollte man auch haben. Auch bei einem Verstaerker> mal-10.
Ahja. Angenommen, du könntest die 40 °C komplett in die 30 mV
reinpacken, was nicht möglich sein wird, da eine Spannung von 0 ja
schonmal unmöglich sein wird, hättest du dann ca. 1,3 mV pro Grad.
Ein ADC mit sagen wir 12-Bit Auflösung und einer Referenzspannung von
2,5V hätte als klein mögliche Auflösung demnach:
2.5V / 4096 = 610 uV.
Alleine hier wird das ganze scheitern, denn:
30mV verteilt auf 610 uV = 49 einzelne Schritte. Du hättest also gerade
mal 49 Werte, mit denen du 0 - 40 Grad darstellen willst. Da der wunsch
ist, alels in 0,1 Grad schritten zu messen, bäuchte es also mindestens
10x so viel.
Vielleicht hab ich auch n Denkfehler drin, mehr als n Elekronik Lehrling
bin ich auch nicht, aber was du da geschrieben hast erscheint mir
absolut sinnlos, das mit dem Verstärker x-10 erst recht.
Falls ich falsch liege, danke für jede Korrektur :) Man hat nie genug
gelernt.
Btw: Kann das mit den 30mV jemand bestätigen? Kenne mich mit PT100 nicht
aus, nimmt mich aber wunder. Bei einem NTC ist das ja kein problem...
Die gezeigten Berechnungen sind richtig, ich verwend 24Bit ADC's weil
die an Lager sind. Ich kann dann auch NTCs oder Thermoelemente wahlweise
anhangen. Die Vielfalt erlaubt den Mehrpreis.
Wie gesagt, ich habe eine Spannungsteiler hardwaremäßig vorgegeben...
@San: Danke für den Tipp... Ich mach das über die Formel mit dem
Logarithmus! Ich denke, bei einem 64MHz µC ist das kein Problem, vor
allem, wenn ich nur alle Sekunden einen Wert berechne!
Gert schrieb:> Ich denke, bei einem 64MHz µC ist das kein Problem, vor> allem, wenn ich nur alle Sekunden einen Wert berechne!
Ist es absolut nicht, kann ich dir bestätigen. Ich arbeite mit dem
ADuC7020 mit 41 MHz. Brauche für 4 AD Messungen inklusive 2x Temperatur
berechnen ein paar wenige Millisekunden. Jede Sekunde lesen geht da
problemlos.
Christian B. schrieb:> Diese Schaltung kann ich empfehlen:
Ich nicht.
5mA sind zu viel für normale Pt100 (Eigenrerwärmug)
und die Ausgangsspannung hängt mehr von den Schwankungen der 5V ab,
als von der Temperatur.
16 mA oder 5 mA sind zu viel für einen PT100. So etwa 1 mA oder etwas
weniger sind üblich. Das mit den 30 mV kommt so etwa hin - etwas mehr
(so bis 100 mV dürften es aber schon sein, wenn es keine besonders
kleine Bauform ist. Das ist halt eine Abwägung zwischen dem Fehler durch
die Eigenerwärmung und dem Fehler bei der Messung eine recht kleinen
Spannung.
Es geht mit einem passende dimensionierten Spannungsteiler. Wegen der
recht kleinen Spannung wird man ggf. eine Verstärkung brauchen. Wenn man
direkt die Spannung misst, braucht man auch eine relativ hohe Auflösung
beim AD Wandler, weil die relative Änderung nur etwa 0,38% je Grad ist.
Mit einem 8 Bit Wandler kann man so also nicht einmal 1 Grad auflösen -
mit einem 10 Bit Wandler kaum besser als 1/3 Grad - wenn der Bereich
größer wird auch weniger.
Ein passende, einfache Lösung wäre ein Spannungsteiler und dann ein
relativ hochauflösender Sigma Delta A/D, wie etwa ein MCP355 oder
AD7792. Mit einem AD Wandler mit Differenzeingang kann man den PT100
auch gleich als 4-leiter anschließen.
Will man einen AD mit geringer Auflösung nutzen, wäre eine Verstärkung
als Brückenschaltung angebracht, also mit Vergleichszweig.
Lurchi schrieb:> Es geht mit einem passende dimensionierten Spannungsteiler.
Der ergibt aber, je nach Temperaturbereich und erwünschter Genauigkeit
zusätzlichen Fehler, den man zwar herausrechnen kann, aber wegen der
geringen Steigung des temperaturabhängigen Widerstands nicht einfach
unter den Tisch fallen lassen kann. Normalerweise werden PT100 mit
einer Stromquelle betrieben und man misst den Spannungsabfall an ihnen.
Misst man abwechselnd zum PT100 einen Präzisionswiderstand, fällt ein
etwaiger Fehler der Stromquelle raus.
Gruss
Harald
Harald Wilhelms schrieb:> Der ergibt aber, je nach Temperaturbereich und erwünschter Genauigkeit> zusätzlichen Fehler,
Nein.
Dadurch, daß im Spannungsteiler der Strom nicht konstant ist, ergibt
sich kein Fehler.
Im Gegenteil, da keine Stromquelle identisch in Toleranz und
TempAbweichung zur Spannungsreferenz des A/D-Wandlers gefunden werden
muss, ist die ratiometrische Spannungsteilermethode sogar genauer, man
kann auch sehr exakt den Widerstand berechnen.
Bloss reicht halt die Auflösung der eingebauten A/D-Wandler nicht aus.
Ein externen 24 bit Wandler hingegen ist mehr als genau genug, so daß
man 3/4 des Messbereichs verschenken kann.
Georg schrieb:> Ich auch nicht. Eine ernstzunehmende Pt100-Auswertung erfordert einen> Vierleiter-Anschluss.
Nur wenn der Pt100 weiter weg montiert ist.
Ansonsten ist der Spannungsabfall in der Verbindung vernachlässigbar.
Harald Wilhelms schrieb:>> Es geht mit einem passende dimensionierten Spannungsteiler.>> Der ergibt aber, je nach Temperaturbereich und erwünschter Genauigkeit> zusätzlichen Fehler,..
Nein Harald. Das ergibt keinerlei zusätzliche Fehler, sondern
letztendlich eine bessere Genauigkeit als alle tollen OpV-Schaltungen.
Prinzip:
PT100 und ein Vorwiderstand liegen zwischen Masse und Referenzeingang
des ADC. Damit ist die Äquivalenz hergestellt: die Spannung über den
PT100 plus die Spannung über dem Vorwiderstand ergeben zusammen die
Referenzspannung - und auf der digitalen Seite ergibt der Meßwert
(Spannung über dem PT100) plus der nicht gemessene Wert über dem
Vorwiderstand den Gesamtbeeich des ADC's (also dessen "Skalenendwert").
Hat man den Meßwert des ADC und kennt dessen Maximalwert, dann kann man
sich den Wert über den Vorwiderstand per Subtraktion errechnen. Damit
hat man beide Werte, die zum exakten Errechnen des momentanen PT100
Widerstandes braucht.
Beispiel: wenn wir einen 24 Bit ADC haben, dann ist der Skalenbereich
0..FFFFFFh
was einer gemessenen Spannung von
0..Ureferenz
entspricht. Den aktuellen Widerstandswert erhalten wir dann mit
Rmomentan = Rvorwiderstand * Meßwert / (FFFFFFh - Meßwert);
Im Prinzip haben wir damit ein Ohmmeter, das alle Werte von 0 Ohm bis
Unendlich in einem Bereich messen kann, allerdings mit unterschiedlicher
Auflösung je nach konkretem Widerstand. Größte Genauigkeit bei Rmomentan
= Rvorwiderstand.
Das Ausrechnen der Temperatur aus dem Widerstandswert ist dann eine
Kleinigkeit, entweder per Formel oder per Stützstellen. Quasi offizielle
Tabellen gibt es dazu genug.
W.S.
Was ich jetzt erzähle, ist etwas unspektakulär, aber
(im Gegensatz zu manchen anderen Beiträgen) gut auf
seinen Wahrheitsgehalt überprüfbar:
Um unüberschaubare Einflüsse auf die Temperaturmessung
möglichst zu minimieren, empfiehlt sich die ratiometrische
Messung.
Dabei wird der Thermofühler über einen Vorwiderstand an
die Betriebsspannung angeschlossen, Gemessen wird vom
ADC die Spannung am Thermofühler. Als Uref wird auch die
Betriebsspannung benutzt, somit kommt als Fehlerquelle nur
noch
- der Vorwiderstand und sein eigener TK, sowie
- die Messleitung und
- der AD-Wandler selbst
in Frage.
Die sind aber in jeder anderen Variante auch mit dabei!
OPV-Schaltungen und andere Uref-Quellen können zwar
die Auflösung erhöhen, aber bringen zusätzliche
Fehlerquellen (TK, Alterung) mit sich.
Um den Thermofühler nicht durch den Messstrom zu
erwärmen, empfiehlt es sich, ihn über einen Portpin
mit einem Transistor kurzzuschließen, wenn nicht
gerade gemessen wird.
Wenn es genauer werden soll, kann man noch die interne
Temperaturmessung des µCs hinzuziehen: Der Vorwiderstand
ist in dessen Nähe und bei bekanntem TK des Vorwiderstands
kann er per Software kompensiert werden.
Beispiele für die erreichbare Auflösung mit einem
12-Bit ADC:
T/°C Rt ADC Steps Pt1000
-------------------------------
-10,0 960,9 2007
0,0 1000,0 2048 41
10,0 1039,0 2087 39
20,0 1077,9 2125 38
30,0 1116,7 2161 36
40,0 1155,4 2196 35 Auflösung
50,0 1194,0 2229 33 0,303 °C
T/°C Rt ADC Steps KTY81
------------------------------
-10,0 747,0 1751
0,0 815,0 1839 88
10,0 886,0 1924 85
20,0 961,0 2007 83
25,0 1000,0 2048 **
30,0 1040,0 2088 81
40,0 1122,0 2166 78 Auflösung
50,0 1209,0 2242 76 0,132 °C
Beim Pt1000 ließe sich durch die Mittelung aus
8...16 Messungen vielleicht eine reelle Auflösung von
0,2 °C erreichen, beim KTY81 sollten damit 0,1 °C
noch ehrlich darstellbar sein.
Die Betriebsspannung zu verwenden ist eine schlechte Idee. Da ist viel
zuviel Siff drauf. Auch ein Differential ADC kriegt den Siff von der
speisung naehmlich nicht weg. Ich empfehle eine Referenz. Eine
guenstigere Loesung ist allenfalls ein RLC (10 Ohm, 100nF // 2.2uF, 1uH)
ab der Speisung.
@ und nun (Gast)
Was für eine Referenz empfiehlst du denn?
A) für den ADC
B) für den Fühler?
Wie vermeidest du eine Drift zwischen Referenz und Speisung?
Erwin schrieb:> Dabei wird der Thermofühler über einen Vorwiderstand an> die Betriebsspannung angeschlossen, Gemessen wird vom> ADC die Spannung am Thermofühler. Als Uref wird auch die> Betriebsspannung benutzt, somit kommt als Fehlerquelle nur> noch> - der Vorwiderstand und sein eigener TK, sowie> - die Messleitung und> - der AD-Wandler selbst> in Frage.
In dem Fall hast Du faktisch keinerlei Auflösung mehr.
Nehmen wir an, Du hast PT1000, 5V Betriebsspannung, einen Vorwiderstand
von 4,7k und einen 18ner Pic mit 10bit-ADC
Bei -10°C hast Du dann 0,883mA Meßstrom (ist nicht gerade zu wenig! vor
allem nicht bei der Meßtemperatur) und am ADC-Eingang 0,8487V. Bei 50°C
sind es 0,848mA und 1,013V am ADC. Dein Spannungsunterscheid über den
Meßbereich beträgt also ganze 0,1642V. Wenn der 10-Bit-ADC nun 5V als
Referenz hat, sind das bei jedem Bit 4,883mV. Was bedeutet, der ADC
zeigt bei -10°C 173 Bits an und bei 50°C 207 Bits. Differenz von 34 Bit.
Wie will man mit 34 Bit 0,x° auflösen?
Das einzige, was ich mir vorstellen könnte, wären zwei andere Referenzen
für den ACD. Eine negative und eine positive. Was bedeutet, man nehme
eine brauchbare Spannungsreferenz, z.B. 2,5V und zwei Spannungsteiler
mit Präzisionswiderständen. Der eine Spannungsteiler gibt 0,8400V auf
die Vref- des µC und der andere 1,020V auf die Vref+.
Dann müßte sich doch eigentlich der Meßbereich des Pic zwischen diesen
zwei Spannungen abbilden. Die Auflösung wäre dann theoretisch 962 Bit.
Der Meßbereich von 60K könnte also in 962 Stufen dargestellt werden,
Auflösung 0,06K.
Theoretisch! Und nun die Frage: Praktisch auch? Oder ist der Spannunghub
von 180mV für den ADC des Pic zu wenig? Wenn man mal davon ausginge, es
gelänge die Spannungsreferenzen wirklich auf's Millivolt so
hinzukriegen.
Mit einem 10 Bit ADC macht es wenig Sinn direkt, und ohne Verstärkung
die Spannung am PT100/PT1000 zu messen - da geht viel von der Auflösung
verloren. Die Einfache Messung mit Spannungsteiler und direkt an den AD
geht aber gut bei relativ hochauflösenden ADs (16-24 Bit) - die Sigma
Delta Wandler haben dabei teils auch noch eine interne "Verstärkung", so
dass auch der Bereich für die Spannung passt - nötig ist das aber bei
genügend Auflösung auch nicht. Etwa 2-4 Bits der Auflösung gehen halt
dafür drauf, das man sich die Brückenschaltung spart und so auch
widerstände ganz bis 0 messen könnte.
Wenn man den µC internen AD mit typisch 10 Bit Auflösung nutzen will,
dann sollte man schon eine Verstärkung und meist auch Brückenschaltung
nutzen. Einige µCs habe so etwas intern, sonst 1 OP (und 4 Widerstände +
den Senor) als Brückenvertärker.
Ich verwende einen 24bitter zB AD7799 oder aehnlich, einen 10k 0.1%
Folien- Seriewiderstand mit 25ppm/K und eine 2.5V Referenz Zb ADR381,
die Referenz ist auch gleich die Referenz fuer den ADC, faellt also
raus, sofern hinreichend wenig Rauschen drauf ist.
Herrmann schrieb:> 24bit-Adc's Kosten aber schon mächtig Geld, wenn man das in Serien bauen> will.
Die Frage ist ob die Temperatur gemessen oder geschätzt werden soll...
Ein 16-Bit-Delta-Sigma-ADC z.B. der MAX11213 mit integr. PGA liegt bei
Einzelstückzahlen bei etwa 2 €, ein LMP90078 (16-Bit, PGA, Stromquellen)
liegt in Stückzahlen (2500) ebenfalls bei ~2 €.
Wenn's wirklich günstig werden soll, wird ein NTC genommen und kein
PT100.
Das wuerde heissen, erst mal die anforderungen ueberpruefen.
Ist die absolute Genauigkeit wichtig, wie wichtig?
Ist die Austauschbarkeit des Sensors wichtig, wie wichtig?
Ist die Stabilitaet wichtig, wie wichtig?
Und dabei muss man sich eben von einem akademischen Furz wie 0.01 Grad
loesen.
Arc Net schrieb:> Ein 16-Bit-Delta-Sigma-ADC z.B. der MAX11213 mit integr. PGA liegt bei> Einzelstückzahlen bei etwa 2 €, ein LMP90078 (16-Bit, PGA, Stromquellen)> liegt in Stückzahlen (2500) ebenfalls bei ~2 €.
Ein uC ist sowieso drin und hat einen A/D-Wandler,
den man trotz seiner 10 bit mit einem externen OpAmp
wie MCP6051 problemlos in den benötigten Bereich verstärken kann
für weit weniger Geld.
Dazu muss man halt wissen, wie Analogtechnik funktioniert.
und nun schrieb:> Das wuerde heissen, erst mal die anforderungen ueberpruefen.> Ist die absolute Genauigkeit wichtig, wie wichtig?> Ist die Austauschbarkeit des Sensors wichtig, wie wichtig?> Ist die Stabilitaet wichtig, wie wichtig?>> Und dabei muss man sich eben von einem akademischen Furz wie 0.01 Grad> loesen.
In der Industrie sind 0.01 °C absolut kein akademischer Furz, da
spätestens bei der Kontrolle der Systeme so eine Genauigkeit (Test
Accuracy/Uncertainty Ratio) häufig vorgeschrieben ist.
Arc Net schrieb:> In der Industrie sind 0.01 °C absolut kein akademischer Furz, da> spätestens bei der Kontrolle der Systeme so eine Genauigkeit (Test> Accuracy/Uncertainty Ratio) häufig vorgeschrieben ist.
Selbst wenn vorgeschrieben, ist es Quatsch. Innerhalb des Sensors
selbst, ist sicher ein größerer Temperaturgradient als diese 0,01°, erst
recht zu einem irgendwie gearteten Messobjekt.
MfG Klaus
@MaWin
Wenn der interne Wandler + OpAmp + Referenz mit allen Fehlern
tatsächlich 10 Bit rauschfrei (keine Offset, Verstärkung, Linearitäts-,
Drift (Langzeit und Temperatur), etc. Fehler) hinbekommt, dann ja.
Sind's dagegen nur 8-Bit dann wären es nur (0 C - 40 C)/256=0.15625 K...
@Klaus
Das ist kein Quatsch, sondern Alltag.
Zudem kommt es darauf an was gemessen werden soll (in einem Gas, einer
Flüssigkeit etc.) und wo. Die Voraussetzungen so was in diesem
Genauigkeitsbereich in einer Anlage zu machen, sind natürlich nicht
immer vorhanden, ansonsten geht auch das. Sind es externe Messungen z.B.
der Sensoren(Kalibrierung durch Vergleichsmessungen bspw.in einem Ölbad)
sind 0.01K Genauigkeit üblich. Machbar sind ohne Fixpunktzellen (je nach
Temperaturbereich) Messunsicherheiten <1mK.
Der hochauflösende AD Wandler spart auch nicht nur dem Verstärker (der
MCP6051 würde ggf. schon noch einen Abgleich benötigen, 150 µV Offset
entsprechen schon etwa 0,4 K bei 1 mA durch einen PT100), sondern auch
noch 3 hochwertige Widerstände, wenn man ohne Abgleich der Schalung
auskommen will. Je nach Anforderungen kann der AD Wandler günstiger
werden als die Widerstände.
Die Lösung mit OP und µC internem AD/Wandler ist für geringere
Anforderungen Ok, vor allem wenn man einen Abgleich zulässt.
und nun schrieb:> Und dabei muss man sich eben von einem akademischen Furz wie 0.01 Grad> loesen.
Nun, gerade PT100 sind ideal geeignet, um Genauigkeiten von 0,01°
zu erreichen. Für geringere Genauigkeiten ist ein Halbleiterfühler,
am besten gleich mit digitalem Ausgang, wesentlich besser geeignet.
Gruss
Harald