Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung mit PT100 und UTI03


von Hans (Gast)


Lesenswert?

Hello! Ich habe einen Atmega8 und möchte gerne mit zwei PT100 Temperatur 
messen. Habe im Forum schon viele Beiträge gefunden und mir dann einen 
UTI03 bestellt. Jetzt erst bin ich draufgekommen, dass im Datenblatt die 
Software für PIC Bausteine geschriebn wurde.

Hat wer von euch diesen Code bereits ausprobiert(für AVRs in WinAVR 
[C])?
Wenn ja, würd ich mich freun wenn ihn mir wer schicken könnte, aber ich 
würde mich auch freuen wenn mir jemand Tipps geben könnte in Bezug auf 
den UTI03

mfg

von A. W. (wiwil)


Angehängte Dateien:

Lesenswert?

Hallo Hans,

ich habe den UTI bisher zur Kapazitätsmessung eingesetzt. Die Auswertung 
per Mikrocontroller ist doch eigentlich recht einfach: Du lässt deinen 
Timer laufen und wertest über einen externen Interrupt gesteuert die 
verschiedenen Werte vom UTI aus. Zum Zuordnen suchst du noch die beiden 
kleinsten raus, weil die den ersten Messwert darstellen.
Ich habe das mit einem C167, sollte beim AVR aber genauso einfach sein.
In der angehängten pdf-Datei ist der Ablauf von dem C-Programm für den 
PIC beschrieben, musst du also nur auf den AVR umsetzen.

Wenn du einen funktionierenden Code hast, kannst du ihn ja hier in der 
Codesammlung posten, dann profitieren andere auch noch davon.

Wenn du sonst konkrete Fragen hast, meld dich.

Gruß
Andreas

von Hans (Gast)


Angehängte Dateien:

Lesenswert?

@ Andreas

Wie gesagt ich will mit zwei PT100 Temperatur messen (Mode 7 im DB). Mit 
dem Externen Interrupt zähl ich per Timer die einzelnen Zeiten und muss 
mir mit den Zeiten dann die Temperatur berechnen.

Nun zu den Unklarheiten: Wie berechne ich die Zeiten(Formel??) und wie 
dimensioniere ich die WIderstände(Seite 17 Beschaltung A)????

Bin nicht gerade ein guter Datenblattleser.

mfg

von Hans (Gast)


Lesenswert?

Sorry, ein Fehler:
Wie berechne ich die Temperatur mit den Formeln?

mfg

von A. W. (wiwil)


Lesenswert?

Ich habe mir deinen Fall mal angeguckt.

Zur Dimensionierung: Rbias ist zum Einstellen des maximalen Stroms durch 
die Sensoren (damit die nicht vom Strom warm werden) Ist im Datenblatt 
angegeben, wie man es berechnet und auf Seite 14 ist für den PT100 2k2 
als Wert angegeben.
Rref ist der Referenzwiderstand als Vergleichsgröße zu deinen 
Temperatruwiderständen. Hier nimmst du halt normalerweise den Nennwert 
deines Temperatursensors, also 100 Ohm
Nun bekommst du ja nach der Auswertung 5 Timerwerte. Der erste Timerwert 
ist ein Offsetwert, den du nur abziehen musst. Der zweite Wert gibt dir 
den Wert von deinem Referenzwiderstand an, wenn du Wert 1 abgezogen 
hast. also hast du hieraus die Umrechnung 100 Ohm entspricht 
Timerwert2-Timerwert1
Genauso kannst du nun aus Timerwert3 (Rx2) und Timerwert4 (Rx1) deine 
Widerstände der PT100-Sensoren ausrechnen (siehe auch Tabelle 15) und 
daraus per Datenblatt deine Temperatur.

Gruß
Andreas

von Hans (Gast)


Lesenswert?

@ Andreas

Ich muss sagen, nach deiner Erklärung check ichs schon fast. :):)

Nur noch zwei Frgaen:
1) Ich hab die Formel R=[(Time-Timeoff)/(Timeref-Timeoff)] * Rref
   WIe komm ich jetzt zur Temperatur?
2) Wie weis ich welcher Timingwert welcher ist? Hast vl ne Idee?

mfg

von lötnix (Gast)


Lesenswert?


von Hans (Gast)


Angehängte Dateien:

Lesenswert?

Hy Leute! Ich hab die Schaltung mit dem UTI03 und dem PT100 aufgebaut 
und habe dazu eine Software geschrieben. Beim Testen bin ich 
draufgekommen, dass ich mindestens um 20°C daneben bin. Ich vermute mal, 
dass ich einige Fehler in meiner Software habe.

Darum hab ich mal eine Schaltung aus dem Datenblatt des LTC1043 
nachgebaut(S.12). Den AUsgang der Shcaltung muss ich nur mehr am ADC 
hängen und auswerten. Nun zum Problem bei dieser Schaltung :)

Mit den 3 Potentiometer gehört diese Schaltung kalibriert, nur das funzt 
nicht so gut wie es in den 3 Zeilen unter der Schaltung beschrieben ist.

Man kann die drei Potis verstellen wie man will, man keine genaue 
Spannung einstellen und wenn man die Versorgung kurzzeitig kappt und 
wieder anhängt ist wieer bei seinen ursprünglichen 4,33V??!!

Kann mir jemand mit dem LTC1043 helfen oder sollte ich die Software der 
UTI Schaltung verbessern?

mfg

von Eugen (Gast)


Lesenswert?

Hallo Hans,

ich möchte auch mit AT90CAN128 über UTI den PT100 ablesen. Ich bin heute 
angefangen die Datenblätter zu studieren. Kannst Du mir bitte deinen 
C-Quellcode und die Schaltung schicken. Ich versuche das 
nachzuvollziehen und zu testen. Dann können wir unsere Erfahrungen 
austauschen und vielleicht dein Problem lösen.

Mit freundlichen Grüssen

Eugen

von Schorschi (Gast)


Lesenswert?

Hallo Leute,

ich messe auch mit einem UTI03 die Temperatur.
Der UTI03 IC hängt bei mir an einem Freescale S12 16Bit µC.
Die Messungen werden mittels der internen InputCapture TimerIRQs 
durchgeführt. Als Sensor verwende ich PT100 bzw. PT1000 in 
4Draht-Messung. An sich klappt alles so weit. Nur habe ich bei den 
Periodenmessungen so starke Schwankungen dass die errechnete Temperatur 
um bis zu 1°C schwankt.
Die Periodendauerschwankungen sehe ich auch auf dem Oszi. Somit kann ich 
an dieser Stelle die SW mal ausschliessen.

Hat jemand schon ähnliche Probleme gehabt bzw. weiss jemand Abhilfe 
dagegen?

Gruss und Danke,
Schorschi.

von BioSniper (Gast)


Lesenswert?

Schorschi schrieb:
> Nur habe ich bei den
> Periodenmessungen so starke Schwankungen dass die errechnete Temperatur
> um bis zu 1°C schwankt.

Der UTI03 ist nicht in allen Punkten so gut, wie es auf den ersten Blick 
scheint. Er misst zwar sehr genau, er ist aber nicht in der Lage die 
Messwerte auch so zu vermitteln, wie sie gemessen wurden.

Der Chip erzeugt die jeweiligen Phasen intern nur mit einer Auflösung 
von 128 (fast Mode; 10ms Messzeit) bzw. 1024 (slow Mode; 100ms Messzeit) 
Schritten.

60°C / 128 = 0,47°C

60°C / 1024 = 0,059°C (<= akzeptabel. 300°C => 0,29°C)

Aber wahrscheinlich muss man z.B. -40°C (minimal messbare Temperatur) 
als Nullpunkt nehmen, dann sieht die Rechnung so aus:

(40°C+60°C): 100°C / 128 = 0,78°C

(40°C+60°C): 100°C / 1024 = 0,098°C (340°C => 0,33°C)

Wer es einigermassen genau haben will, der muss also unbedingt den 
slow-Mode verwenden: PIN SF = 0.

Bei 100ms Messzeit und zusätzlicher Mittelwertbildung könnte die 
Temperatur schon weggeschwommen sein.

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.