Forum: Mikrocontroller und Digitale Elektronik DS18B20 wird heiß und schwankt


von Michael M. (michael94)


Lesenswert?

Hallo,

für ein kleineres Projekt habe ich 7 DS18B20 Temperatursensoren im 
normalen Modus (mit 4,7 kOhm Pullup-Widerstand) an einem Arduino Uno 
hängen und zusätzlich noch 3 Pumpen über eine Darlington-Schaltung an 
den analogen Pins um diese per Pulsweitenmodulation zu regeln.

Anfangs liefen die Sensoren noch normal, aber nachdem ich jetzt wieder 
einen Test gefahren habe (die Polung ist korrekt, habe es mehrfach 
überprüft und die Sensoren zeigen auch reale Werte an) fangen diese an 
sich zu erhitzen ohne erkennbaren Grund.

Bereits etwas länger habe ich zudem den Fehler das beim Zuschalten der 
Pumpen über die PWM-Pins die Sensoren extrem Schwanken und die meiste 
Zeit eigentlich nicht richtig funktionieren; es schwankt zwischen dem 
richtigen aktuellen Temperaturwert und den internen Fehlerwerten (-127° 
und 85°) die laut Hersteller bedeuten das der Sensor keine richtige 
Stromversorgung mehr hat.
Da die Pumpen vorher über eine andere Transistorschaltung mit 
Glättkondensator betrieben wurden, dachte ich das Problem läge daran das 
die Schaltung den analogen Pins zuviel Strom absaugt, einerseits durch 
fehlen eines Basisvorwiderstandes und durch die Stromspitze der an den 
Kondensatoren beim Ladevorgang entsteht.

Um das Problem zu umgehen hatte ich die einfache Transistorschaltung 
durch eine Darlington-Schaltung ausgetauscht die nur noch maximal 4 mA 
pro PWM-Pin erhält.

Leider tritt das Problem mit den Schwankungen immer noch auf, trotz 2,8 
kOhm Vorwiderstandes am PWM-Pin.

Hat vielleicht jemand eine Idee woran es liegen könnte oder bereits 
ähnliche Probleme gehabt mit den Sensoren?

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

4,7k pullup ist je nach Leitungslänge zuviel, ich musste nach 
anfänglichem Erfolg mit 2,2k auch auf 1,5k runter.

Sorge für stabile µC Versorgung und ordentlicher PWM Ansteuerung und 
deren Versorgung.

Heiss darf dein DS nie werden, da ist irgendwo ein dicker Fehler, 
vielleicht fragst du auch zu oft ab, das erhöht die Chiptemperatur, aber 
NIE zu HEISS

: Bearbeitet durch User
von Michael M. (michael94)


Lesenswert?

Schonmal danke für die schnelle Antwort, welche Leitungslänge hattest du 
bei deiner Anwendung um einen 1,5k Pullup zu benuzten? In meinem Fall 
dürften das maximal 1,5 Meter sein für den am weitesten entfernten 
Sensor.

Was halt seltsam ist das es erst plötzlich angefangen hat ohne das am 
Code oder der Hardware der Sensoren was geändert wurde.
Die Temperatur steigt auch nicht schlagartig wie bei einem 
Kurzgeschlossenen Widerstand, sondern schätzungsweise mit 0,3° pro 
Sekunde langsam an.

von Timo (Gast)


Lesenswert?

Kannst du bitte einen Schaltplan und Bilder vom Aufbau hochladen? Das 
würde alles viel einfacher machen.


Michael M. schrieb:
> für ein kleineres Projekt habe ich 7 DS18B20 Temperatursensoren im
> normalen Modus (mit 4,7 kOhm Pullup-Widerstand) an einem Arduino Uno
> hängen und zusätzlich noch 3 Pumpen über eine Darlington-Schaltung an
> den analogen Pins um diese per Pulsweitenmodulation zu regeln

Nur um Sicher zu gehen: Unter "normalem Modus" verstehst du, dass die 
Sensoren mit 5V versorgt werden?

Woher kommen die 5V für die Sensoren? Vom Arduino? Werden die Pumpen 
auch aus diesen 5V Versorgt? Ansonsten wo kommt dafür die 
Versorgungsspannung her? Wo bekommen die Darlington Schaltungen ihre 
Versorgung her?

Hast du ausreichend Abblockkondensatoren auf der Versorgung? 100nF an 
jedem DS18B20 ist zu empfehlen.

Ich vermute du hast Spannungsspitzen/-einbrüche auf der Versorgung.

von allu (Gast)


Lesenswert?

Joachim B. schrieb:
> vielleicht fragst du auch zu oft ab

Den Fehler hatte ich mal gemacht, die Temperatur wurde dann 2 bis 3 Grad 
nach eingen Minuten zu hoch angezeigt. Aber richtig heiss wurden die 
Sensoren nicht.

von Pete K. (pete77)


Lesenswert?

Michael M. schrieb:
> Bereits etwas länger habe ich zudem den Fehler das beim Zuschalten der
> Pumpen über die PWM-Pins die Sensoren extrem Schwanken und die meiste
> Zeit eigentlich nicht richtig funktionieren; es schwankt zwischen dem
> richtigen aktuellen Temperaturwert und den internen Fehlerwerten (-127°
> und 85°) die laut Hersteller bedeuten das der Sensor keine richtige
> Stromversorgung mehr hat.
> Da die Pumpen vorher über eine andere Transistorschaltung mit
> Glättkondensator betrieben wurden, dachte ich das Problem läge daran das
> die Schaltung den analogen Pins zuviel Strom absaugt, einerseits durch
> fehlen eines Basisvorwiderstandes und durch die Stromspitze der an den
> Kondensatoren beim Ladevorgang entsteht.

Glaskugel:
Beim Zuschalten der Pumpen gibt es Spannungseinbrüche oder andere 
Effekte auf der DS1820 Leitung und da Du den CRC nicht abfragst werden 
Dir die falschen Werte angezeigt.

Hier muss ein Bild vom Aufbau her.

von xXx (Gast)


Lesenswert?

Darf man fragen wo genau die Sensoren plaziert wurden?

Könnte doch sein, dass die Motoren Heiß werden und somit der
Temperatursensor heiß wird.
Vorausgesetzt die Sensoren sind nahe der Wicklung am Gehäuse  plaziert 
worden.

von Peter D. (peda)


Lesenswert?

Michael M. schrieb:
> Da die Pumpen vorher über eine andere Transistorschaltung mit
> Glättkondensator betrieben wurden

PWM + Kondensatoren sind selten eine Lösung, aber immer das Problem. Da 
fließen riesen Ladeströme und je nach Leitungsführung mit über die 
Sensormasse oder bringen das Netzteil zum Ausrasten.

Michael M. schrieb:
> fangen diese an
> sich zu erhitzen ohne erkennbaren Grund.

Ja, die haben Überspannung gesehen und sind teilweise durchlegiert. 
Wegschmeißen.
Gönn dem 5V-Regler ne Transzorb, dann opfert die sich zuerst.

von Michael M. (michael94)


Lesenswert?

Die Sensoren sind weit genug von den Pumpen entfernt, ein Fremderhitzen 
ist vollkommen ausgeschlossen, man merkt zudem wenn man sie in der Hand 
hält das sie langsam wärmer werden.

Das sie durchgebrannt sind scheint zumindest für das Problem der 
Selbsterhitzung eine mögliche Lösung zu sein, da mir kurz vorher ein 
Spannungsimpuls beim Abschalten der Pumpen (hatte die Freilaufdiode 
vergessen) einen Transistor gebraten hat. Werde heute Abend mal in den 
Kisten stöbern ob noch irgendwo ein Sensor rumliegt und ihn dann testen.

Die Darlington-Schaltung wird über ein Netzteil mit 12V und 150 VA 
versorgt (Wird vorher über einen Gleichrichter und Kondensator 
geschickt), nur die Basis des dritten Transistors (werde auch nachher 
einen Schaltplan hochladen) hängt am Arduino über einen Vorwiderstand.

Die Versorgung der Sensoren erfolgt über den Arduino +5V Pin, werde aber 
nachher noch eine Variante testen indem ich die Sensoren über einen 5V 
Wandler direkt vom Netzteil versorgen lasse.

von Michael M. (michael94)


Lesenswert?

Ok nach kurzen Test scheinen die Sensoren einfach kaputt zu sein, zwei 
andere funktionieren in der Anwendung problemlos und werden nicht warm 
(also schonmal direkt nachbestellen).

Um zu testen ob ich Spannungseinbrüche auf der Versorgungsleitung der 
Sensoren habe hab ich mal nachgemessen, das Spannungsmessgerät zeigte 
aber keine an und die Werte waren auf einmal stabil.

Nachdem ich noch einen Kondensator Parallel zur Stromversorgung der 
Sensoren geschaltet habe kommt es auch zu keinen Schwankungen mehr und 
die Sensoren arbeiten einwandfrei.

Anscheinend war schon die interne Kapazität des Messgerätes ausreichend 
um die Störungen abzuschwächen und das gesamte Problem zu beheben.


Danke nochmals für die schnellen und guten Antworten an alle!

von (prx) A. K. (prx)


Lesenswert?

Michael M. schrieb:
> Schonmal danke für die schnelle Antwort, welche Leitungslänge hattest du
> bei deiner Anwendung um einen 1,5k Pullup zu benuzten? In meinem Fall
> dürften das maximal 1,5 Meter sein für den am weitesten entfernten
> Sensor.

4k7 reichen da locker aus.

von (prx) A. K. (prx)


Lesenswert?

Verrecken können die schon mal. An einer zig Meter langen simplen und 
unverdrillten Leitung gibts einen parasitär betriebenen Sensor, den ich 
in über 10 Jahren nun schon 2x getauscht habe. Der zog dann in beiden 
Fällen grad so viel Dauerstrom, dass der High-Pegel der Leitung an der 
Kante lief.

von Joachim B. (jar)


Lesenswert?

Michael M. schrieb:
> welche Leitungslänge hattest du
> bei deiner Anwendung um einen 1,5k Pullup zu benuzten?

72m gemischt Stern/Bus -> 7 Sensoren, parasitär gespeist.

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.