Witam wszystkich!
Bawię się czujnikiem temperatury DS18B20 i po odczytaniu wartości temperatury stwierdziłem, że jest ona 3 st. wyższa niż na normalnym termometrze cyfrowym, który mam w pokoju. Jak już gdzieś na forum przeczytałem - zdarzają się poprostu takie egzemplaże i tyle. Spróbowałem jednak mimo odczytania określonej wartości z czujnika na wyswietlaczu podać wartość taką jaka jest w rzeczywistości - odejmując od wyniku 3 st.
Problem tylko w tym, że tak zapisany program (poniżej fragment programu) działa tylko w temp. dodatnich.
Po przekroczeniu 0 w kierunku temp. ujemnych wypisuje jakieś dziwne wartości.
Czy ktoś wie jak to zmodyfikować aby było OK.
PS. Czy ma ktoś może jakiś schemat jaki powinien być podłączony termistor np.
NTC 10K do uP - aby odczytywać temp. w zakresie od - 30 do +120C
..............
..............
..............
Do
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
'Waitms 250
1wreset
1wwrite &HCC
1wwrite &HBE
B1 = 1wread()
B2 = 1wread()
1wr
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Znak = "-"
Else
Znak = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , "###.&")
A = T1 * 10
B = A - 30 '- tu odejmuję 3 stopnie (30)
C = B \ 100 ' dziesiątki
D = C * 100
E = B - D
F = E \ 10 ' jedności
G = F * 10
H = E - G ' po przecinku
Cls
Locate 1 , 3
Lcd Znak ; C ; F ; "." ; H ; Chr(0) ; "C " '- 3 stopnie niżej
Cursor Off
Lowerline
Locate 2 , 3
Lcd Znak ; Tmp ; Chr(0) ; "C " '- wyniki z czujnika
Cursor Off
Loop
End
Bawię się czujnikiem temperatury DS18B20 i po odczytaniu wartości temperatury stwierdziłem, że jest ona 3 st. wyższa niż na normalnym termometrze cyfrowym, który mam w pokoju. Jak już gdzieś na forum przeczytałem - zdarzają się poprostu takie egzemplaże i tyle. Spróbowałem jednak mimo odczytania określonej wartości z czujnika na wyswietlaczu podać wartość taką jaka jest w rzeczywistości - odejmując od wyniku 3 st.
Problem tylko w tym, że tak zapisany program (poniżej fragment programu) działa tylko w temp. dodatnich.
Po przekroczeniu 0 w kierunku temp. ujemnych wypisuje jakieś dziwne wartości.
Czy ktoś wie jak to zmodyfikować aby było OK.
PS. Czy ma ktoś może jakiś schemat jaki powinien być podłączony termistor np.
NTC 10K do uP - aby odczytywać temp. w zakresie od - 30 do +120C
..............
..............
..............
Do
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
'Waitms 250
1wreset
1wwrite &HCC
1wwrite &HBE
B1 = 1wread()
B2 = 1wread()
1wr
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Znak = "-"
Else
Znak = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Tmp = Fusing(t1 , "###.&")
A = T1 * 10
B = A - 30 '- tu odejmuję 3 stopnie (30)
C = B \ 100 ' dziesiątki
D = C * 100
E = B - D
F = E \ 10 ' jedności
G = F * 10
H = E - G ' po przecinku
Cls
Locate 1 , 3
Lcd Znak ; C ; F ; "." ; H ; Chr(0) ; "C " '- 3 stopnie niżej
Cursor Off
Lowerline
Locate 2 , 3
Lcd Znak ; Tmp ; Chr(0) ; "C " '- wyniki z czujnika
Cursor Off
Loop
End