PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : genaue Temperaturmessung mit ds1820



Cooool39
05.07.2007, 20:50
was muss ich ändern damit ich eine genauere temperaturmessung bekomme (in 0,1 Grad Schritten)??




$regfile = "m8def.dat"
$crystal = 3686400


Config 1wire = Portb.0
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2




Dim T1 As Single
Dim T2 As Single
Dim I As Byte
Dim Id1(8) As Byte
Dim Id2(8) As Byte
Dim Ar1(2) As Byte
Dim Ar2(2) As Byte





Id1(1) = 1wsearchfirst()
Id2(1) = 1wsearchnext()


Do
Print " "
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id1(1) , 8 'Id von Sensor 1
1wwrite &H44 'Convert T

Waitms 300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id1(1) , 8 'id von sensor 1
1wwrite &HBE 'scratchpad lesen
Ar1(1) = 1wread(1) 'erstes byte auslesen, da steht Temp drin
Ar1(2) = 1wread(1) 'zweites Byte auslesen, wenn 00000000 dann pos vorzeichen, wenn 11111111 dann neg vorzeichen


Waitms 500
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id2(1) , 8 'Id von Sensor 2
1wwrite &H44 'Convert T

Waitms 300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id2(1) , 8 'id von sensor 2
1wwrite &HBE 'scratchpad lesen
Ar2(1) = 1wread(1) 'erstes byte auslesen, da steht Temp drin
Ar2(2) = 1wread(1) 'zweites Byte auslesen, wenn 00000000 dann pos vorzeichen, wenn 11111111 dann neg vorzeichen

T1 = Ar1(1) / 2
T2 = Ar2(1) / 2




Cls 'wenn byte 2 aus dem sensor = 0 dann temp pos, sonst neg
Lcd T1 ; "°C"

Lowerline
'wenn byte 2 aus dem sensor = 0 dann temp pos, sonst neg
Lcd T2 ; "°C"

Waitms 500

Loop