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

Odczyty z termometru DS18S20

przema86 08 Lut 2009 23:49 2046 2
REKLAMA
  • #1 6123886
    przema86
    Poziom 10  
    Witam,
    robię projekt w którym używam mikrokontrolera ATMEGA-8 i termometru cyfrowego DS18S20, i chyba właśnie udało mi się skomunikować z moim termometrem, ale mam pewne wątpliwości.

    odczytuje stan temperatury, ale z ciekawości w programie napisałem żeby odczytywać więcej niż trzeba bajtów no i pojawiają się tam różne wartości które chciałbym wiedzieć co oznaczają.

    zgodnie z dokumentacją, a w zasadzie z przykładem (Example 3) z niej wysyłam sekwencje do termometru:
    
    	  reset_1w();          //wyslij na 1 Wire Reset + Presence
    	  send_1w(0xCC);  // wyslij na 1 Wire CCh
    	  send_1w(0x44);   // wyslij na 1 Wire  44h 
    

    to powyżej jesli dobrze zrozumiałem dokumentacje dokonuje pomiaru i zapisuje w dwóch bajtach

    następnie dusze inny klawisz i wykonuje się sekwencja:
    
    	  reset_1w();          //Reset + Presence
    	  send_1w(0xCC);  //wyslij na 1 Wire CCh
    	  send_1w(0xBE);  // wyslij na 1 Wire BEh
    	  TEMP1=get_1w();  // tutaj odczytuje 9 bajtów
    	  TEMP2=get_1w();   // kazda taka funkcja get_1w(); 
    	  TEMP3=get_1w();   // zapisuje  8 bitow do kolejnych TEMP`ow
    	  TEMP4=get_1w();
    	  TEMP5=get_1w();
    	  TEMP6=get_1w();
    	  TEMP7=get_1w();
    	  TEMP8=get_1w();
    	  TEMP9=get_1w();
    


    a pozniej sprawdzam co jest w tempach i wlasnie pierwsze dwa chyba daja temperature.
    wyniki przykladowe jakie otrzymywalem:
    41 00 4B 46 FF FF 02 10 C7 <- termometr wewnątrz komputera
    42 00 4B 46 FF FF 0A 10 74
    32 00 4B 46 FF FF 0A 10 C1 <- termometr w pokoju w powietrzu
    30 00 4B 46 FF FF 09 10 12
    47 00 4B 46 FF FF ........... <- termometr w zaciśniętej dłoni
    46 00 4B 46 FF FF ......

    teraz jesli pierwszy bajt to mlodszy bajt a drugi to starszy to zgodnie z dokumentacja ta temperature czyta się tak:
    Odczyty z termometru DS18S20

    czyli
    00 41 = 32,5 stopnia C <- termometr wewnątrz komputera
    00 42 = 33 C
    00 32 = 25 C <- termometr w pokoju w powietrzu
    00 30 = 24 C
    00 47 = 35,5 C <- termometr w zaciśniętej dłoni
    00 46 = 35 C

    Tylko że nie mam pojęcia co oznaczają tamte kolejne stany na szynie 1-Wire, w moim programie po dokonaniu pomiaru nie ma żadnego polecenia które mogłoby zmieniać coś na niej. Skąd tamte stany i co one oznaczają ?

    W tym temacie można pobrać dokumentacje DS18S20:
    https://www.elektroda.pl/rtvforum/topic13526-120.html#506551
  • REKLAMA
  • #3 6125659
    przema86
    Poziom 10  
    dzięki,
    Nie wiem jak to możliwe ale miałem jakąs inną wersje tej dokumentacji i tam zabrakło mi tej tabelki... thx
REKLAMA