Forum: Analoge Elektronik und Schaltungstechnik OPV für PT1000 schwingt (->angeblich<-)


von Philipp L. (viech)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Es geht um Die Messung der Temperatur in meinem Aquarium.

ich habe diese Grundschaltung hier aus dem Forum auf dem Steckbrett 
aufgebaut.
Zum Test wurde R4,R5,R6 auf 15-30° = ~0-5V ausgelegt.
C1 und C2 habe ich zum Test eingebaut, machen aber keinen Unterschied.

Das ganze wird über den ADC0 des ATmega16 mit AREF ext. an VCC der 
Brücke gemessen.

Das Problem:
Der ADC-Wert schwankt zwischen 716 und 793 -> 77Bit = ~0.4V
Wenn ich den Wert alle 100ms auslese, dann sieht man auch sehr schön den 
Verlauf runter...hoch...runter....hoch

Dies scheint aber (irgendwie) nicht zu stimmen !?!
Denn wenn ich an den ADC-Eingang das Oszi hänge, dann ist der Wert auf 
dem Oszi ziemlich stabil, schwankt aber beim uC.
Es stört lediglich ein kleines 50kHz Rauschen (evtl. vom Netzteil).
Die Schwingungen Im Anhang kommen in diesem 50kHz Takt.

Aber:
Wenn ich den ADC-Eingang dann auf die Primärseite des OPV`s hänge, ist 
der Wert auf IN+ sowie IN- fest bei 57 und ändert sich um keine Stelle.

Auch wenn ich den ADC zwischen einen Spannungsteiler von VCC und GND 
hänge, ist der Wert bei 766 wie festgenagelt.

In diesen Fällen habe ich ja schließlich auch das 50kHZ Rauschen aber 
keine Schwankung beim uC...


hat jemand eine Idee, woran das liegen kann?

: Verschoben durch Moderator
von Helmut S. (helmuts)


Lesenswert?

Mach den 100nF Kondensator C1 weg. Das wäre ein schwerer Designfehler.

Wenn du filtern willst, dann mach C1 parallel R5.

: Bearbeitet durch User
von Philipp L. (viech)


Lesenswert?

C1 und C2 habe ich auch schon rausgenommen, bringt wie oben geschrieben 
keinerlei Unterschied.

von Helmut S. (helmuts)


Lesenswert?

Deine Software-Regelschleife darf natürlich nicht zu schnell sein, da 
die Temperatur sich auch nur langsam ändert.

: Bearbeitet durch User
von Philipp L. (viech)


Lesenswert?

> Dein Software-Regelschleife darf natürlich nicht zu schnell sein, da die
> Temperatur sich auch nur langsam ändert.

Es wird noch nichts geregelt, es geht aktuell nur um die Messung.

> Wenn du filtern willst, dann mach C1 parallel R5.

Das bringt tatsächlich eine deutliche Verbesserung auf +-4 Bit


Aber die Grundfrage stellt sich mir noch immer, warum ich dieses -+77 
Bit Verhalten auf dem Oszi nicht nachvollziehen kann.

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Der ADC zieht pulsförmig Strom am Anfang der Messung. Ein RC am Ausgang 
des Opamps hilft, dass die Spannung nicht einbricht.

von MaWin (Gast)


Lesenswert?

Philipp L. schrieb:
> habe diese Grundschaltung hier aus dem Forum

Wer kommt auf die wahnwitzige Idee, dort 100nF Kondensatoren wie 
Tretminen zu verteilen ?

Das war bestimmt nicht Teil eines Schaltungsvirschlags.

Und ein TLC272 (10mV Offset, er ist kein TLC277 mit 500uV) an Stelle 
eines LTC2054 (3uV) ist wohl eine genau so grandiose Idee, Messfehler 11 
GradC, was stören dich da 77 von 1024 wenn 750 sowieso falsch sind ?
Ein TLC272 kommt auch nicht auf 5V am Ausgang wenn er mit 5V versorgt 
wird. Er ist aber bei der Verstärkung stabil. Es liegt also nicht an 
(ursprünglicher) Schaltung und OpAmp, sondern deinem Aufbau.
Bei Steckbrett schwant mir böses, bei 5V ebenfalls, das wird die 
Versorgung des uC sein, klar gibt das Störungen in Höhe von 1mV, das ist 
1/5000, solche Effekte gehen von Kabel zu Kabel ganz ohne Verbindung.
Also grundlegende Kenntnisse über den Aufbau einer elektronischen 
Schaltung sollte man schon haben. Wenn man einem OpAmp nimmt der nicht 
bis VCC kommt, sollte man nicht ratiometrisch zu VCC messen, sondern zur 
kleineren internen ARef.

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

von Achim S. (Gast)


Lesenswert?

Philipp L. schrieb:
> Aber die Grundfrage stellt sich mir noch immer, warum ich dieses -+77
> Bit Verhalten auf dem Oszi nicht nachvollziehen kann.

Mit dem ADC siehst du Schwankungen im 100ms-Bereich. Stell das Oszi für 
die Messung mal auf eine vergleichbare Zeitbasis und den 
Acquisition-Mode auf Envelope. Sieht die Spannung am Oszi immer noch 
stabil aus?

von Philipp L. (viech)


Angehängte Dateien:

Lesenswert?

> Es stört lediglich ein kleines 50kHz Rauschen (evtl. vom Netzteil).
> Die Schwingungen Im Anhang kommen in diesem 50kHz Takt.
Das war leider ein Messfehler durch ein Schaltnetzteil neben dem Oszi...
Die Störung war am ADC-Eingang nie vorhanden.

> Der ADC zieht pulsförmig Strom am Anfang der Messung.
Okay, aber müsste dann nicht jede Messung gleich verfälscht sein ?
Der Wert am ADC Rauscht aber um die ~77Bit fröhlich hin und her.


> Und ein TLC272 (10mV Offset, er ist kein TLC277 mit 500uV) an Stelle
> eines LTC2054 (3uV) ist wohl eine genau so grandiose Idee, Messfehler 11
> GradC, was stören dich da 77 von 1024 wenn 750 sowieso falsch sind ?
>.....
Ruhig.... Runter vom Gas...
Das ist nur ein Testaufbau und ich hatte keinen anderen OPV in DIP zur 
Hand.
Wollte erstmal sehen ob die Schaltung generell funktioniert und stabil 
läuft, weshalb ich ja auch beim Ausgang von den 5V weggeblieben bin.
Die Generelle Genauigkeit war hier noch nicht entscheidend, sondern ob 
es mit der Schaltung generell Probleme gibt -> z.B. Rauschen <-

> Wenn man einem OpAmp nimmt der nicht
> bis VCC kommt, sollte man nicht ratiometrisch zu VCC messen, sondern zur
> kleineren internen ARef.
Ich habe das ja absichtlich gemacht, um zu sehen ob ich dadurch eine 
Rauschfreie Messung erhalte (Kalibrieren, Offset, usw.., kommt später)


> das wird die Versorgung des uC sein, klar gibt das Störungen in Höhe von 1mV, 
das ist
> 1/5000, solche Effekte gehen von Kabel zu Kabel ganz ohne Verbindung.

Das verstehe ich leider nicht, kannst du mir das genauer erklären:

Ich messe doch an IN+ und IN- (oder an einem anderen Spannungsteiler) 
auch glatte Werte ohne Rauschen, warum sollte es dann an der 5V 
Versorgung liegen?

> Bei Steckbrett schwant mir böses...
Siehe Anhang, so schlimm ?

> Stell das Oszi für
> die Messung mal auf eine vergleichbare Zeitbasis
Ups... was für ein schönes 50Hz Rauschen (siehe Anhang) :-)


Induktion:
Wenn ich den PT1000 durch einen festen Widerstand ersetze, dann schwankt 
es selbst ohne C über R5 nur noch um +-2Bit.
Glatte Werte mit 100nF

Also ist das rauschen eher das Problem einer Induktion als die 
Versorgungsspannung, richtig?
-> wie kann man hier Abhilfe schaffen ?
Evtl. R1 kleiner und mit FET nur für die Messung einschalten?


Temperaturabhängigkeit:
Wenn ich gegen den Aufbau Atme, dann ändert sich der Wert zusätzlich um 
~10Bit.
Bekomme ich diese Schaltung auch irgendwie einigermaßen Temperaturstabil 
?

: Bearbeitet durch User
von Toxic (Gast)


Lesenswert?

Philipp L. schrieb:
> Es geht um Die Messung der Temperatur in meinem Aquarium.

Ich nehme an du weisst,dass es fuer sowas "schoene und billige" 
Chinaware gibt.
Ich vermute mal,dass du einfach dein eigenes Projekt durchziehen willst 
und der Zeitaufwand plus Kosten Nebensache sind.
Dennoch hier ein Link fuer ein fertiges Geraet.Ich habe es selbst - 
verwende es allerdings nur als Temperaturmessgeraet in meiner 
Behausung.Ist intern gut aufgebaut und tut was es soll:Genaue 
Temperaturerfassung(DS18B20 Sensor) und verfuegt uber Relaisausgaenge 
die dafuer zustaendig sind um z.B. Wasser zu kuehlen oder zu heizen.
Das Ding gibt es fuer Niederspannung(12V-70V) und 
Netzspannung(100V-230V).

https://www.ebay.de/itm/DST1000-AC100-220V-Digital-Temperature-Controller-Thermostat-With-DS18B20-Sensor/401666518120?hash=item5d8530ac68:g:Kp0AAOSwEVtcHQcQ

von Achim S. (Gast)


Lesenswert?

Philipp L. schrieb:
> Also ist das rauschen eher das Problem einer Induktion als die
> Versorgungsspannung, richtig?

Nicht "Rauschen" sondern "Störung". Wo die Störung einkoppelt und wie 
(kapazitiv oder induktiv) kann man aus der Ferne nicht sicher bestimmen, 
auch wenn das Kabel zum Sensor ein wahrscheinlicher Kandidat ist. Wenn 
die Störung dort kapazitiv einkoppelt, dann dürfte ein geschirmtes Kabel 
etwas helfen (sofern der Schirm dann auch niederimpedant auf Masse 
gelegt wird).

Philipp L. schrieb:
> Wenn ich gegen den Aufbau Atme, dann ändert sich der Wert zusätzlich um
> ~10Bit.

10 Bit sind in gewöhnlichen Einheiten so was wie 50mV, oder?

50mV am Ausgang deines Verstärkers entsprechen ca. 50mV/300=160µV am 
Verstärkereingang. Als Temperaturdrift deines TLC272 ist das eher zu 
viel. Welche Temperaturkoeffizienten haben den deine sonstigen Bauteile?

Ansonsten ist korrekt, was Toxic angedeutet hat: im Temperaturbereich 
eines Aquariums ist es wesentlich einfacher, mit einem integrierten 
Temperatursensor eine genaue Messung hinzukriegen. Und wenn der Sensor 
ein digitales Interface zu deinem µC hat, dann stören dich auch kleine 
Einkopplungen auf der Leitung wenig.

von MaWin (Gast)


Lesenswert?

Philipp L. schrieb:
> Das verstehe ich leider nicht, kannst du mir das genauer erklären

Sowohl die Versorgungs- und damit ADC Referenzspannung des uC wird 
gestört (durch Netzteil und uC selber) als auch die Schaltung mit ihren 
langen Leitungen (Antennen) wird sich jede Störung einfangen die in der 
Luft liegt. Und bei deiner Verstärkung reichen 15 Mikrovolt um 1 bit 
schwanken zu lassen. Der Aufbau und die Bauteilauswahl (OpAmp, ggf. 
Widerstand) ist für Präzisionsmessungen ungeeignet.

Wenn mit Pt1000 am Kabel Störungen von 77, mit Festwiderstand von 2 
auftreten, wird das lange Kabel wie eine Antenne Störungen anziehen. Die 
müssen nicht mal als Differenzspannung am Kabelende auftreten, sondern 
es reicht ein Strom der über Steckbrettanschlüsse fliesst und dort am 
erheblichen Übergangswiderstand zu Spannungsabfall führt.

Wenn anhauchen zu Schwankungen führt, die die Daten des OpAmps 
übersteigen, kann einfach ein Widerstand mit zu grossem TK 
Temperaturkoeffizienten verbaut sein. Rechne doch mal nach. 1 GradC sind 
gerade mal 0.39%.

Der von Helmut eingezeichnete C ist sinnvoll um die Kapazität einer 
langen Pt1000 Zuleitung zu kompensieren. Meine Schwimmbadsteuerung hier 
vereendet 15m Kabel, kein Problem.

von Achim S. (Gast)


Lesenswert?

noch einen kleinen Nachtrag:

Philipp L. schrieb:
> -> wie kann man hier Abhilfe schaffen ?

Es ist natürlich sinnvoll, Störungen so weit möglich zu unterdrücken. 
Aber du musst die Störung nicht zwingend im Analogteil vollständig 
loswerden sondern kannst sie auch per Software behandeln. Da die Störung 
exakt 50Hz hat, geht das recht einfach.

Frage den ADC nicht mehr wie bisher nur ein mal pro 100ms ab sondern 
mehrfach pro Netzperiode. Also z.B. timergesteuert genau mit 400Hz.

Bilde den Mittelwert der Messungen genau über eine Netzperiode (in dem 
Beispiel also über 8 ADC-Werte). Im Endergebnis werden die 50Hz 
weitgehend verschwunden sein.

von Crazy Harry (crazy_h)


Lesenswert?

Da hab ich auch noch ne Frage: wie groß sollte man den C über R5 dann 
wählen? Sind die 100n von Helmut das Allheilmittel oder ist das auch 
abhängig von der Verstärkung?

Harry

von Philipp L. (viech)


Angehängte Dateien:

Lesenswert?

Zu meinen Anforderungen (befürchte schon böses von den Messtechnikern):

Die Messung soll ja später das Aquarium auf min. 0.1°C mittels Peltier 
regeln (lieber besser).
Aktuell habe ich einen "Klick/Klack" Heizstab, welcher +-0.5°C Hysterese 
hat.
Die aktuelle Temperaturkurve (SPS Messung) finde ich einfach nur 
schrecklich...
-> Den Garnelen ist es vermutlich egal :-)

Da ich aber sowieso eine Kühlung benötige, kann diese auch gleich 
"Strich" fahren.
Ich glaube dieses sehr träge System sehr gut auf 0.1°C regeln zu können.
bei 100% Leistung kühlt das Peltier das Aquarium um 1,5°C/h runter.
Für diese Regelung benötige ich aber eine bessere Auflösung als 0.1°C
- > min. 0.01°C, eher besser.

Wichtig:
Mir kommt es bei der Messung nicht wirklich auf die echte Genauigkeit 
an, sondern hauptsächlich auf die Störungsfreie Messung mit hoher 
Auflösung.
Die Messung wird später sowieso nur auf "einem Messpunkt" betrieben.
Die Kalibrierung auf diesen Punkt kann ich später leicht mit meiner 
Referenzmessung vornehmen.
Es ist auch egal ob diese nachher ganz exakt auf 0.1°C stimmt, aber ich
hätte später gern nur noch einen Strich auf der Messwerthistorie...

Als Messspanne schweben mir 15-35°C (+-10°C um den Sollwert) vor.

Ich brauche also eine Messung, welche dem noch nicht definierten >=12Bit 
ADC, möglichst konstante (Störungsfreie) Werte liefert.

Mit dem PT1000 und der notwendigen hohen Verstärkung ist das vermutlich 
zu umständlich zu realisieren.

Als Alternative zum PT1000 habe ich leider nur einen NTC 1K rumliegen, 
mit dem ich über die Schaltung (siehe Anhang) auf dem 10Bit ADC des uC 
konstante Werte erhalte.
Wenn ich die 1K gegen 10K tausche, zappelt der ADC um +-2Bit...

Der Messstrom ist mit 1K zwar zu groß, aber es ist ja nur ein Test.
Der NTC und kleiner Verstärkung scheint hier die bessere Wahl zu sein.
Die Linearisierung ist ja nachher in der SW kein Problem.

Ich hätte mir jetzt mal einen NTC 10K bestellt um die Verstärkung noch 
weiter zu senken, oder habt ihr einen besseren Vorschlag ?

PS:
Über Vorschläge zu erprobten ADC´s (SMD) mit I2C wäre ich auch sehr 
dankbar.
Spricht etwas gegen diesen Kollegen ?
https://www.mouser.de/ProductDetail/Microchip-Technology/MCP3426A0-E-SN?qs=sGAEpiMZZMvTvDTV69d2QhdGLEw1nHimPurLIVyPEHQ%3D

Danke !

: Bearbeitet durch User
von Lurchi (Gast)


Lesenswert?

Der Kondensator parallel zu R5 legt die obere Grenzfrequenz fest. Es 
hilft oft schon wenn man die Grenze die sich ohne den Kondensator ergibt 
ein wenig nach unten verschiebt.  Sonst muss man halt sehen wie langsam 
es sein soll - ideal so dass R5*C etwa die Zeit zwischen 2 ADC 
Wandlungen erreicht.


Für eine genaue Regelung mit einem Peltierlement und einem so trägen 
System lohnt es sich ggf. die Temperatur an mehreren Stellen zu messen: 
einmal im Wasser und dann an beiden Seiten des Peltier-elements. Die 
zusätzlichen Temperaturen reagieren schneller und erlauben so eine 
schnellere Regelung, bzw. mehr Gain.

Die Messung an der äußeren Seite kann eine Störquelle kompensieren, denn 
so ein Pletierlemement hat eine deutliche Wärmeleitfähigkeit. D.h. 
Störungen von außen übertragen sich auch auf die andere Seite. Schon als 
Schutz vor Überhitzung ist die 2. Messung hilfreich.  Die zusätzliche 
Messung kann man als Feed-forward oder als Linearisierung / innere Loop 
für die Wärmeleistung sehen.

Pletier-Elemte mögen ohnehin kein einfach on/off Regelung (oder 
einfaches PWM), vor allem nicht beim kühlen.

Neben PT1000 und NTC sind auch einfache Dioden als Temperatursensor 
geeignet. Beim PT1000 muss man halt auch stabile Vergleichswiderstände 
(oder wenigstens einen) haben.

von Philipp L. (viech)


Lesenswert?

> Für eine genaue Regelung mit einem Peltierlement und einem so trägen
> System lohnt es sich ggf. die Temperatur an mehreren Stellen zu messen:

Ja, aber aktuell geht es nur um die Realisierung der Messung.

von Crazy Harry (crazy_h)


Lesenswert?

Muß es denn ein PT1000 sein? Der LM73 z.B. löst 0.03125°C auf und ist 
einfach (I2C) auszulesen. Es gibt davon auch Nachbauten (?) mit SPI.

von MaWin (Gast)


Lesenswert?

Philipp L. schrieb:
> Die Messung soll ja später das Aquarium auf min. 0.1°C mittels Peltier
> regeln (lieber besser

LOL.
Warum endet eigentlich jeder Thread im Lächerlichen.
Im Aquarium sind sowieso Temperaturunterschiede von deutlich mehr als 
0.1.
Es sein denn du hängst einen grossen Quirl hinein der ständig kräftig 
umrührt (Mörtelrührer).
Auch in echtem Meereswasser sind Temperaturunterschiede von 1 GradC zum 
Oberflächenwasser und nochmal 1 GradC zur Strömung völlig normal.
Deine Anforderung ist Quatsch.

Es ist jedoch möglich, die Temperatur des Wärmetauschers selbst auf 0.1 
zu regeln mit einem PID Regler. Welche Temperatur dann am anderen Ende 
des Aquariums ist, ist aber Zufall, können 2 mehr oder 2 weniger sein.

von Lurchi (Gast)


Lesenswert?

Für die Auswertung eines PT1000 lohnt ggf. ein externer ADC. Der oben 
genannte MCP3426 sollte schon gehen (ich kenne den ähnlichen MCP3421).

Einfacher wäre es aber wenn der ADC eine externe Referenz hat (z.B. 
MCP3550). Dann kommt man mit nur 1 stabilen Ref. Widerstand aus. Die 
anderen beiden Widerstände der Brücke werden quasi durch die relativ 
hohe Auflösung des ADC ersetzt. Weil der Messbereich dann bis 0 runter 
geht braucht man die etwas höhere Auflösung als mit der "analogen" 
Brücke aus dem Anfangspost.

Es sind schon komische Zeiten wo es sich ggf. lohnt 2 Widerstände durch 
einen 22 Bit ADC zu ersetzen.

von Philipp L. (viech)


Lesenswert?

> Deine Anforderung ist Quatsch.

Das stimmt und habe ich bereits geschrieben:
> -> Den Garnelen ist es vermutlich egal :-)
Aber es muss auch nicht immer alles Sinnvoll sein.
Es reicht mir wenn es machbar ist ;-)

Es ist ein sehr kleines 30L Garnelenbecken.
Wenn man sowieso eine Kühlung mit Regelung baut, warum sollte man dann 
nicht versuchen diese auch exakt zu bekommen?

Der dumme Klick/Klack Heizstab schafft immerhin +-0.5°C
Wäre doch gelacht wenn ich eine echte Regelung keine 0.1°C schafft !!

Das ähnelt meine Anforderung:
Beitrag "hochauflösende Temperaturmessung"

Ich werde es jetzt mal mit 10k NTC und einem ~16Bit ADC mit ext. 
Referenzspannung an der Brückenversorgung versuchen.

Aktuell geht es ja erstmal nur um die hochauflösende Temperatur und 
nicht um die Regelung.

von Achim S. (Gast)


Lesenswert?

Philipp L. schrieb:
> Ich brauche also eine Messung, welche dem noch nicht definierten >=12Bit
> ADC, möglichst konstante (Störungsfreie) Werte liefert.

Nimm einen integrierenden ADC. Also einen Zwei(oder Mehr)-Rampen ADC 
oder ein passend gewählter Sigma-Delta, der genau über eine Netzperiode 
integriert - dann bist du deine momentane Haupt-Störquelle los 
(Netzeinstreuungen).

Philipp L. schrieb:
> Mir kommt es bei der Messung nicht wirklich auf die echte Genauigkeit
> an, sondern hauptsächlich auf die Störungsfreie Messung mit hoher
> Auflösung.

Dann ist ein NTC tatsächlich wesentlich sinnvoller als ein Pt1000. Oder 
halt ein integriertes Sensor-IC mit Analogausgang - die sind sogar oft 
genau bei 25°C kalibriert.

Philipp L. schrieb:
> Wäre doch gelacht wenn ich eine echte Regelung keine 0.1°C schafft !!

Dann mach mal. Aber weder ist diese Anforderung sinnvoll, noch ist sie 
ohne echten Aufwand hinzukriegen. Wie du schon bei der 
Temperaturempfindlichkeit deiner Verstärkerschaltung gemerkt hast musst 
du dann an vielen Stellen die Fehlereinflüsse bedenken und ggf. 
eliminieren.

Es reicht nicht, eine Sache (z.B. Sensorwahl) richtig zu machen sondern 
es muss alles passen. Mit dem bisher erkennbaren Ansatz, mal irgendwas 
hinzubauen und dann die Netzgemeinde nach den Schwachstellen suchen zu 
lassen, wirst du dein selbstgestecktes Ziel nicht erreichen.

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.