PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DS18S20 genauigkeit, calibrierung, differenzen?



kask
18.05.2012, 07:42
Hallo,

ich habe mal ein paar Fragen.
wie genau messen die DS18S20 genau? Wie gut sind diese calibriert?
laut Datenblatt 0,5°C. wieso stimmen die werte bei mir nicht.

mein Problem ist das ich mehrere Sensoren habe. zwei Sensoren sind nach aussen geführt um die Temperatur hinter meinem Haus zu messen. Diese liegen unmittelbar an der selben position.
Der Eine Sensor ist lediglich eingeschrumfpt der andere ist in eine messinghülse vergossen (6mm durchmesser, 0,5mm wandung, Uhu sofortfest 2min).

Jetzt ist es so das der vergossene relativ viele schwankungen hat und 3-4°C weniger anzeigt.
Des Weiteren habe ich noch andere sensoren verbaut. Diese Schwanken auch sehr stark bis auf einer der auf ein alu u-halbzeug (8mm, 1mm wandung) mit wärmeleitpaste montiert wurde und mit heisskleber ein gegossen wurde.

was habt ihr für erfahrungen? Ich denke zerstört werde ich sie nicht haben da sie ja alle noch messwerte liefern.

anbei habe ich mal die beiden aussen sensorwerte angehangen.

Kampi
18.05.2012, 08:23
Hi,

da hast du dich verlesen.
Die Genauigkeit ist 0,5°C(!). Kalibriert sind die Dinger von Werk aus (soweit ich dem Datenblatt entnehmen kann) nicht. Die Kalibration musst du vornehmen.
Einen Temeratursensor sollte man nicht mit irgendwas vergießen oder an irgendwas dran kleben. Da jeder Körper der sich an einem Temperatursensor befindet eine gewisse Zeit benötigt bis er die selbe Temperatur wie die Umgebung hat, zeigt auch der Sensor was falsches an.
In deinem Beispiel hast du einen vergossen. Die Schwankungen kommen daher, dass das Vergussmaterial eine gewisse Zeit braucht um die Temperatur anzunehmen und der Sensor misst (im vergossenen Zustand) die Temperatur des Materials.
Ich vermute das die Schwankungen daher kommen. Wenn du zwei Sensoren hast die noch "nackt" sind kannst du es ja mal mit denen ausprobieren. Ich denke das "Problem" ist dann weg ;)

kask
18.05.2012, 08:57
ja, vergossene sollten träger sein und nicht so springen da das material ja die temperatur "speichert" und verzögert abgibt. wie du schon sagst und das ist auch gut so ;)
bei der aussentemperatur ist das auch meiner meinung nach egal da diese sich eigentlich nicht schlagartig ändert. (sonnen - schatten wechsel mal angesehen, was bei der aussen temperatur ja eh unterbunden werde sollte)
es ist egal, vergossen oder nicht die springen alle bis auf ein vergossener der ist sehr stabil.

und wie soll man den Kalibrieren? habe da nichts drüber gefunden. somit gehe ich in der annahme das diese kalibriert sind.

Thomas E.
18.05.2012, 09:22
So sprunghafte Temperaturänderungen kenne ich bei diesen Sensoren noch nicht. Vielleicht liegts aber auch gar nicht an den Sensoren, sondern an der Peripherie, die danach kommt? Ich hatte mal einen schwerwiegenden Berechnungsfehler in einer Software. Dieser rief hervor, dass die Temperatur vom Sensor haargenau stimmte, jedoch bei überschreiten von 21,53°C sprunghaft auf 22,00°C wechselte. Also quasi bis 21,53°C genau, darüber dann etwa ein halbes Grad Abweichung.

Kampi
18.05.2012, 09:28
Wenn du nichts über eine Kalibration findest, solltest du eher davon ausgehen das die nicht kalibriert sind :D
Ansonsten machst du halt eine Softwareseitige Kalibration, sprich du misst eine Temperatur dessen Wert du kennst und schaust was der Sensor anzeigt. Die Differenz rechnest du weg.
Das ist nebenbei auch ein guter Weg um zu prüfen ob deine Software richtig arbeitet. Nicht das du einen ähnlichen Fehler in der Software hast wie den den Thomas E. meint :)

kask
18.05.2012, 12:48
aber Daniel das hat nichts mit Kalibrieren zu tun wenn ich einen Offset mit einrechne.

so sieht es aus:

jede volle sekunde kommt wird der nächste sensor ausgelesen und 750ms zuvor "Read_temperatur_prepair"

das funzt auch sehr gut..nur die sensoren haben eine zuhohe streuung. wie ich finde.



'################################################# ##############################
' 1 Wire Sensoren Initialisieren
'################################################# ##############################
Sub 1wire_init:

For Ds_no = 1 To Sensorenanzahl
Ds_ie = Ds_no * 8
Ds_i = Ds_ie - 7
If Ds_no = 1 Then
Dsid(ds_i) = 1wsearchfirst()
Else
If Err = 1 Then
Exit For
End If
Dsid(ds_i) = 1wsearchnext()
End If
'Waitms 10
Next

Ds_count = 1wirecount()


End Sub

'################################################# ##############################
' 1 Wire Temperatur auslesen
'################################################# ##############################
Sub Read_temperatur_prepair
' Alle angeschlossenen DS1820 zum Messen veranlassen
1wreset
1wwrite &HCC
1wwrite &H44
'### testen
'Ds_ie = Ds_no * 8
'Ds_i = Ds_ie - 7

'1wverify Dsid(ds_i)
'1wwrite &H44

End Sub

Sub Read_temperatur(byval Ds_no As Byte)
'Start Byte finden füd dsid array
Ds_ie = Ds_no * 8
Ds_i = Ds_ie - 7
'Call Read_temperatur_prepair
'Waitms 10
' Den gewünschten Sensor auswählen
1wreset
1wverify Dsid(ds_i)
' Kommando READ SCRATCHPAD
1wwrite &HBE
Sc(1) = 1wread(9)

If Sc(9) = Crc8(sc(1) , 8) Then
' Genauere Temperaturberechnung auf 0,1 °C
I = Sc(1) And 1
If I = 1 Then Decr Sc(1)
T = Makeint(sc(1) , Sc(2))
T = T * 50
T = T - 25
T1 = Sc(8) - Sc(7)
T1 = T1 * 100
T1 = T1 / Sc(8)
T = T + T1
Temperaturen(ds_no) = T / 10
Else
' Wenn lese Fehler -76 eintragen
Temperaturen(ds_no) = -76
End If
End Sub

Kampi
18.05.2012, 13:06
aber Daniel das hat nichts mit Kalibrieren zu tun wenn ich einen Offset mit einrechne.

[/Code]

Ne das Kalibrieren machst du auch nur um die Toleranzen des Sensors auszugleichen. Das bezog sich aber auch nur auf deine Aussage am Anfang des Themas wo du das sagtest:

wie genau messen die DS18S20 genau? Wie gut sind diese calibriert?
laut Datenblatt 0,5°C.

;)

kask
18.05.2012, 13:25
ich habe was im anderem universum gefunden.

http://www.mikrocontroller.net/topic/16035

..es wird behauptet die sensoren weichen ab wenn sie nass werden/geworden sind. hmpf. der vergossene wurde sicher noch nicht in wasser gelegt. der der 3°C mehr zeigt schon.
mal kontrollieren.

kask
18.05.2012, 18:18
hmpf, jetzt gehen sie gleich und teilweise auch beruhigter.
ich vermute stark das es an den verbindungen liegt.
sensor ist an kabel gelötet. andere seite ist mit servo steckern die auf stiftleiste. und da vermute ich das problem.

kask
07.06.2012, 00:28
es lag definitiv an den verbindungen. seit dem läuft es i.O.