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
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięDS18B20 - czy ktoś potrafi go skalibrować ???
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Re: DS18B20 - czy ktoś potrafi go skalibrować ???
A co Ty za "algebrę" spłodziłeś , a na dokładkę jeszcze Fusing .Witam wszystkich!
Bawię się czujnikiem temperatury DS18B20 i po odczytaniu wartości temperatury stwierdziłem, że jest ona 3 st. ...
Chcesz strzelać z armaty do wróbla
Takie "cuś" , robi sie niezwykle prosto:
Kod: Zaznacz cały
'*********** DS18B20 11 bit ***********************
Dim Tds As Integer,Sds As String *6
..............
Do
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
'Waitms 250
1wreset
1wwrite &HCC
1wwrite &HBE
Tds=1wread(2)
'*** Jeśli nadal zawyża , to odejmujemy te nieszczęsne 3 C
Tds = Tds - 48 ' (3 * 16)
'***Liczymy,konewrtujemy i wyświetlamy na LCD
Tds = Tds * 10
Tds = Tds / 16
Sds = Str(Tds)
Sds = Format(sds , " 0.0")
Lcd Sds ; Chr(0);
'**** to wszystko
Loop
End
Re: DS18B20 - czy ktoś potrafi go skalibrować ???
A co Ty za "algebrę" spłodziłeś , a na dokładkę jeszcze Fusing .
Chcesz strzelać z armaty do wróbla
Wiedziałem, że przesadziłem ale początki bywają trudne.
Dzieki za pomoc
Pozdrawiam
Lolek
Chcesz strzelać z armaty do wróbla
Wiedziałem, że przesadziłem ale początki bywają trudne.
Dzieki za pomoc
Pozdrawiam
Lolek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 30 gości