Forum: Mikrocontroller und Digitale Elektronik Präzise Temperaturmessung mit 12Bit-ADC und NTC


von M. G. (ixil96)


Angehängte Dateien:

Lesenswert?

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?

von Andras H. (kyrk)


Lesenswert?

Gibt es in der nähe Heizungen? Wenn ja, dann schwankt die Temperatur 
deswegen.

von Andras H. (kyrk)


Lesenswert?

Kannst du auch alle 10 Sekunden messen? Damit wir sehen ob das nicht 
irgendwie eine aliasing ist.

von M. G. (ixil96)


Lesenswert?

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.

von Andreas B. (bitverdreher)


Lesenswert?

Wie lange dauert denn ein Zylus?
Wo mißt Du da genau? Isolierter temperierter Raum?

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

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.

von Ingo Less (Gast)


Lesenswert?

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...

von Ingo Less (Gast)


Lesenswert?

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.

von M. G. (ixil96)


Lesenswert?

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.

von Ingo Less (Gast)


Lesenswert?

Ja ok, kann man machen. Noch eine Frage: Um wie viele LSB ändert sich 
eigentlich der ADC-Rohwert?

von Klaus R. (klara)


Lesenswert?

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

von noreply@noreply.com (Gast)


Lesenswert?

Wie hoch ist die Samblefrequenz?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
von Ingo Less (Gast)


Lesenswert?

Lothar M. schrieb:
> tastest du den Eingangswert
> ab?
Alle 10min, steht ganz oben ;)

von M. G. (ixil96)


Lesenswert?

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.

von Teo D. (teoderix)


Lesenswert?

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°!)

von Jacko (Gast)


Lesenswert?

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?

von Pieter (Gast)


Angehängte Dateien:

Lesenswert?

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?

von noreply@noreply.com (Gast)


Lesenswert?

Jetzt wird es esoterisch.

Über den Sensor eine Metallkappe drüber.

Powered by teoderix.

von Wolfgang (Gast)


Lesenswert?

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?

von Teo D. (teoderix)


Lesenswert?

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
von noreply@noreply.com (Gast)


Lesenswert?

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.

von PittyJ (Gast)


Lesenswert?

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.

von GHz N. (ghz-nerd)


Lesenswert?

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?

von H. B. (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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.

von Teo D. (teoderix)


Lesenswert?

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.....

von Chris (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.