Hallo, ich habe einen NTC (100k, 0,5%, 4250K) an einem Spannungsteiler mit R2=100k (0,05%, 10ppm) und messe in 10-Minuten Abständen die Temperatur über den 12-Bit ADC eines STM32L010K8 Controllers. Dabei verwende ich um möglichst genaue ergebnisse zu erhalten das Hardwareoversampling mit einer Oversampling Rate von 128. Wie im Bild gezeigt, schwankt die gemessene Temperatur zwischen 12,1 und 12,5°C und pendelt immer hin-und her. Die Temperatur ist aber bei 12,7°C konstant. Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten?
Gibt es in der nähe Heizungen? Wenn ja, dann schwankt die Temperatur deswegen.
Kannst du auch alle 10 Sekunden messen? Damit wir sehen ob das nicht irgendwie eine aliasing ist.
Andras H. schrieb: > Gibt es in der nähe Heizungen? Wenn ja, dann schwankt die Temperatur > deswegen. Nein, da ist nichts in der Nähe. Die Temperatur mit mit einem Präzisionsthermometer kontrolliert und die liegt bei exakt 12,7°C.
Wie lange dauert denn ein Zylus? Wo mißt Du da genau? Isolierter temperierter Raum?
:
Bearbeitet durch User
M. G. schrieb: > Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten? Ersetze den NTC durch eine 1.5V Batterie. Dessen Spannung bleibt bei gleichbleibender Temperatur kostant bei den 100k und Minuten.
Der µC hat keinen Aref, vermutlich misst du deine Referenz und führst damit einen Vergleich durch? Da der ADC aber gegen seine VCC misst, kann das u.U. zu Schankungen im Messwert führen, wenn VCC etwas wackelt. Besser wäre hier eine ratiometrische Messung gegen VCC über eine Messbrücke. Die ADCs in den STM32 sind m.E. nicht sonderlich gut...
Bedenke auch, dass das Oversampling wegen der sehr hohen Quellimpedanz die Pufferkondensatoren entlädt. Wage mal einen Versuch ohne Oversampling ggf. spiel etwas mit der Samplinggeschwindigkeit rum, falls der µC das untertützt.
Ingo Less schrieb: > Der µC hat keinen Aref, vermutlich misst du deine Referenz und führst > damit einen Vergleich durch? Da der ADC aber gegen seine VCC misst, kann > das u.U. zu Schankungen im Messwert führen, wenn VCC etwas wackelt. > Besser wäre hier eine ratiometrische Messung gegen VCC über eine > Messbrücke. Die ADCs in den STM32 sind m.E. nicht sonderlich gut... Ich messe im Verhältnis zur interne Vref und rechne mit dem ausgelesenen Kalibrierwert auf 3V hoch. Der Spannungsteiler wird mit einer 2,048V Präzisionsspannungsquelle gespeist. Mit dem Oversampling und Samplingtime habe ich schon herumgespielt und erhalte mit der aktuellen Einstellung bis jetzt die besten Ergebnisse.
Ja ok, kann man machen. Noch eine Frage: Um wie viele LSB ändert sich eigentlich der ADC-Rohwert?
MaWin schrieb: > Ersetze den NTC durch eine 1.5V Batterie. Dessen Spannung bleibt bei > gleichbleibender Temperatur kostant bei den 100k und Minuten. @ M. G. Du solltest auf MaWin hören. Nur so kannst Du Dein Problem einkreisen. Statt einer 1,5 V Batterie genügt ja für das erste auch ein 100 k Widerstand. mfg Klaus
M. G. schrieb: > Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten? Wie lang ist die Leitung zum NTC und wie oft tastest du den Eingangswert ab? Zeichne mal die Zeitbasis in die x-Achse. Ich könnte mir vorstellen, dass du da Störungen aus dem Netz mitmis(s)t. > Dabei verwende ich um möglichst genaue ergebnisse zu erhalten das > Hardwareoversampling mit einer Oversampling Rate von 128. Das bringt zur Unterdrückung von Netzstörungen nichts, wenn der diese 128 Messungen innerhalb von 5ms macht. Denn schlauerweise müsstest du die 128 Messungen auf 20ms = 1 Vollwelle der Netzfrequenz verteilen, damit sich Netzstörungen von selbst "herausfiltern". > messe in 10-Minuten Abständen die Temperatur Ich würde an deiner Stelle einfach pro Sekunde 10 Analogwerte einlesen und über 4096 Messwerte mitteln (dann wird die Mittelwertbildung /Filterung für die CPU ziemlich einfach). BTW: verbinde die Messpunkte nicht mit "Pseudodaten", sondern einfach mit geraden Linien. Denn nur die Daten für die Punkte sind echt. Alles andere ist geraten. Und in geratenen Werten Fehler zu suchen, ist fehlerträchtig.
:
Bearbeitet durch Moderator
Klaus R. schrieb: > MaWin schrieb: >> Ersetze den NTC durch eine 1.5V Batterie. Dessen Spannung bleibt bei >> gleichbleibender Temperatur kostant bei den 100k und Minuten. > > @ M. G. > Du solltest auf MaWin hören. Nur so kannst Du Dein Problem einkreisen. > Statt einer 1,5 V Batterie genügt ja für das erste auch ein 100 k > Widerstand. > mfg Klaus Ich habe nun den NTC mit einem 100k (0,05%, 10ppm) Widerstand ausgetauscht. Als Ergebnis erhalte ich einen stabilen Wert von 100107 Ohm - konstant über die letzten Stunden. Den NTC habe ich auch mit einem anderen Typ ausgetauscht. Auch hier der selbe Effekt. Also müssen diese alternierenden und regelmäßigen Schwankungen vom NTC kommen. Der ADC wird mit 8MHz getaktet, Prescaler = 4, ADC Sampletime = 160,5 cycles. Das ergibt bei 128-fachem Oversampling eine gesamte Samplingtime von rund 10ms.
M. G. schrieb: > Wie im Bild gezeigt, schwankt die gemessene Temperatur zwischen 12,1 und > 12,5°C und pendelt immer hin-und her. Die Temperatur ist aber bei 12,7°C > konstant. Wie sieht den der Sensor aus? Ist das so ne kleine 0,1g Pille auf zwei Beinen? Wenn ja, gugst du regelmäßig nach wie die Meßwerte stehen?! (Wenn du dich solchen Pillen, auf unter einen Meter näherst, steigt deren Temp. um bis zu 1°!)
Schon erstaunlich, dass bei soviel wirr zusammengestoppelten Schaltungskonzepten nur eine Unsicherheit von +/-1,65% rauskommt. Was soll es bewirken, wenn eine interne UND eine externe Referenz bemüht werden. Widerstandsverhältnisse bestimmt man ratiometrisch - dazu muss die Ref-Spannung = Versorgungsspannung nur kurzzeitig (während der einzelnen Messung) stabil sein. ADCs wollen fast immer eine Quellimpedanz <= 10 kOhm. Ja klar, den Sample-Kondensator kann man auch niederohmig aus dem 1 µF aufladen. Aber was ist mit Leckströmen? Bei 100 kOhm bewirken 10 nA (auch mit 1 µF) schon mal 1 mV. Dafür braucht man keinen 12-Bit-ADC. Was verstehst du unter Hardware-Oversampling? Wird dabei die maximale Samplerate / der maximale ADC-Takt eingehalten?
also, für genauere Temperaturmessungen benutze ich TMP117. Bei Temperaturdiffernzmessungen unter 1K spielt schon der Messaufbau eine gewaltige Rolle. Wie ist die Verbindung von dem NTC zum Präzisionsthermometer ( wann zuletzt kalibriert mit welcher Fehlerangabe? ) gestaltet?
Jetzt wird es esoterisch. Über den Sensor eine Metallkappe drüber. Powered by teoderix.
M. G. schrieb: > Nein, da ist nichts in der Nähe. Die Temperatur mit mit einem > Präzisionsthermometer kontrolliert und die liegt bei exakt 12,7°C. Was ist "die Temperatur"? Hast du ein passendes Kalibrierbad mit ausreichender Homogenität?
noreply@noreply.com schrieb: > Jetzt wird es esoterisch. > > Über den Sensor eine Metallkappe drüber. > > Powered by teoderix. Was hat deine Körpertemperatur, von hoffentlich annähernd 37°C und der dementsprechenden Wärmestrahlung, mit Esoterik zu tun? ... Und wenn schon Esoterik, dann schon bitte ein Aluhütchen !
:
Bearbeitet durch User
Teo D. schrieb: > noreply@noreply.com schrieb: >> Jetzt wird es esoterisch. >> >> Über den Sensor eine Metallkappe drüber. >> >> Powered by teoderix. > > Was hat deine Körpertemperatur, von hoffentlich annähernd 37°C und der > dementsprechenden Wärmestrahlung, mit Esoterik zu tun? > ... > Und wenn schon Esoterik, dann schon bitte ein Aluhütchen ! Bitte nicht falsch verstehen. Ich meine den Vorschlag ernst und der Threadstarter würde mit der Metallkappe die Wärmestrahlung auf eine größere Masse verteilen. Aber das Wissen um Wärmestrahlung ist in Deutschland abhanden gekommen.
Ich habe in meinen Geräten immer viele Temperatursensoren, sowohl analog als auch digital. Und die messen eigentlich recht zuverlässig und genau. Mein Vorschlag: Messe öfter uns verzichte auf das Oversampling. Nur Rohwerte bringen dich jetzt weiter weiter. Setze einen 2ten identischen Sensor direkt daneben und verleiche beide Messungen. Traue nicht dem Präzisionsthermometer. Auch darin können Fehler enthalten sein.
M. G. schrieb: > Der Spannungsteiler wird mit einer 2,048V Präzisionsspannungsquelle > gespeist. Spricht etwas dagegen, die 2,048V als ADC Referenz statt der internen zu verwenden?
Besser ist es ratiometrisch zu messen. Dazu die Referenzspannung für den Spannungsteiler und den Referenzspannungseingang des AD-Wandlers benutzen. Hier mal ein Beispiel von Microchip (AN1154) http://ww1.microchip.com/downloads/en/Appnotes/00001154B.pdf
M. G. schrieb: > Ich habe nun den NTC mit einem 100k (0,05%, 10ppm) Widerstand > ausgetauscht. Als Ergebnis erhalte ich einen stabilen Wert von 100107 > Ohm - konstant über die letzten Stunden. Na das sieht doch schonmal gut aus. Ich würde aber den Sensor und Referenzwiderstand vertauschen, d.h. den Sensor an GND anschließen und auch über ein geschirmtes Kabel. Rechnerisch sollte das ja kein Problem sein.
noreply@noreply.com schrieb: > Bitte nicht falsch verstehen. Ich meine den Vorschlag ernst Na dann nix für ungut! :D "Esoterik" und der Allgemeine Unglaube, der mir hier bei diesem Thema, bereits schon einmal massiv entgegen schlug.....
M. G. schrieb: > Wie im Bild gezeigt, schwankt die gemessene Temperatur zwischen 12,1 und > 12,5°C und pendelt immer hin-und her. Die Temperatur ist aber bei 12,7°C > konstant. > > Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten? Leider fehlt bei deinem Graphen oben die Zeiteinteilung. Aber meine Vermutung ist folgende: Im Normalzustand fliest ein relativ konstanter Strom über den NTC und den 100k Widerstand. Dadurch erwärmt sich der NTC ein wenig. Durch die Messung mit dem STM wird nun der interne Widerstand dessen ADC-Eingang parallel zum 100k Widerstand geschalten. Zwar puffern die Kondensatoren und könnten so einen Spannungsabfall verhindern. Allerdings steigt der Stromfluss und damit die Erwärmung am NTC. Bei so genauen Messungen könnte das schon eine große Auswirkung haben. Alternativ gleich was integriertes nutzen, z.B. MAX31725?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.