Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

DS1820 i DS18B20

Paros 13 Sty 2003 09:19 1763 1
  • #1 13 Sty 2003 09:19
    Paros
    Poziom 11  

    Czesc.
    W układzie w którym pracowały (poprawnie) trzy DS1820 z konieczności (a trochę z głupoty) zamieniłem jeden z nich na 18B20. Niestety odczytuje on dziwne wartości, nawet po przesuwaniu przecinka i przeliczaniu nijak się mające do rzeczywistości. Czy mógłby ktoś przejrzeć fragment procedury jaka jest w tej chwili w moim 90S8535 i zasugerować zmiany, dopuszczające do pracy jednocześnie 1820 1 18B20?

    dzięki Leszek




    Function Decigrades(byval Sc(9) As Byte)
    Dim Tmp As Byte , T10 As Integer , T11 As Integer
    Tmp = Sc(1) And 1
    If Tmp = 1 Then Decr Sc(1)
    T10 = Makeint(sc(1) , Sc(2))
    T10 = T10 * 50
    T10 = T10 - 25
    T11 = Sc(8) - Sc(7)
    T11 = T11 * 100
    T11 = T11 / Sc(8)
    T10 = T10 + T11
    Decigrades = T10 / 10
    End Function


    Sub Pomiar
    1wreset
    1wwrite &HCC
    1wwrite &H44
    Waitms 250
    Waitms 250
    Waitms 250


    1wverify Dsid1(1)

    1wwrite &HBE
    Sc(1) = 1wread(9)
    Temp0 = Decigrades(sc(9)) 'temp. za oknem
    Locate 2 , 1
    Polo = Temp0 / 10
    Lcd Fusing(polo , "###.#") ; Chr(1) ; " "

    1wverify Dsid2(1)

    1wwrite &HBE
    Sc(1) = 1wread(9)
    Temp1 = Decigrades(sc(9)) 'temp. w kuchni
    Locate 1 , 1
    Polo = Temp1 / 10
    Lcd Fusing(polo , "###.#") ; Chr(1)


    1wverify Dsid3(1)

    1wwrite &HBE
    Sc(1) = 1wread(9)
    Temp2 = Decigrades(sc(9)) 'temp. w piecu
    Locate 2 , 12
    Polo = Temp2 / 10
    Lcd Fusing(polo , "###.#") ; Chr(1)

    Temp_wynik = Temp2 / 10
    Temp = Temp_wynik

    End Sub
    __________________________________________________________________

    0 1
  • #2 25 Sty 2003 22:20
    Witgol
    Poziom 19  

    Witaj!
    WYBACZ, ale nie mam specjalnie czasu analicować twój kod.....
    Moja szybka podpowiedź - bez zmian z procedurach NIE można stosować zamiennie w miejsce 1820 układu 18b20. Kwestia prosta: rozdzielczość powiarowa 1820 wynosi 9 bitów. Rozdzielczości 18b20 są programowane od 9 do 12 bitów!!! Z FABRYCZNIE ustawioną początkową rozdzielczością 12 bitów!!!! Dodatkowo czas konwersji 1820 przy 9 bitach wynosi ok. 200ms , a czas konwersji dla 18b20 przy ustawionej rozdzielczości 12 bitów wynosi 700ms. I tak dalej....Ale najprościej odszukać w sieci odpowiednie pdf-y układów...
    Pozdrwiam.

    0
  Szukaj w 5mln produktów