Forum: Mikrocontroller und Digitale Elektronik Temp-Messung mit AVR


von Samy (Gast)


Lesenswert?

Guten Tag

Zu aller erst-->ich habe das Forum durchsucht aber nix gefunden.
Ich bin grad bei der Entwicklung einer Schaltung die per PT1000 und µC
(90S8515) die aktuelle Temperatur auf einem LCD anzeigen soll.
Zur Digitalisierung der vom PT100 kommenden Messwerte habe ich an ne
Widerstandsbrückenschaltung mit dem PT1000 gedacht! Die
Brückenschaltung wollte ich dann per OP verstärken und dann vom OP auf
einen A/D Wandler gehen der wiederum die digitalen Signale für den AVR
liefert.
Diese Schaltung sollte ne Auflösung von 0,1°C liefern können in einem
Messbereich von 0-90°C!
Es spllen 4 verschiedene Temps gemessen werden, d.h. 4x PT1000!

Meine Frage ist nun ob diese Lösung akzeptabel ist und ob man mit ihr
so ne Auflösung bzw. Genauigkeit hin bekommt?

Zum zweiten ist die Frage welchen OP man einsetzen sollte. Bei der
Fülle am Markt habe ich den Überblick verloren.

Zum dritten wäre die Frage ob die Kennlinie des PT1000 (Platinsensor)
im Bereich von 0-100°C linear genug ist um eine Auflösung von 0,1°C zu
erreichen? Wenn nicht müsste ich ein Kennfeld im EEPROM des AVR
hinterlegen und zuvor wissen wie das geht mit Assembler.

Zum vierten habe ich gelesen das man einen Mittelwert der Messwerte
bilden sollte aus x Werten und den Mittelwert dann auf dem Display
ausgeben um zu starkes "pendeln" der Anzeige zu verhindern-->nun ja
habe null Ahnung wie man das Programmieren kann. Eine kleiner Tipp wär
nett schlecht.

Schon mal herzlichen Dank für Antworten.

P.S. es muss ein PT1000 sein da es keinen digitalen Temp-Sensor z.b.
LM75 gibt den man direkt in einen Wassertank schrauben kann.

von Simon Faller (Gast)


Lesenswert?

Hallo,

für die analoge Signalaufbereitung bieten sich verschiedenste
Schaltungen an. Eine Brückenschaltung ist sicher nicht verkehrt, kann
man mit ihr doch recht leicht den Offset des Pt1000 (1000 Ohm bei 0°C)
kompensieren.
Wenn der AD-Wandler genügend Auflösung hat bietet sich aber eine
wesentlich einfachere Lösung an: Man schaltet mit dem Pt1000 einen 0,1
% Widerstand in Reihe und speist das ganze mit Konstantstrom (bei einem
PT1000 mit ca. 0,05 mA bei einem Pt100 mit 0,5 mA) und misst jeweils
die Spannung über Multiplexer am 0,1% Widerstand und am PT1000. Dann
braucht man nur noch einen Dreisatz anzuwenden und erhält den
Widerstandwert des PT1000. Der Konstantsrom und sonstige Parameter
müssen dabei überhaupt nicht genau sein, da durch die Reihenschaltung
Pt1000 Vergleichswiderstand sich alles herauskürzt.
Um vom Widerstand des PT1000 auf die Temperatur zu kommen nimmst du
eine Tabelle oder ein Polynom.
Den Mittelwert aus mehreren Messungen kannst du bilden um eine stabile
Anzeige zu bekommen, wenn deine vorgeschaltete Analogtechnik aber etwas
taugt wird das nicht notwendig sein.
Was die Auflösung betrifft, auch das hängt von der Auflösung deines ADC
ab. Bei einem Meßbereich 0 - 100°C mit 0,1°C Auflösung brauchst du halt
mindestens 1000 Count Auflösung also 10 Bit. Nur dann hast du noch
keinerlei Reserve und der Meßwert wird zwangsläufig +- 1 Digit wackeln.
Diese betrachtung gilt zudem nur für die Temperatur. In Wirklichkeit
versteckt sich hinter 0°C ja 1000 Ohm und hinter 100°C 1385 Ohm. Es
interesiert also nur die Widerstandsänderung zwischen 1000 und 1385
Ohm. Entweder du kompensierst die "überschüssigen" 1000 Ohm durch
eine vorgelagerte Analogschaltung oder du machst es digital. Nur
brauchst du dann einen ADC mit weit mehr als 10 Bit Auflösung.

Soviel zur Auflösung. Wen die Genauigkeit 0,1°C betragen soll wird das
heftig und verlangt eine Linearisierung.
Hast du die Tabelle für einen PT100 bzw. Pt1000?
Hier mal einige Werte aus der IEC751 für einen PT100 (beim PT1000
einfach mal 10)
-50°C  80,31 Ohm
-40°C  84,27 Ohm
-30°C  88,22 Ohm
-20°C  92,16 Ohm
-10°C  96,09 Ohm
0°C  100,0 Ohm
10°C  103,9 Ohm
20°C  107,79 Ohm
30°C  111,67 Ohm
40°C  115,54 Ohm
50°C  119,4 Ohm
60°C  123,24 Ohm
70°C  127,07 Ohm
80°C  130,89 Ohm
90°C  134,7 Ohm
100°C  138,5 Ohm

Ps. Es gibt auch ferige Meßumformer auf PT100 Basis zum einschrauben.
Diese liefern entweder 0..1 V oder 4 ...20 mA und sind bereits
linearisiert.

Oder schau mal unter www.testo.de

Gruß

Simon

von Peter D. (peda)


Lesenswert?

Ja der LM75 ist alles andere als montagefreundlich.

Aber der DS18B20 sollte schon gehen.
Z.B. in eine M8-Schraube ein 5mm Loch bohren, dort den DS18B20 mit
angelötetem 2-adrigem Kabel versenken und mit Epoxidharz vergießen.

Die Auflösung ist 1/16 Grad.
Willst Du aber auch eine Genauigkeit von 0,1° mußt Du ihn in der
Software abgleichen (Geradenapproximation).


Peter

von Thomas Burkhardt (Gast)


Lesenswert?

Hallo Simon,

die Sache mit der Spannungsmessung am PT100(0) und am Reihenwiderstand
hat aber einen Haken. Entweder brauchts dann differentielle Eingänge am
Wandler oder man muss gehörig mit der Masse aufpassen. Evtl. kann es
daher schaltungstechnisch einfacher sein einen präzisen und bekannten
Konstantstrom einzuspeisen, dann kann man direkt damit den Widerstand
des PT100(0) bestimmen.

Ansonsten würde ich aber auch der Einfachheit halber bei
Stromeinspeisung die Spannung messen und nicht den komplizierteren Weg
über eine Brückenschaltung gehen.


Grüße

von Samy (Gast)


Lesenswert?

Hallo Simon

Wenn ich es richtig verstanden habe errechnet der AVR über den
Spannungsfall am Vorwiderstand und am PT1000 den exakten
Widerstandswert des PT1000, oder?
Also

Widerstandswert des Vorwiderstands
---------------------------------- * Spannungsfall PT1000= R PT1000
 Spannungsfall am Vorwiederstand

Schwankungen des Stromes kürzen sich raus!! Richtig

Da ich für den Wert 1000 bzw. 1138 ja 11bit im AVR bräuchte liegt es
doch nahe mit zwei OP`s den analogen Wert um den Faktor 10 oder 100
runter zu regeln, oder?
Welche OP`s sollte man denn da nehmen? Der Markt ist ja unüberschaubar.

von Simon Faller (Gast)


Lesenswert?

Hallo Samy,

die Sache mit dem Dreisatz ist richtig. Grund: In einer Reihenschaltung
verhalten sich die Spannungen wie die Widerstände. Darum muss eben der
Strom auch nicht so sehr genau sein. Er muss nur bei den beiden
Messungen (am Vorwiderstand und Pt1000) gleich sein. Wenn er sich
innerhalb Stunden um zig % verändert ist das völlig egal.
So was die Ops anbelangt, kannst du so ziemlich alle gängigen Typen
verwenden die eine kleine Offsetspannung und eine kleine Offsetdrift
haben. Da hat wohl jeder so seinen Favoriten. Ich würde den alten OP 07
verwenden. Dieser ist günstig, überall zu bekommen, ein alter bewährter
Knabe. Aber wie gesagt es geht auch jeder andere vergleichbare Typ, nur
halt kein LM358 oder so ähnlich, da dir dort die Offsetspannung und
deren Drift Ärger machen werden.
Als OP Schaltung empfehle ich einen Differenzverstärker (Subtrahierer)
dem über einen Multiplexer z.B. 74HC4053 die Spannungen des
Vorwiderstandes bzw. PT1000 zugeführt wird. Wichtig ist noch, dass bei
einem PT100 (beim einem Pt100 ist es nicht ganz so kritisch) in
Vierleitertechnik gemessen wird. Will heißen, dass am PT100 an jeder
Seite 2 Drähte angebondet sind. Jeweils einer zur Stromzufuhr und der
andere zum hochohmigen abgreifen der Spannung am PT100. Dadurch
bekommst du keinen Meßfehler durch die Leitungswiderstände.

Zu deiner Frage noch einen Verweis auf die Bibel der Elektronik
"Halbleiter Schaltungstechnik von Tietze/Schenk" Dort findest du
unter dem Kapitel Meßschaltungen so ziemlich alles zum Thema
Subtrahierer. Im Kapitel Sensorik gibt es unter "Übertragung von
Sensorsignalen" einiges zur Vierleitertechnik. Aber auch Google wird
zu diesen Begriffen einiges liefern.

Gruß

Simon

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.