Forum: Mikrocontroller und Digitale Elektronik PT1000 Senor auslesen mit ATmega1284P


von Timo R. (t_rocks)


Angehängte Dateien:

Lesenswert?

Hallo

Möchte gerne die Temperatur an einem PT1000 Sensor mittels eines 
ATmega1284P für eine Solaranlage ermitteln.

Zielvorgaben:
-Auflösung von 0,5°C
-Temperaturbereich -20  +200°C
-Genaugikeit +- 1-2°C
-So wenig wie möglich Bauteile.
-AREF = VCC = 3,3V
-Anschluß Sensor 2 Draht

Darum meine Frage ob der unten angehängte Schaltplan was taugt.
Das ganze soll im Controller per differential Mode realisiert werden mit 
einer Verstärkung von 10
Formel hierfür laut Datenblatt: ADC = (VPOS – VNEG) · GAIN · 512 / VREF.
Calibrierung des Offset per Software.
Ich weis schon, das man das ganze normalerweise per Konstantstromquelle 
und OP löst, da aber meine Genauigkeit nicht sehr hoch sein muss, sollte 
es doch auch so funktionieren oder nicht ?
Leider habe ich aktuell keine passenden Atmel Controller zur Hand sonst 
hätte ich das ganze mal kurz getestet.
Was sagen also die Experten hierzu ?

Gruß Timo

von Benjamin S. (recycler)


Lesenswert?

Wieso nimmst du nicht einen DS1820? da hast du wirklich nur zwei oder 
drei Drähte. Bei deiner Schaltung sollte die Spannung sauber sein, und 
die Kabel nicht zu lange (vgl. 4 Kabel).

SW gibt es zum DS1820 genügend hier im Forum.

von Timo R. (t_rocks)


Lesenswert?

Ist halt konkret eine Voraussetzung.
Zudem geht die oberste Höchsttemperatur bei einem DS1820 nur bis 125°C.
Wie ich schon zuvor geschrieben habe liegt der Temperaturbereich bei :
-20°C - +200°C, also scheidet der DS1820 klar aus.
Trotzdem Danke für den Hinweis.

von Spitzbube (Gast)


Lesenswert?

Falls kein DS1820 verwendet werden soll, dann ist die Schaltung 
verbesserungswuerdig. Potis sollte man eh keine verwenden.
Eine vernuenftige Kombination ist PT1000 & 10k. Denn was auch noch 
beachtet werden muss ist die Spannung ueber dem Sensor, wegen de 
Selbsterwaermung. Ich denk mehr als 300mV solltens nicht sein ueber 
einem PT1k. Dh die Halbbruecke mit 2.5V speisen und gut ist. Ein 
Controller ADC hat allerdings keine Chance, da muss etwas besseres her.

von Timo R. (t_rocks)


Lesenswert?

Laut meiner Info sollte der Strom für ein PT1000 nicht über 1mA liegen 
wegen Eigenerwärmung was ja mit 0,525mA ja gegeben ist.
Gut den Poti könnte man durch ein 1,96k Widerstand ersetzen.
Verstehe allerdings nicht wieso ein Controller ADC nicht geeignet sein 
soll, bitte um Erklärung.

von Spitzbube (Gast)


Lesenswert?

Weil er mit den 10 Bit nicht die Aufloesung bringt. Rechne mal wie gross 
der Spannungshub pro Grad sein wird. Der PT1k aendert sich 3 Ohm pro 
Grad. Der interne Verstaerker sollte nicht dazu benutzt werden kleinere 
Bits zu erzielen. Dier ersaufen dann im Rauschen. Gut man kann dann 
Mitteln,

von Jan (Gast)


Lesenswert?

Spitzbube schrieb:
> Der PT1k aendert sich 3 Ohm pro
>
> Grad.

und ist nicht ideal linear

von dolf (Gast)


Lesenswert?

Timo Reuters schrieb:
> Laut meiner Info sollte der Strom für ein PT1000 nicht über 1mA liegen
> wegen Eigenerwärmung

die info stimmt nicht.
pt1000 0,1ma
pt100 1ma.
mehr nicht sonst wird dem pt zu warm.
mfg

von Timm T. (Gast)


Lesenswert?

dolf schrieb:
> die info stimmt nicht.
> pt1000 0,1ma
> pt100 1ma.
> mehr nicht sonst wird dem pt zu warm.

Ja ne, ist klar.

Könnte es sein, dass das von der Größe des PT, dem umgebenden Medium, 
der thermischen Anbindung ans Medium... abhängt?

von René B. (reneb)


Lesenswert?

Der PT1000 kann so mal eben schnell an einem ADC mit Eingangsverstärkung 
abgelesen werden. Die Eigenerwärmung funkt dir zwar rein, aber da du 
0,5°C Auflösung bei +-1° oder 2° haben willst und der gut wärmegekoppelt 
ist, geht das. Die 10Bit am ADC erreichst du am atmega leder nicht, 
sondern musst nur mit etwa 9Bit rechnen. Du kannst ja mal akkumulieren 
und dann durch die Anzahl der Samples teilen und schauen, ob das letzte 
Bit wenigstens halbwegs vorhersargbar zappelt. Macht man aber eigentlich 
nur erfolgreich bei AC-Signalen.

Wenn du es natürlich so machen möchtest, dass auch die Messtechniker 
hier zufrieden sind, musst du dir eine OpAmp-Schaltung bauen, der dir 
den PT1000 konstant bestromt und du dann die darüber abfallende Spannung 
verstärkst und einliest.

Für deine Zwecke sollte dein Schaltungsvorschlag aber locker reichen. 
Nimm als Abgleich auf der anderen Seite kein Poti, sondern einen 
Spindeltrimmer. Dann hast du es bei der Abstimmung wesentlich leichter.

Natürlich kommen auch noch die Leitungswiderstände und 
temperaturabhängigen Übergangswiderstände bis zum PT1000 dazu, daher ist 
hier die Rumpienserei wegen irgendwelchen Messtechnik-Kniffen um die 
maximale Auflösung rauszuholen, eh für die Katz. 1mA über nen 1k 
Widerstand führt ja nur zu 1mW Abwärme, also bitte...

Wenn dir das aber nicht reicht, dann versorgst du die Schaltung aus 
einem Atmega-Pin heraus und lässt sie nicht die ganze Zeit an 3,3V 
hängen.

Einfach einmal pro Sekunde anschalten, messen, ausschalten. Wenn die 
Messung dann 1ms dauern sollte, hast du ein Tastverhältnis von 1 zu 1000 
und kommst dann auf sage und schreibe unter 1µW Abwärme im Mittel.

Dann kannst du auch die Widerstände kleiner machen. z.B. direkt dem 
PT1000 in Serie 1k spendieren und den Abgleich mit einem 2k 
Spindeltrimmer auf der anderen Seite über den Mittenabgriff realisieren. 
Das ist wesentlich empfindlicher und du MUSST dann aber tatsächlich 
immer die Versorgung entsprechend an und ausschalten. Der PT1000 sollte 
dann aber auch gegen Masse sitzen, denn du hast ja noch einen 
Ausgangswiderstand des Ports.

Letztere Methode würde ich persönlich bevorzugen.


Viel Spaß damit, ich hoffe mal das hilft gegenüber deinen Anforderungen.

von Timo R. (t_rocks)


Lesenswert?

Danke mal an alle für die schnelle Rückmeldung.

Mir ist schon klar das ich keine 10bit Auflösung erhalten werde, eine 9 
oder 8 bit genaue Lösung würde im Notfall auch noch reichen (1°C 
Auflösung).
Das mit der Eigenerwärmung am PT1000 sehe ich nicht so schlimm, sind ja 
nur ungefähr 0,1K, aber die Idee von René den PT1000 direkt von einem 
Port zu speisen und zwar nur solange ich die Messung durchführe sollte 
das Problem mit der Eigenerwärmung beseitigen.
Ich schätze mal das die Kabellänge meines Sensors wesentlich mehr 
Probleme bereiten wird als die Eigenerwärmung, die liegt mit Hin- und 
Rückweg bei ca. 20m. Werde den Offsetfehler, der durch die Kabellänge 
verursacht wird per Software beseitigen.
Werde zur Sicherheit bei meiner Bestellung noch OP's mitbestellen falls 
das ganze nicht so funktionieren sollte wie ich mir das Ganze denke, man 
weis ja nie. :)

von Studentle (Gast)


Lesenswert?


von Harald W. (wilhelms)


Lesenswert?

Timo Reuters schrieb:

> Werde den Offsetfehler, der durch die Kabellänge
> verursacht wird per Software beseitigen.

Ach, und woher weiss die Software, wie warm Dein Kabel ist?
Bei Messungen mit PTs musst Du immer daran denken, das eine
Abweichung von nur 0,4% bereits 1° Fehler bedeutet. PT-Fühler
sollte man nur nehmen, wenn man deren besondere Vorteile (hohe
Genauigkeit bis in den mK-Bereich; geeignet für recht hohe
Temperaturen) auch nutzen will. Dann spielt der höhere Aufwand
für das analoge Frontend meist keine Rolle.
Gruss
Harald

von Timm T. (Gast)


Lesenswert?

Studentle schrieb:
> Die einfachste Lösung:

Nein. Die dort verwendete Schaltung ist schrott, wurde hier schon oft 
genug diskutiert. Und es gibt im Forum auch mehrere brauchbare 
PT1000-Verstärker, man müsste nur mal suchen...

von Timo R. (t_rocks)


Lesenswert?

Der Sensor ist bereits vorhanden, deshalb als ein PT1000.
Mir ist schon klar das der Temperaturabhängige Kabelwiderstand nicht per 
Software kompensiert werden kann, aber zumindest halt zu einer fixen 
Temperatur besser als nichts.
Außerdem will ich nicht mK genau messen sondern +- 1-2°C.
Ist für einen Solarkollektorfühler, da kommt es nun mal nicht auf sehr 
hohe Genauigkeit an.
Der Sensor ist ja noch aktuell an einer Regelung angeschlossen die mit 
Sicherheit nicht einmal die Kabellänge des PT1000 berücksichtigt und 
trotzdem funktioniert.
Das Ziel ist ja so einfach wie möglich die gewünschten Zielvorgaben zu 
erfüllen und nicht so genau wie nur möglich.

Zielvorgaben:
-Auflösung von 0,5°C alternativ auch 1°C
-Temperaturbereich -20  +200°C
-Genaugikeit +- 1-2°C
-So wenig wie möglich Bauteile.
-AREF = VCC = 3,3V
-Anschluß Sensor 2 Draht

von Harald W. (wilhelms)


Lesenswert?

Timo Reuters schrieb:

> Außerdem will ich nicht mK genau messen sondern +- 1-2°C.

Auch dafür muss Deine Messchaltung einen Fehler von << 1% haben.

> Ist für einen Solarkollektorfühler, da kommt es nun mal nicht auf sehr
> hohe Genauigkeit an.

Ja, deshalb nimmt man da auch andere Fühler, z.B. NTC

> Das Ziel ist ja so einfach wie möglich die gewünschten Zielvorgaben zu
> erfüllen

So einfach wie möglich geht nun einmal nicht mit PT-Fühlern

> -Temperaturbereich -20  +200°C

Kalkulierst Du die Klimaerwärmung bis zum Jahre 3000 mit ein?

> -AREF = VCC = 3,3V

Ich denke, das wird schwierig mit PT

> -Anschluß Sensor 2 Draht

Das müsste man mal genauer durchrechnen. Bei PT1000 sind die
Chancen da grösser als bei PT100.
Gruss
Harald

von ... (Gast)


Lesenswert?

René B. schrieb:
> Wenn du es natürlich so machen möchtest, dass auch die Messtechniker
> hier zufrieden sind, musst du dir eine OpAmp-Schaltung bauen, der dir
> den PT1000 konstant bestromt und du dann die darüber abfallende Spannung
> verstärkst und einliest.

Andere Meßtechniker würden dann einwenden, dass eine ratiometrische 
Messung genauso möglich ist. Es gibt also keinen Grund für eine KSQ

von Timo R. (t_rocks)


Lesenswert?

@Harald Wilhelms


> Ja, deshalb nimmt man da auch andere Fühler, z.B. NTC
Würd ich ja, habe allerdings keine Lust deswegen extra aufs Dach zu 
steigen
um einen anderen Sensor zu installieren.

> Kalkulierst Du die Klimaerwärmung bis zum Jahre 3000 mit ein?
Nein, die Temperatur am Kollektor können schon maximal 160-180°C 
erreichen.
Nach unten würden allerdings auch noch 0°C ausreichen.

> So einfach wie möglich geht nun einmal nicht mit PT-Fühlern
Welche "einfache" Schaltung würde denn meine Zielvorgaben erfüllen?
Habe im Forum schon gesucht und die meisten Schaltungen bestehen aus 
einer
Konstantstromquelle und 4 dazugehörigen OP's+R .
Ich frag mich ob das ganze nicht mit weniger Aufwand zu realisieren ist, 
bin ja schließlich kein Elektronikguru, deshalb frag ich ja.

Gruß
Timo

von Timm T. (Gast)


Lesenswert?

Timo Reuters schrieb:
> Ich frag mich ob das ganze nicht mit weniger Aufwand zu realisieren ist,
> bin ja schließlich kein Elektronikguru

Natürlich, setze einfach Deine Anforderungen herab. Für die 
Primärtemperatur am Kolli reichen 3-5K Genauigkeit aus, bei einer 
Auslösung von 1K. Da Du eh Leitungsverluste hast, musst Du entweder eine 
ausreichende Differenz zwischen Tprimär und Tspeicher setzen, oder 
nochmal am Solarvorlauf kurz vor dem Speicher messen. Also einschalten 
wenn Tprimär > Tspeicher + 15K ist und ausschalten wenn Tprimär < 
Tspeicher + 10K ist UND Tvorl < Tspeicher + 3K ist. Zum Beispiel.

Die NTCs erreichen bei üblichen Kollektortemps auch nur noch bestenfalls 
5K Genauigkeit, unkalibriert schlechter, sind aber eigentlich nicht für 
diese Temps spezifiziert.

Also mach eine ratiometrische Messung über einen Spannungsteiler mit 
entsprechender Mittelung: 3k3 von Vcc auf den PT1000, 10k und 100n 
Tiefpass an den ADC-Eingang. Gibt mit 2.5V Referenz (runtergeteilt aus 
Vcc mit 2x 3k3, nicht die interne Referenz verwenden) eine Auflösung von 
etwa 0.7K pro digit bei 10bit ADC.

Die Eigenerwärmung durch den Messtrom kannst Du bei den relativ großen 
Sensoren und den zu erwartenden Messtemps vernachlässigen.

von René B. (reneb)


Lesenswert?

Das tolle an einer Brückenschaltung und dem Verhalten AREF=VCC ist ja 
gerade, dass es nur Verhältnisse anschaut. Da ist es wurst ob VCC jetzt 
EXAKT 3,3V hat oder eben nicht, denn der Referenzeingang des ADC 
skaliert ja darauf. Und bei den paar Bauteilen sind da jetzt auch keine 
fiesen Ripplespannungen drauf.

Der größte Fehler in deiner Messung ist eh erstmal das Offset. Bau das 
Teil als halbwegs ideal angenommen auf. Miss den tatsächlichen Wert und 
korrigiere über ein Offset deinen µC-Anzeigewert. Danach hast du die 
besten nicht-linearen Fehler bei der Temperatur, bei der dein PT1000 den 
Widerstandswert deines Vergleichswiderstandes hat.

Probier es halt mal mit einem Multimeter und Eiswasser bzw kochendem 
Wasser aus, dann wirst du sehen, dass das gar nicht so wild ist den 
Fehler auf 1% zw 0..100°C runter zu kriegen, dann können die 200° auch 
nicht so viel schlimmer werden. Ich hab das mal mit einem vergossenen 
Fühler aus der Apotheke mit dem großen C ausprobiert. Die Erwärmung 
merkt man dann schon mit der Zeit, aber deshalb ja takten.

PS: Die Pollin-Schaltung ist kein Highlight, da machst du es lieber 
selbst.

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.