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

[ATmega,C,DHT22] Jak odczytać dane temperatury i wilgotności z DHT22 na ATmega?

bigben.cycu 21 Lis 2013 16:30 2532 2
  • #1 12977055
    bigben.cycu
    Poziom 9  
    Witam,
    Proszę o pomoc z odczytem danych z czujnika wilgotności. Jestem na etapie inicjalizacji tzn. wysłania impulsu START do czujnika.
    Wg noty katalogowej http://www.adafruit.com/datasheets/DHT22.pdf
    czujnik powinien odpowiedzieć stanem niskim (1) przez 80us oraz stanem wysokim (0) przez 80us. Udało mi się to uzyskać. Wyniki otrzymuję w hyperterminal.

    Nie rozumiem tylko jak odzyskać dane o wartości temp. i wilgotności.

    "DATA=8 bit integral RH data+8 bit decimal RH data+8 bit integral T data+8 bit decimal T data+8 bit checksum"

    Czyli należy odebrać 40bit danych.


    Oto mój kod:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    ]Link[/url]


    Edit:

    Zrobiłem pętlę, która za każdym wywołaniem funkcji zwraca 8 bitów danych. Sprawdzany jest stan na linii 1 Wire, jeśli stan wysoki trwa 70us bit przesuwany jest w lewo.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Czy to dobry pomysł?
  • #2 12977617
    Miglans_87
    Poziom 13  
    Zaczerpnięty z innego forum:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 12978071
    bigben.cycu
    Poziom 9  
    Dzięki, trochę mi rozjaśnił ten kod.
    Napisałem funkcję, żeby sprawdzić jak reaguje czujnik. Po wysłaniu startu przez pc, czujnik odpowiada, jednak gdy dochodzi do transmisji danych mam cały czas stan wysoki od czujnika. Nota katalogowa mówi, sprawdzić poprawność połączeń elektrycznych. hmmm

    Zapomniałem dodać że procesor pracuje na wewnętrznym oscylatorze 1MHz.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA