Witam,
zdecydowałem się ponownie poruszyć temat najpopularniejszego chyba układu na elektrodzie - przeczytałem chyba wszystkie posty i wydaje mi się, że zastosowałem się do porad dla innych pytających - a jednak:
układ teoretycznie dobrze mierzy temperaturę, jest to DS1820 na 3 przewodach +, - i sygnał przez 4,7k do + do 90S2313, kwarc 4MHz. W pokoju pokazuje 23 'C niby ok, problem zaczyna się jak mu lekko pociągnę z zamrażacza i wejdzie poniżej zera wtedy jedzie od -99 w dół - im niższa temperatura tym mniejsza liczba (-99,-80,-60,-30) jak się ociepla to wraca w drugą stronę a jak przejdzie na dodatnie to nie likwiduje "minusa" z przodu.
Proszę pomóżcie! jeszcze żaden układ tak mnie nie rozłożył.
Gdzie się walnąłem?
Pozdr.
Poniżej listing:
$crystal = 4000000
$regfile = "2313def.dat"
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
Config 1wire = Portd.5
Dim T1 As Byte , T2 As Byte , Temperatura As Byte
Declare Sub Temperature
Declare Sub Read1820
Display On
Cursor Off
Cls
Locate 1 , 1
Lcd "Zmierzona temp.:"
Do
Gosub Temperature
Gosub Read1820
Loop
Temperature:
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 250
Waitms 250
Return
Read1820:
1wreset
1wwrite &HCC
1wwrite &HBE
Waitms 250
Waitms 250
T1 = 1wread(1)
T2 = 1wread(2)
1wreset
If T2 = 0 Then
Temperatura = T1 / 2
Locate 2 , 2
Lcd Temperatura
Else
T1 = 256 - T1
Temperatura = T1 / 2
Locate 2 , 1
Lcd "-"
End If
If Temperatura = 0 Then
Locate 2 , 1
Lcd " "
End If
Return
zdecydowałem się ponownie poruszyć temat najpopularniejszego chyba układu na elektrodzie - przeczytałem chyba wszystkie posty i wydaje mi się, że zastosowałem się do porad dla innych pytających - a jednak:
układ teoretycznie dobrze mierzy temperaturę, jest to DS1820 na 3 przewodach +, - i sygnał przez 4,7k do + do 90S2313, kwarc 4MHz. W pokoju pokazuje 23 'C niby ok, problem zaczyna się jak mu lekko pociągnę z zamrażacza i wejdzie poniżej zera wtedy jedzie od -99 w dół - im niższa temperatura tym mniejsza liczba (-99,-80,-60,-30) jak się ociepla to wraca w drugą stronę a jak przejdzie na dodatnie to nie likwiduje "minusa" z przodu.
Proszę pomóżcie! jeszcze żaden układ tak mnie nie rozłożył.
Gdzie się walnąłem?
Pozdr.
Poniżej listing:
$crystal = 4000000
$regfile = "2313def.dat"
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
Config 1wire = Portd.5
Dim T1 As Byte , T2 As Byte , Temperatura As Byte
Declare Sub Temperature
Declare Sub Read1820
Display On
Cursor Off
Cls
Locate 1 , 1
Lcd "Zmierzona temp.:"
Do
Gosub Temperature
Gosub Read1820
Loop
Temperature:
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 250
Waitms 250
Return
Read1820:
1wreset
1wwrite &HCC
1wwrite &HBE
Waitms 250
Waitms 250
T1 = 1wread(1)
T2 = 1wread(2)
1wreset
If T2 = 0 Then
Temperatura = T1 / 2
Locate 2 , 2
Lcd Temperatura
Else
T1 = 256 - T1
Temperatura = T1 / 2
Locate 2 , 1
Lcd "-"
End If
If Temperatura = 0 Then
Locate 2 , 1
Lcd " "
End If
Return