Hallo,
ich experimentiere mit dem DS18s20-Sensor und möchte eigentlich die
Zimmertemperatur messen, wie das jeder 5Euro-Wecker auch tut.
Leider ist das dieser Sensor ein ziemlicher Sch****!
Im normalen Dauerbetrieb mit normaler (d.h. nicht-parasitärer
Spannungsversorgung) und Messungen alle 5s erhöht sich die Temperatur
ausgehend von der ersten Messung um 3°C. Wenn ich das Messintervall auf
1 Minute erhöhe, dann sond es "nur" noch 2°C.
Deutlich besser wird das ganz wenn ich auf parasitären Betrieb
umschalte. Bei einem Messintervall von 30 Sekunden habe ich 1°C
Temperaturunterschied.
Was muss ich tun, damit der Sensor sich möglichst garnicht erwärmt?
Gibt es einen "Idle-Befehl o.ä. in dem das Ding sich nicht mehr erwärmt?
Ganz Ehrlich: Mit jedem normalen NTC wäre das wesentlich genauer ....
Gruß
Andreas
Bist du absolut sicher dass sich der Sensor erwärt?!
Das sollte sicherlich nicht so sein, ist die Schaltung in Ordnung?
Auslesen auch ok? Hast du irgendwelche anderen Komponenten in der Nähe,
die sich eventuell aufheizen?
Hi,
"ist die Schaltung in Ordnung?"
Die Schaltung ist exakt nach Datenblatt - DQ-Leitung mit 4,7k nach +5V,
GND nach Masse und VDD abh. vom Betirebsmodus auf GND oder auf +5V.
"Auslesen auch ok? "
Ja, ich lasse mir parallel die Hex-Codes der Register anzeigen - Stimmt
alles!
"Hast du irgendwelche anderen Komponenten in der Nähe, die sich
eventuell aufheizen?"
JA, mein 5Euro-Wecker mit seiner Temperatur-Anzeige, der die richtige
Temperatur anzeigt.
Wie sieht es mit der Betriebsspannung aus?
5Volt ? Was meinst Du mit der Frage ?
Verbraucht das Teil evtl. zu viel Strom? Könnte der Chip durch ESD
Schaden genommen haben?
Es steht erstmal nirgens, dass der ESD-Empfindlich ist. Zweitens habe
ich mehrere, die sich alle so verhalten...
Gruß
Andreas
>Oder bau einen NTC an Deinen Controller
Naja, die Idee hatter der OP ja auch schon.
Sach mal OP, wo sitzt denn der Sensor? An einer Strippe oder auch auf
dem Steckbrett? Nicht dass die Probleme von einem verpolten Elko in der
Nähe herrühren, der noch wärmer wird...
Schalte mal einen Widerstand 33Ω in die VCC und "schaue" Dir den
Stromverbrauch an. 3 Grad wären ja so ca. 3mA.
Hi!
Hast du dich an die Zeit gehalten die du dem Sensor geben musst um die
Temperatur zu messen?
Erst muss die Messung gestartet werden, und nach einer bestimmten Zeit
darf die Temperatur erst ausgelesen werden.
Sonst misst der Temperatursensor nicht genau.
Klar, Mann. Endlich weiss die Welt, dass der DS18S20 "ein ziemlicher
Sch****" ist.
Er hat sich zwar millionenfach bewährt, aber dank UBoot-Stocki wissen
wir jetzt endlich was wirklich los ist.
Danke für diese Erkenntnis! Und weiterhin viel Erfolg unter der
Normal-Null-Linie, Du U-Boot-Fahrer.
N'abend,
"wo sitzt denn der Sensor? An einer Strippe oder auch auf dem
Steckbrett?"
Der Sensor sitzt in der Ecke des Steckbretts mit 4-5cm Abstand zu jedem
anderen Bauteil.
"Hast du dich an die Zeit gehalten die du dem Sensor geben musst um die
Temperatur zu messen?"
Yepp - Im Normalen Modus wird abgefragt, wann die Messung fertig ist -
Im Parasitären muss man lt. Datenblatt 750ms warten ...
"Er hat sich zwar millionenfach bewährt, aber dank UBoot-Stocki wissen
wir jetzt endlich was wirklich los ist."
Daher ja auch dieser Thread - vielleicht helfen ja die Tipps derer, bei
denn das Teil millionenfach funzt.
Gruß
Andreas
Also bei mir "werkeln" seit ca. 3 Jahren 16 von den Dingern im Haus
24*365. Ich habe heute gerade mal nachgeschaut und bin auf fast 37mio
Datensätze in meiner Oracle-DB gekommen. Keine Ahnung wovon Du sprichst
wenn Du "Sch..." meinst. Aber sicher nicht diese Sensoren. Vielleicht
"UBoot-Stocki-Schr..."?
Ich hatte das gleiche Problem, als ich mit den Dingern anfing. Ich ollt
ihn auch schon in die Tonne hauen. Hatte soviel probiert und keine
Besserung. Bei mir war es dann die nicht spürbare Erwärmung der Platine.
Auf dieser war der AVR und auch ein 7805. Es war mit den Händen keine
Erwärmung zu fühlen, woher auch. Als ich den Sensor an 50cm Kabel
gelötet hatte, waren diese Probleme weg. Das Ding hört die Flöhe husten
;-)
900ss
Also ich hatte ähnliche Probleme wie U-Boot-Stocki.
Sensor hing an einem Adapter für die serielle Schnittstelle. Mit jeder
Messung stieg die Temperatur leicht an, der Sensor wurde dabei leicht
warm :-/
Per Software hab ich dann einen Korrekturfaktor von 2-3°C abgezogen.
War auch ein wenig enttäuscht von den Dingern
Gruß
Roland
Das Problem liegt nicht bei den Sensoren, sondern vor dem Bildschirm ;-)
Wenn man den Sensor erwärmt, dann zeigt er das artig an.
Wie gesagt, z.B. an einer Leitung angelötet funktioniert er sehr gut.
In einer Platine eingelötet zeigt er auch die Erwärmung der Platine an,
auch wenn man ment, die wird ja garnicht warm. Ein zwei Grad reichen. So
war es jedenfalls bei mir.
@U-Boot-Stocki: Probier das Ding an einer Leitung.
900ss
UBoot-Stocki wrote:
> Ganz Ehrlich: Mit jedem normalen NTC wäre das wesentlich genauer ....
Das bezweifle ich. Wie setzt du einen NTC denn ein, damit er genau ist?
Out of the box oder nach einer Kalibrierung, mit der du wartest bis sich
ein thermisches Gleichgewicht eingestellt hat?
Dein Problem ist offenbar die Eigenerwärmung des Sensors, wenn er aktiv
ist. Die thermische Anbindung an die Umgebungsluft ist halt sehr
schlecht. Ein typischer Wert für ein TO92-Gehäuse sind 250K/W. Da
wundert eine Erwärmung um 3°C beim Dauerbetrieb nicht mehr.
Es gibt eigentlich drei Möglichkeiten: Sehr selten Messen, die Anbindung
an das Messobjekt verbessern (Kühlkörper) oder den Messwert um einen
entsprechenden Wert korrigieren. Aus Betriebsspannung, Strombedarf,
Dauer einer Messzyklus, Messfrequenz und der o.a. Wärmewiderstand könnte
man das direkt berechnen.
Im datenblatt ist angegeben wie oft man messen darf um die
eigenerwärmung in grenzen zu halten. Ich hab den wert gerade nicht im
Kopf.
Dein Problem wird wirklich etwas sein, dass wärme abstrahlt (das geht
nicht nur durch wärmeübertragung in der Luft sondern auch über
Infrarot-strahlung)
Und wenn du deinen 7805 mit 12V am Eingang befeuerst wird der sicher
einige grad wärmer und diese Temperatur strahlt der halt ab, und diese
wird auch irgendwo wieder landen z.b. auch auf deinem Sensor, also mach
maln Kabel dran und gut ist!
@EFI
Wenn Du 37Mio Datensätze über drei Jahre gesammelt hast und ich davon
ausgehe, daß jeder Datensatz den Meßwert eines Sensors darstellt, dann
sind das 88 Messungen pro Stunde und Sensor. Also mehr als 1x pro
Minute.
Was mich jetzt mal interessiert... wozu braucht man ein so detailliertes
Temperatur-Logging?
Gruß
Christoph
Guten Morgen,
"Keine Ahnung wovon Du sprichst
wenn Du "Sch..." meinst. Aber sicher nicht diese Sensoren."
OK - dann gib mir doch bitte einen Tipp wie oft Du die Teile abfragst
und wie Du sie verschaltet hast. Nutzt Du den parasitären Mode ?
Schaltest Du nach der Messung die Sensoren auf "GND" ?
Fragen über Fragen - Detail würden mich interessieren.
Gruß
Andreas
Das "Problem sitzt vor dem Bildschirm" kann ich beim DS18S20
nachvolziehen ;-)
Ich muss nur die Hand in die Nähe des Sensors bringen und die gemessene
Temperatur steigt.
Werner B. wrote:
> Das "Problem sitzt vor dem Bildschirm" kann ich beim DS18S20> nachvolziehen ;-)> Ich muss nur die Hand in die Nähe des Sensors bringen und die gemessene> Temperatur steigt.
Stimmt, so ist es bei mir auch.
@U-Boot-Stocki:
Ich betreibe meine Sensoren im Parasite-Mode und frage sie alle 2
Sekunden ab. Funktioniert perfekt.
900ss
Also Maxim gibt die Genauigkeit des Sensors mit +-0,5 Grad an, da kann
es unmöglich sein, dass die Eigenerwärmung 3 Grad ausmacht! Ich habe im
Labor schon einige Sensoren in Bezug auf Eigenerwärmung mit
verschiedenen Strömen ausgemessen und eine Eigenerwärmung von 3 Grad war
nie zu messen. Die Norm gibt zum Beispiel einen maximalen Strom für den
PT1000 von 10mA vor, damit kein Fehler durch Eigenerwärmung entsteht.
Und 10mA ist schon verdammt viel. Ich habe bisher immer mit 1mA
gearbeitet und die Ergebnisse waren super.
Ich würde den Sensor einfach mal austauschen und in einiger Entfernung
von deiner Elektronik betreiben.
Viel Erfolg!
Laut DBL werden im Active-Mode 1-1,5mA benötigt
1mA @5V = 5mW
5mW * 250K/W = 1,5°C
Der Sensor (SMD SO8) befand sich bei mir alleine auf einem Stück
Lochrasterplatine (zwecks mechanischer Stabilisierung). Von da gingen
dann 2 Drähte zu meiner Auswertschaltung.
@tim
Ein PT1000 mit 10mA macht 100mW Verlust. Bei einen geschätzen
Wärmewiderstand von 50K/W zur Umgebung* müsste sich schon eine
deutlicher Temperaturanstieg messen lassen.
Gruß
Roland
* meist ist so ein Sensor jedoch thermisch gut gekoppelt an dem zu
messenden Medium.
N'abend,
Ihr habt recht, wenn ich die Hand über den Sensor halte etc. ändert sich
die Temperatur ... Aber irgendwas mache ich falsch:
Ich habe hier in meiner Werkstatt 18,5°C lt. 5€-Funkwecker UND lt.
DS18s20. Das Sensorloch des Weckers steht ca. 3cm neben dem
18s20-Sensor.
Unmittelbar nach dem einschalten der Versuchsaufbaus messe ich 18,5°C.
Wie oben beschrieben steigt die Temperatur innerhalb von ca 15 Minuten
(ohne Personen, ohne Licht etc. in der Werkstatt) auf 21,5°C an:
"Im normalen Dauerbetrieb mit normaler (d.h. nicht-parasitärer
Spannungsversorgung) und Messungen alle 5s erhöht sich die Temperatur
ausgehend von der ersten Messung um 3°C. Wenn ich das Messintervall auf
1 Minute erhöhe, dann sond es "nur" noch 2°C."
Der Wecker zeigt nach nach dem Kontrollablesen immernoch 18,5°C ...
Das sind die Fakten.
Und jetzt ?
Gruß
Andreas
Du könntest ja mal versuchen das Teil in einen einigermaßen luftdichten
und thermisch isolierten Behälter zu stopfen. Oder mach mal so ne Art
Kühlkörper dran...
UBoot-Stocki wrote:
> "Im normalen Dauerbetrieb mit normaler (d.h. nicht-parasitärer> Spannungsversorgung) und Messungen alle 5s erhöht sich die Temperatur> ausgehend von der ersten Messung um 3°C. Wenn ich das Messintervall auf> 1 Minute erhöhe, dann sond es "nur" noch 2°C."
Häng mal ein Amperemeter im 1mA Bereich (oder irgendwas in der Richtung)
die die VDD Leitung vom Sensor. 3°C entsprechen etwa 1mA Dauerstrom wie
weiter oben ausgerechnet wurde.
Definitiv Eigenerwärmung. Wie Volker schon bemerkte, pack das Ding mit
einem Tick Wärmeleitpaste auf einen Kühlkörper oder schalte den Sensor
über einen Portpin mit entsprechend langen Pausen, z.B. alle 10 Sekunden
für 'ne halbe Sekunde einschalten, da dürfte von der Eigenerwärmung
nicht mehr viel übrigbleiben.
Gruß
Jadeclaw.
also ich habe versuchsweise einen 1820 in einem IC-Sockel stecken,
parasitärer Betrieb, der Sensor wird ca. jede halbe sekunde ausgelesen
(habe nur einen Beispielcode, mit dem ich mich noch nicht
auseinandergesetzt habe). Eigenerwärmung ist absolut nicht zu spüren.
Eher schlägt der Sensor an, wenn ich meine Hand daneben lege.
Guten Morgen,
"also ich habe versuchsweise einen 1820 in einem IC-Sockel stecken,
parasitärer Betrieb, der Sensor wird ca. jede halbe sekunde ausgelesen"
Das kann aber nicht sein, da Du lt. Datenblatt 750ms warten musst, bis
der MEsswert zur Verfügung steht.
"Hast du vielleicht die Anschlussbeine gekürzt? könnte ja sein dass
diese
ausschlaggebent für den Wärmewiderstand sind...."
Nein - der Sensor steckt in einem Sockel. Nichts ist gekürzt.
"schalte den Sensor über einen Portpin mit entsprechend langen Pausen,
z.B. alle 10 Sekunden für 'ne halbe Sekunde einschalten, da dürfte von
der Eigenerwärmung nicht mehr viel übrigbleiben."
Das mache ich jetzt - habe alles auf parasitär umgestellt und schalte
die Leitung zum Controller nach der Messung für 1 Minute auf GND. Dann
ist es weg.
"Häng mal ein Amperemeter im 1mA Bereich (oder irgendwas in der
Richtung)
die die VDD Leitung vom Sensor. 3°C entsprechen etwa 1mA Dauerstrom wie
weiter oben ausgerechnet wurde."
Das werde ich mal versuchen. Die 1 mA stimmen übrigens, da lt Datenblatt
der Sensor ja mit einem 4,7k Widerstand an 5V hängt... Komisch...
Gruß
Andreas
Ich kann sowas nicht bestätigen. Habe 4 DS1821 an ca. 2m Leitungen
hängen und löse auf 0.1K auf. Die Messwerte sind absolut stabil, da
wandert nichts.
Auch die Messwerte der 4 Sensoren stimmen erstaunlidch gut überein, wenn
ich die Sensoren alle am gleichen Ort habe.
Kann ich auch bestätigen. Daher soll UBoot-Stocki mal den Strom messen,
denn irgendwoher muss die Wärme ja kommen. Wenn er jetzt irgendwas <1mA
misst, dann kann es nicht vom Strom über VDD kommen.
Die DS1820 haben erstaunlich stabile Werte, da wackelt nicht mal das
niederwertigste Bit. Das einzige was an denen schlecht ist, ist die
Langzeitstabilität aufgrund der Feuchtigkeit die eindringt (oder ist das
mittlerweile behoben)? Dadurch hatten alte ICs etwa 2-3°C Differenz zu
neuen ICs.
PS @UBoot-Stocki:
5V über 4,7k ergibt 1mA bei 0V oder 0mA bei 5V, oder worst case 0,5mA
bei 2,5V was nur 1/4 soviel Leistung ist wie 1mA bei 5V. Am Pullup
selbst sollte es daher eigentlich nicht liegen, da dieser bei einem
DS1820 eigentlich immer auf 5V liegt.
An alle die den Stocki hier mit Saudämlichen teilweise beleidigenden
Worten zuballern (das kann ja wohl nicht sein): Ich habe den Sensor an
einer Leitung mit ext. Spannungsversorgung. In einem Luftdichten
weitgehend temperaturisolierten Behälter. Messung alle 770,5 ms. --> er
erwärmt sich um 0,5°C innerhalb etwa einer Minute. Danach Messtop und
Pause dann erneut Messen. Der Anfangswert der neuen Messung stimmt mit
dem Anfangswert der vorigen Messung überein --> abermalige Erwärmung um
0,5°C. Ergo das Ding erwärmt sich definitiv. Die gannanten 2°C
allerdings sind Umwelteinflüsse. Problem kann durch Multiplexing
minimiert werden.
@ hannes: das Problem ist nicht der Ruhestrom sondern der
Conversion-Strom. deswegen tritt die erwärmung auch umso deutlicher auf
je kürzer der Messzyklus ist. Im datenblatt habe ich allerdings nichts
dazu gefunden.
http://www.is-line.de/produkte/temperatur/smt160-30/eigenerwaermung-des-temperatursensor-smt-160-30-bei-ein-und-mehrkanalapplikationen/
das ist zwar ein anderer Sensor, betrifft aber im grunde fast alle.