logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[M8][BASCOM] wyświetlacze LED i DS18B20

Jarosław J 30 Wrz 2010 12:04 2091 2
  • #1 8567647
    Jarosław J
    Poziom 14  
    Już któreś z kolei podejście do tematu jednak dalej brak rozwiązania
    Problem wygląda tak:

    Potrzebuję termometr na dwóch DS 18B20 Na razie zaprzęgłem jeden i w pętli co kilka sekund (czyli co kilka pomiarów) wyświetla mi 0,0 st C lub inną absttrakcyjną wartość np 95,5 przez jeden pomiar. Próbowałem różnych rozwiązań na chwile obecną program wygląda mniej więcej tak:


    Deklaracja zmiennych  i portów (tutaj wszystko  gra)
    
    Do
    
    1wreset
    1wwrite &HCC
    1wwrite &H44
    Wait 1                        ' na konwersję
    
    1wreset
    1wwrite &HCC
    1wwrite &HBE
    
       B1 = 1wread()                                            ' odczyt i  obliczenia
       B2 = 1wread()
    
      1wreset
    
       If B2 >= 248 Then
       B1 = R - B1
       B2 = R - B2
       Znak1 = 0                                                '-'
       Else
       Znak1 = 1                                                '+'
       End If
    
       T1 = B1 / 16
    
       T2 = B2 * 16
    
       T1 = T1 + T2
       D1 = Int(t1)
       T1 = Frac(t1)
       Cyfra1 = D1 / 10
       Cyfra2 = D1 Mod 10
       Cyfra3 = T1 * 10
    
    
    Loop
    
     tutaj program wyświetlania w  przerwaniach od Timera 1 


    Przeliczanie temperatur jest właściwe, bo większość pomiarów wskazuje dobrą temperaturę Wg mnie problem tkwi w komunikacji z DS-em, podejrzewam, że co któryś pomiar odpowiedź z Ds-a jest błędna Proszę kolegów o jakąś podpowiedź Być może nie widzę jakiegoś oczywistego błędu, choć ten sam sposób odczytu Ds-a w układzie na wyświetlacz LCD nie sprawia najmniejszych kłopotów Bardzo proszę o pomoc. Dodam jeszcze, że sam DS jest właściwie podciągnięty rezystorem, Czy może na przykład odczyt Ds-a zakłócać sie z przerwaniami od timera?
  • #3 8568141
    piti___
    Poziom 23  
    Dodaj sprawdzanie CRC danych z czujnika.
REKLAMA