Störungen bei temperaturmessung minimieren

#7029022
Lesenswert?

Hallo,
Ich habe in einem großen Schaltnetzteil (Cisco WS-CAC 3000W) einen 
Temperatursensor (TMP36) befestigt, um die Temperatur eines Kühlkörpers 
mit einem Arduino Uno (bzw später nur Amega3328p) zu messen. Das Problem 
ist nur, dass in diesem netzteil natürlich einiges an Störungen 
verursacht wird, wodurch die gemessene Temperatur stark schwankt. Ich 
habe schon ein geschirmtes Kabel verwendet, was die Störungen aber nur 
abgeschwächt hat.
.) Die Schirmung hört ca 1cm vor den Anschlüssen des TMP36 auf, besser 
wäre, wenn sie bis zum Sensor selbst gehen würde, richtig?
.) Wie wichtig sind kurze Kabel? Gerade sind es noch ca. 30cm, kann ich 
aber später auf 10cm kürzen, wenn das ganze mal eingebaut ist.
.) Was mache ich mit der Schirmung? Der Ausgang des netzteils ist 
potentialfrei und das soll auf so bleiben. Soll ich also die schirmung 
mit Masse des Ausgangs oder mit Erde verbinden?
.) Was ist mit einem LC- oder RC Tiefpass oder auch nur einem parallelen 
Kondensator direkt vor dem Atmega?

LG Julian
Gast #7029072
Lesenswert?

Julian D. schrieb:
> Ich habe in einem großen Schaltnetzteil (Cisco WS-CAC 3000W) einen
> Temperatursensor (TMP36) befestigt, um die Temperatur eines Kühlkörpers
> mit einem Arduino Uno (bzw später nur Amega3328p) zu messen. Das Problem
> ist nur, dass in diesem netzteil natürlich einiges an Störungen
> verursacht wird, wodurch die gemessene Temperatur stark schwankt.

Warum verwendest du in einer gestörten Umgebung ausgerechnet einen 
Sensor, der für Störungen besonders empfänglich ist?
In einem Sensor mit integriertem Digitalinterface müsstest du das 
störempfindliche Analogsignal gar nicht erst über lange Kabel schicken.
Probiere mal einen DS18B20
#7029228
Lesenswert?

> Warum verwendest du in einer gestörten Umgebung ausgerechnet einen
> Sensor, der für Störungen besonders empfänglich ist?
Das ist der einzige Temperatursensor den ich zuhause habe und ich dachte 
mir dass er gut geeignet ist.

> Probiere mal einen DS18B20
Ich denke da macht das Gehäuse Probleme. Ein großes rundes stahlröhrchen 
kann die Wärme vom kühlkörper bei weitem nicht so gut und schnell 
aufnehmen wie die flache Seite eines TO92-Sensors, besonders wenn das 
auch noch im luftstrom eines Lüfter sitzt.
Gast #7029244
Lesenswert?

Julian D. schrieb:
> Ich denke da macht das Gehäuse Probleme. Ein großes rundes stahlröhrchen
> kann die Wärme vom kühlkörper bei weitem nicht so gut und schnell
> aufnehmen wie die flache Seite eines TO92-Sensors

Genau deshalb wird der DS18B20 u.a. in einem TO92-Gehäuse verkauft
https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
https://www.ebay.com/itm/392649133555
Gast #7029257
Lesenswert?

Hallo,

Julian D. schrieb:
> um die Temperatur eines Kühlkörpers
> mit einem Arduino Uno (bzw später nur Amega3328p) zu messen. Das Problem
> ist nur, dass in diesem netzteil natürlich einiges an Störungen
> verursacht wird, wodurch die gemessene Temperatur stark schwankt

Ich habe den Verdacht daß entweder der (Zwischen-)Kühlkörper den Du 
messen willst auf Drain Potential des Schalttransistors hängt oder die 
Leitungen starke Magnetfelder auffangen.

Im ersteren Fall sind es elektrische Felder Der Sensor muß vollständig 
Geschirmt und der Schirm auf Gehäusepotential des Netzteils gelegt 
werden.
Im zweiten Fall kannst Du nur die Leitungsverlegung beeinflussen. 
(Verdrillen, eng benachbart am Metall-Gehäuse verlegen).

Julian D. schrieb:
> Danke, mache ich morgen. Und soll die Schirmung auf Masse oder Erde?
Erde ist nur Personenschutz vor gefährlichen Berührspannung. (Hat mit 
der Schaltungsfunktion nichts zu tun).
Ein Schirm nach der reinen Lehre verbindet das Metallgehäuse um den 
Sensor (Netzteil?) mit dem Metallgehäuse der Auswerteschaltung 
(Arduino?).
Die Leitungen Gnd, Signal, Versorgung sind dann in einem Faradayschen 
Käfig und brauchen keine (funktionale) Verbindung zum Gehäuse.

Was ich befürchte:
mit deiner zusätzlichen Leitung verringerst Du die erforderlichen 
Isolationsabstände zu spannungsführenden Teilen.

- Ist der Kühlkörper den Du messen willst niederohmig geerdet? 
(Personenschutz)
- Hast Du genügend Abstand zu stark stromdurchflossenen Leitungen 
(Drossel, Schalttransistor, Freilaufdiode, Snubber).
- Wie sind die Leitungen verlegt?

Gruß Anja
#7029453
Lesenswert?

Wolfgang schrieb:
> Genau deshalb wird der DS18B20 u.a. in einem TO92-Gehäuse verkauft
> https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
> https://www.ebay.com/itm/392649133555
Das würde gehen. Wenn ich die Störungen bei dem TMP36 nicht wegkriege 
werde ich mir den kaufen und einen Monat warten (juhuu)

Anja schrieb:
> Ich habe den Verdacht daß entweder der (Zwischen-)Kühlkörper den Du
> messen willst auf Drain Potential des Schalttransistors hängt oder die
> Leitungen starke Magnetfelder auffangen.
Letzteres ist wahrscheinlicher, da der kühlkörper potentialfrei ist 
(isolationspads).
> Im ersteren Fall sind es elektrische Felder Der Sensor muß vollständig
> Geschirmt und der Schirm auf Gehäusepotential des Netzteils gelegt
> werden.
> Im zweiten Fall kannst Du nur die Leitungsverlegung beeinflussen.
> (Verdrillen, eng benachbart am Metall-Gehäuse verlegen).
Mein jetziges Kabel ist zwar geschirmt aber nicht verdrillt. Anfangs 
habe ich ein verdrilltes ungeschirmtes verwendet und da waren die 
Störungen ein bisschen stärker. Vielleicht werden die durch magnetische 
UND elektrische Felder verursacht.
> Was ich befürchte:
> mit deiner zusätzlichen Leitung verringerst Du die erforderlichen
> Isolationsabstände zu spannungsführenden Teilen.
>
> Ist der Kühlkörper den Du messen willst niederohmig geerdet?
Nein, potentialfrei.
> (Personenschutz)
> Hast Du genügend Abstand zu stark stromdurchflossenen Leitungen
> (Drossel, Schalttransistor, Freilaufdiode, Snubber).
Darauf habe ich jetzt ehrlich gesagt nicht besonders geachtet, werde 
aber dann darauf schauen.

2aggressive schrieb:
> Dieses bei deiner Konstruktion zu erwartende Problem wurde meines
> Erachtens nach schon in deinem anderen Faden angesprochen:
> https://www.mikrocontroller.net/attachment/551769/20220328_105724.jpg
> Beitrag "Re: Temperatursensor mit sekundenkleber befestigen"
> Beitrag "Re: Temperatursensor mit sekundenkleber befestigen"
Da ging es um die Verfälschung der Messwerte durch den luftstrom, ist 
aber schon gelöst. Hier geht es um die Störungen.
Gast #7029469
Lesenswert?

Julian D. schrieb:
> ... und einen Monat warten (juhuu)

Wenn dich die (max.) Lieferzeit von diesem Anbieter stört, bestell den 
Sensor doch woanders. Den gibt es an fast jeder Straßenecke. Mouser hat 
noch mehr als 47000 im Lager und liefert dir sicher gerne einige davon - 
innerhalb weniger Tage.
Gast #7029503
Lesenswert?

Julian D. schrieb:
> Da ging es um die Verfälschung der Messwerte durch den luftstrom, ist
> aber schon gelöst.
Ok.
>Hier geht es um die Störungen.
Wie sehen die denn aus? Hat dein TMP36 einen Lastwiderstand am seinem 
Ausgang, zB 100k gegen GND?


Eine "Brechstangenlösung" (USING TMP35/TMP36/TMP37 SENSORS IN REMOTE 
LOCATIONS) findet sich im Datenblatt

https://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf

auf Seite15.
Gast #7029621
Lesenswert?

Julian D. schrieb:
> Nein, potentialfrei.

Potentialfrei ist bei HF eine Illusion.

Der Schalttransistor koppelt mit einigen pF den kompletten Spannungshub 
des Drains auf den Kühlkörper. Es gibt also einen kapazitiven 
Spannungsteiler zwischen der parasitären Koppelkapazität des FETs und 
der parasitären Koppelkapazität des Kühlkörpers zur Umgebung (Gehäuse).

Gruß Anja
#7029683
Lesenswert?

Nachdem mir bei dem Versuch, den schrumpfschlauch vom Temperatursensor 
zu lösen, die anschlussbeinchen abgebrochen sind, werde ich jetzt den 
DS18B20 kaufen. Das blöde ist nur, dass alle Angebote die ich bis jetzt 
gefunden habe, entweder über 10eur kosten oder eine ewig lange 
lieferzeit haben. Bei digikey bin ich mit 18eur Versand (AUT) bei 
28eur...findet jemand einen Verkäufer der den billig und mit kurzer 
Lieferzeit verkauft? Oder gibt es ähnliche Temperatursensoren für den 
arduino?

LG Julian
Gast #7029884
Lesenswert?

Kalle S. schrieb:
> Verstehe das lieferproblem nicht.
> Einfach unter google schauen. Genügend Angebote ab 2 EUR

Hoffentlich ist dann auch drin was drauf steht. Es gibt mehr ale einen 
Bericht, dass die nicht echt sind oder gar einfach Tranistoren 
umgelasert wurden.

Im wesentlichen hatte ich Glück, aber auch schon Halbleiter vom 
Chinesen, die Fake oder nicht maßhaltig waren.
#7029941
Lesenswert?

Thomas W. schrieb:
> Segor und Barrybase liefern fuer 2.4Eur (Berrybase, to-92) oder 18B20 in
> Edelstahlrohr (segor, 5Eur).

Der von berrybase hört sich gut an. Ich habe da noch etwas interessantes 
gefunden.
https://www.berrybase.de/sensoren-module/temperatur/bmp280-breakout-board-2in1-sensor-f-252-r-temperatur-und-luftdruck?c=98

Temperatur und luftdruck über I2C. Luftdruck brauche ich natürlich 
nicht, aber könnte ich den auch benutzen? Der wäre nämlich billiger zu 
kriegen. Das Gehäuse des bmp280 ist klein und aus metall, sollte also 
die Wärme gut aufnehmen können.
Gast #7029971
Lesenswert?

Julian D. schrieb:
> 
https://www.amazon.de/gp/product/B07FRW7YTK/ref=ox_sc_act_image_1?smid=A1X7QLRQH87QA3&th=1
>
> Besteht da schon fake-gefahr?

Wenn Du sie zeitnah testen kannst, ist das Risiko überschaubar, dank 
Amazon. Auch zu den China-Boards mit BMPxxx gibt es kritische 
Kommentare, ich tue mich aber schwer, ob die wirklich schlecht oder die 
Käufer zu blöd sind.

Wie wäre das eigentlich mit einem simplen NTC?

Ich habe eine Anwendung gebaut, wo ich bei xx°C einen Lüfter einschalte, 
bei yy°C wieder aus bzw. bei zz°C die Notabschaltung veranlasse. Die 
Temperaturen zwischendurch interessieren mich nicht, sowas ist mit einem 
K-Fühler relativ einfach zu justieren.
Angehängte Dateien:
#7030160
Lesenswert?

Na wenn das so ist...habe mir jetzt aus einem PC-Mainboard den NTC 
ausgebaut der die CPU-Temperatur misst. Er nennt sich 103BK0, ich finde 
aber kein DB. Darum habe ich ein paar kleine Messungen durchgeführt, mit 
einem (digitalen) Thermometer und dem NTC am multimeter in einem Topf 
mit Wasser, welches ich dann am Herd erwärmt habe:

12°C....16,9k
21°C....11,7k
41°C....5,6k
45°C....4,8k
56°C....3,4k
57°C....3,3k
100°C...1k

Dann habe ich eine kennlinie aufgezeichnet, siehe Bild. Das ist nicht 
sonderlich genau, aber +-3°C kann ich verkraften.
Jetzt stellt sich die Frage, ob ich mir die Mühe machen soll eine Formel 
für diesen graph zu ermitteln oder ob ich die Werte einfach in einem 
Array abspeichern soll. Ich denke letzteres wäre einfacher, da mich eh 
nur die Werte zwischen ca. 20 und 60°C interessieren. Das wären dann je 
40 Werte für Temperatur und Widerstand.
Dann würde ich gerne wissen, welchen Widerstand ich als "shunt" nehmen 
soll. Der ntc hat bei 25°C den nennwiderstand von 10kOhm, steckt 
anscheinend auch im Namen: 103bk0 - 103 = 10^3(Ohm). Soll ich einfach 
10k als shunt nehmen? Oder weniger damit mehr Strom fließen kann und das 
ganze störungsunempfindlicher wird?
Und noch was: soll ich die Spannung am ntc oder am shunt messen? Beim 
shunt werden wahrscheinlich auch weniger Störungen auftreten, wenn er 
beim arduino und nicht beim shunt sitzt, oder?

LG Julian
Angehängte Dateien:
Gast #7030201
Lesenswert?

Julian D. schrieb:
> Dann würde ich gerne wissen, welchen Widerstand ich als "shunt" nehmen
> soll.
Scheint ein normaler 10k NTC zu sein. (B25/85 ca 3900)

nicht Shunt sondern "pull up" Widerstand.
Der Widerstand muß an die Referenzspannung des ADCs angeschlossen werden 
(ratiometrische Messung). Das kann auch die Versorgungsspannung des 
Prozessors sein wenn diese als Referenz verwendet wird.

An den ADC-Eingang dann ein 100nF gegen (Analog-)Masse.

Die beste linearität und Empfindlichkeit (Auflösung) ergibt sich wenn 
der Pull-up = geometrischer Mittelwert aus minimum und maximum des 
gewünschten Meßbereichs ist.
Annahme 20 Grad = 12K5 und 60 Grad = 2K5 -> Pull up = sqrt(12K5*2K5) = 
5K6.
Bei 30 Grad Temperaturdifferenz habe ich üblicherweise 0.3 Grad 
Linearitätsabweichung. Bei 40 Grad dürften es etwa 0.5 Grad sein.
Eine Lineare interpolation aus Spannung zu Temperatur (fallende 
Kennlinie) reicht also.

Der NTC hat dann etwa 0.1 Grad Auflösung bei einem 10 Bit A/D-Wandler.
(was etwa Faktor 5 besser ist als der TMP).

Gruß Anja
Gast #7030242
Lesenswert?

Julian D. schrieb:
> Jetzt stellt sich die Frage, ob ich mir die Mühe machen soll eine Formel
> für diesen graph zu ermitteln oder ob ich die Werte einfach in einem
> Array abspeichern soll.

So viel Aufwand wäre das nicht. Einfach die Daten in eine 
Tabellenkalkulation eingeben und die Parameter B und R0 per Solver 
bestimmen.
https://en.wikipedia.org/wiki/Thermistor#B_or_%CE%B2_parameter_equation

Was sinnvoll ist, hängt davon ab, wie teuer die Implementation der 
Rechnung im Vergleich zur Tabelleninterpolation ist.
Gast #7030658
Lesenswert?

Julian D. schrieb:
> So, habe es jetzt endlich geschafft, mit einem
> Exponentialfunktion-rechner eine Formel zu ermitteln, die von der
> genauigkeit her in dem nötigen Bereich in Ordnung ist:
> t=87,31706*e^(-0,000125076*R)
> t...Temperatur
> R...Widerstand
> e...Konstante(2,71828...)
> mal schauen ob ich das ganze in den Arduino bekomme.

Du hast ein paar Stützpunkte an einem warmen Topf Suppe ermittelt und du 
brauchst eine Genauigkeit von +/- 3°C.
Wäre es nicht eine prima Idee erst einmal stabile und reproduzierbare 
Werte aus dem AD-Verdauungstrakt des Controllers zu extrahieren?

PS. 98,15443421% aller Berechnungen schleppen unnötig viele 
Nachkommastellen mit sich herum.
Gast #7030743
Lesenswert?

Julian D. schrieb:
> mal schauen ob ich das ganze in den Arduino bekomme.

Wozu der Umweg über den Widerstand und die Exponentialfunktion.
Dein ADC mißt das Spannungsverhältnis von Eingangsspannung zu 
Referenzspannung und keinen Widerstand.

Auf der Spannungsebene ist das ganze über den kleinen Temperaturbereich 
relativ linear.

Gruß Anja
#7030854
Lesenswert?

Anja schrieb:
> Auf der Spannungsebene ist das ganze über den kleinen Temperaturbereich
> relativ linear.

Verstehe ich dich falsch? Wenn man eine Gerade durch die Punkte 25°C/10k 
und 60°C/3k zieht, gibt es teilweise Abweichungen von über 5°C. Und 
jetzt habe ich diese Formel schon mal, also bringt es nichts wenn ich 
sie ändere.

Hab den Sensor gerade verbaut und alles getestet - und es 
funktioniert!!! Die angezeigte Temperatur ändert sich nicht, nicht mal 
beim einschalten des netzteils, wo der Wert beim TMP sogar bis -10°C 
runtersprang.

Danke an alle hier!
LG Julian
Beitrag #7030857 wurde von einem Moderator gelöscht.
Gast #7030944
Lesenswert?

Julian D. schrieb:
> Soll ich einfach
> 10k als shunt nehmen? Oder weniger damit mehr Strom fließen kann und das
> ganze störungsunempfindlicher wird?

>> nicht Shunt sondern "pull up" Widerstand.

Das ist Deine Rechenaufgabe: Der NTC und der Festwiderstand bilden einen 
Spannungsteiler. Trage die gemessenen sieben Werte plus einen 
Festwiderstand  von 10k in eine Tabellenkalkulation und schaue Dir an, 
welche Spannungen sich dabei ergeben.

Nun veränderst Du in der Tabelle den 10k auf andere Werte - dann wird 
erkennbar, welcher Wert zum gewünschten Meßbereich bzw. zum Bereich des 
A/D-Eingangs vom µC passt.

Je nach Anforderung kannst Du das Teilerverhältnis so hinlegen, dass 
außerhalb eines Nutzfensters einfach nur Überläufe "kalt" oder "kritisch 
warm" gezeigt werden, dafür aber der interessierende Bereich eine 
bessere Auflösung bekommt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren