Forum: Analoge Elektronik und Schaltungstechnik Störungen bei temperaturmessung minimieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Julian D. (juli_elektronik)


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

von Helge (Gast)


Lesenswert?

Direkt am Sensor einen Abblockkondensator für die Versorgung.
Vor deinen ADC-Eingang einen Tiefpaß.

von Wolfgang (Gast)


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

von Julian D. (juli_elektronik)


Lesenswert?

Danke, mache ich morgen. Und soll die Schirmung auf Masse oder Erde?

von Julian D. (juli_elektronik)


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.

von df2ds (Gast)


Lesenswert?

Den DS18B20 gibts auch im TO92-Gehäuse!

von Wolfgang (Gast)


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

von Anja (Gast)


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

von Wolfgang (Gast)


Lesenswert?

df2ds schrieb:
> Den DS18B20 gibts auch im TO92-Gehäuse!

Drei Mal darfst du raten, was in den "runden stahlröhrchen" drin ist ;-)

von 2aggressive (Gast)


Lesenswert?

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"

von Julian D. (juli_elektronik)


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.

von Wolfgang (Gast)


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.

von Wolfgang (Gast)


Lesenswert?

... oder Digikey
https://www.digikey.de/de/products/detail/analog-devices-inc-maxim-integrated/DS18B20-T-R/1197286
p.s. Mouser hat irgendwelche Probleme (47.703 Auf Bestellung ???)

von 2aggressive (Gast)


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.

von Wolle G. (wolleg)


Lesenswert?

Wolfgang schrieb:
> ... oder Digikey
> 
https://www.digikey.de/de/products/detail/analog-devices-inc-maxim-integrated/DS18B20-T-R/1197286
> p.s. Mouser hat irgendwelche Probleme (47.703 Auf Bestellung ???)

gerade gelesen: Standardlieferzeit des Herstellers:  78 Wochen;
und Preise! 5,7€, Pollin sogar 7,x€
Die Dinger gab es "früher" für ca.2€

: Bearbeitet durch User
von Anja (Gast)


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

von Julian D. (juli_elektronik)


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

von Kalle S. (kallebmw)


Lesenswert?

Verstehe das lieferproblem nicht.

Einfach unter google schauen. Genügend Angebote ab 2 EUR

von Thomas W. (Gast)


Lesenswert?

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

Gruesse

Th.

von Manfred (Gast)


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.

von Julian D. (juli_elektronik)


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.

von Julian D. (juli_elektronik)


Lesenswert?

Hab's auch noch auf Amazon gefunden, gleich drei Stück ums selbe Geld 
(inkl. Versand).
https://www.amazon.de/gp/product/B07FRW7YTK/ref=ox_sc_act_image_1?smid=A1X7QLRQH87QA3&th=1

Besteht da schon fake-gefahr? Wenn nicht werde ich den nehmen.

von Manfred (Gast)


Angehängte Dateien:

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.

von Julian D. (juli_elektronik)


Lesenswert?

Mit einem ntc habe ich wieder das störungsanfällige analoge Signal wie 
beim TMP36.

von Manfred (Gast)


Lesenswert?

Julian D. schrieb:
> Mit einem ntc habe ich wieder das störungsanfällige analoge Signal wie
> beim TMP36.

Das bezweifele ich, da dass Gebilde deutlich niederohmiger ist.

von Julian D. (juli_elektronik)


Angehängte Dateien:

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

von Anja (Gast)


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

von Wolfgang (Gast)


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.

von Julian D. (juli_elektronik)


Lesenswert?

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.

von Norbert (Gast)


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.

von Anja (Gast)


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

von Julian D. (juli_elektronik)


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 vom Autor gelöscht.
von Anja (Gast)


Lesenswert?

Julian D. schrieb:
> Verstehe ich dich falsch?

Offensichtlich.
Rechne mal die Spannungen aus die sich bei den Temperaturen und 5K6 
Pull-Up Widerstand einstellen.

Gruß Anja

von Manfred (Gast)


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.

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.