Go Down

Topic: DS 18B20+ - Temperatur zu hoch (Read 962 times) previous topic - next topic

Lifthanger

Hi!

Bin neu dabei und bisher hat auch alles sehr gut funktioniert.
Allerdings ist die Temperaturmessung um 4-5C daneben.

Das ist unabhängig von der Stromversorgung, welche Lib ich verwende (OneWire 2.0 oder DallasTemp 3.6) und welchen meiner beiden Chips ich verwende.

Als Pullupwiderstand nehme ich einen 4,7kOhm. Das heißt der ist zwischen dem I/O pin und 5V. (schreibe das dazu, falls es falsch ist)

Bin jetzt ein bisschen verwirrt, weil man die Teile ja nicht kalibrieren muss. Also geh ich mal davon aus, dass ich was übersehen habe.

Mein Arduino ist ein Duemilanove mit einem Steckernetzteil oder von USB betrieben (auch das macht keinen Unterschied).


Webmeister

#1
Nov 06, 2010, 07:52 pm Last Edit: Nov 06, 2010, 08:00 pm by webmeister Reason: 1
Ich würde eine Vergleichsmessung mit einem weiteren Sensor machen.

Kalli

Hallo,

habe hier seit einiger Zeit 6 Stück DS18B20 in der Anwendung. Leider habe ich auch festgestellt, dass die Sensoren untereinander bis zu 3 Grad abweichen. Bin noch dabei, das zu untersuchen. Im Auswerteprogramm (LogView) kann ich ja einen Offsetwert einstellen. Möglicherweise muss ich das dann auch im Sketch berücksichtigen. Am Programm oder an der Spannung kann es nicht liegen, da die Werte ja rein digital übertragen werden. Habe bei meiner Schaltung noch sicherheitshalber einen 140 Ohm Widerstand in die Plusleitung geschaltet, falls ein Sensor (oder meine Anschlüsse an den Zuleitungen) mal einen Kurzschluss erzeugen sollten. Laut Datenblatt sollen die DS18B20 schon ab 3 V sicher arbeiten.
Mal sehen, was wir rausfinden.

Gruss Kalli

Megaionstorm

#3
Nov 06, 2010, 10:46 pm Last Edit: Nov 06, 2010, 10:48 pm by Megaionstorm Reason: 1
Ich würde ein normales Thermometer als Referenz hinzuziehen.
Dann mit beiden sporadische Messungen durchführen.
Sollte sich der Unterschied zwischen dem normalen und dem digitalen Thermometer als konstant erweisen. Z.B. unabhängig von der Temperatur immer 3 Grad. Dann kann diese Differenz herausgerechnet werden.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Kalli

Ja, kann man ja alles machen, habe ich auch ausprobiert, laut Datenblatt soll die Genauigkeit im Bereich von -10 bis +85 °C bei 0,5 °C liegen, nicht bei 0,5 K. Meine Kurven zeigen jedoch ein anderes Verhalten. Die Differenz ist auch abhängig von der Temperatur (innerhalb -10 bis +85 °C). Na, ich werde das weiter untersuchen, habe noch zwei neue DS zu liegen.
::)

Lifthanger

Erstmal danke für die Antworten. Ich konnte bisher noch kein sinnvolles Thermometer auftreiben, aber Messungen im Kühlschrank und im Freien passen ziemlich gut und sind innerhalb der Messungenauigkeit.

Das heißt entweder muss ich das mal präzise nachmessen, oder ich bin der "gefühlten" Temperatur auf den Leim gegangen.

Ein Teil könnte auch vom Steckbrett kommen, weil der Sensor den ich nur noch mit Klemmen versehen habe hat plötzlich 1 Grad weniger angezeigt als der Eingesteckte.

Um die Präzisionsneurose zu befriedigen muss ich dann wohl noch andere Sensoren testen, aber das ist ok, weils ja Spaß macht :).

Falls ihr ne Empfehlung habt bin ich auch gern offen dafür. Da gabs doch so nen LM35 for den analogen Eingang.

Kalli, das mit dem Unterschied zwischen 0,5C und 0,5K ist mir nicht so ganz klar, aber deine Messkurven wären sicher interessant, falls du sie hier posten möchtest!

uwefed

@ Kalli,  0,5C und 0,5K sind genau das gleiche. Als Bezugsunkte sind Schmelz- und Siedepunkt von Wasser definiert und die Werte 0 und 100 Grad gegeben.
Der 0 Punkt der Kelvin-Skala ist mit dem absoluten Nullpunkt definiert und entspricht -273,16 grad Celsius. und der Schmelzpunkt von Wasser ist als 273,16 Kelvin definiert. So ist eine temperaturdifferenz in Grad Celsius und Kelvin gleich groß. http://de.wikipedia.org/wiki/Grad_Celsius

@Lifthanger
Der LM35 gibt als Meßwert 10mV pro grad Celsius. Um negative Temperaturen zu messen braucht es eine negative Spannung. Ich würde Dir als Alternative den LM135 empfehlen. Als Meßwert gibt er 10mV pro Kelvin und darum für 0 Grad Celsius 2,73V.

Eine Alternative für schnelle Messungen sind Thermoelemente zb ein K-Thermoelement; die Sensoren sind winzig und kosten wenig. Mit dem MAX6675 hat man schon alles samt AD-Konverter
http://code.google.com/p/max6675-arduino-library/
http://www.maxim-ic.com/datasheet/index.mvp/id/3149

Grüße Uwe

Lifthanger

Danke Uwe, jetzt weiß ich Bescheid!
Werde es wohl mal mit dem LM235 (kleinerer Messbereich, aber viel günstiger) probieren und so ein k-Thermoelement hätt ich auch gern :).

Jan

Go Up