Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 24 kwi 2024, o 10:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 59 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
 Tytuł: DHT21(AM2301)
PostNapisane: 27 paź 2014, o 17:38 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Witam,

Mam pytanie dotyczące DHT21(AM2301) czy wie ktoś gdzie można znaleźć biblioteki do tego czujnika na atmege?
Szukam od pewnego czasu ale tylko widzę na Arduino.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 17:57 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

wpisz DHT11 w driverach jest opcja wybrania DHT22 ja znalazłem w pliku DHT11.h
Poszukaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 18:01 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

A mógłbyś udostępnić mi ta bibliotekę będę wdzięczny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 18:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega podaj mail to Ci poślę moją do DHT-11 jaką mam.

Porównując datasheet'y:
http://cdn.shopify.com/s/files/1/0038/9582/files/RHT02manual.pdf?100238
http://www.micro4you.com/files/sensor/DHT11.pdf

To nadają ten sam pakiet 40 bit.

z Niebieskim pozdRowieniem,
Doman89


Nie zauważyłem, że na dole jest dodawanie plików :)


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Ostatnio edytowano 27 paź 2014, o 18:18 przez doman89, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 18:16 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

zaraz znajdę to wstawię , jak będę mógł

------------------------ [ Dodano po: kilkunastu sekundach ]

są drobne różnice z czasie konwersji



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 18:18 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Super będę bardzo wdzięczny :)

------------------------ [ Dodano po: kilkunastu sekundach ]

Mój mail to dariuszbrzozka@wp.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 18:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

giciors napisał(a):
są drobne różnice z czasie konwersji

To już najmniejszy problem ;)

Dodałem załącznik wyżej.

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 18:25 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

http://davidegironi.blogspot.it/2013/02/reading-temperature-and-humidity-on-avr.html#.VE5_wclASRk

------------------------ [ Dodano po: kilkunastu sekundach ]

link do stronki z opisem i bibliotek zip

------------------------ [ Dodano po: 2 minutach ]

tak przy okazji DHT22 jest dużo dokładniejszy niż DHT11 no i cena 2x wieksza ....fajnej zabawy życzę
Pozdrawiam

------------------------ [ Dodano po: 6 minutach ]

kolega powyżej załączył libsa wersja 1 na stronie masz wersję ostateczną 3 w pliku DHT.h wpisz
#define DHT_TYPE DHT_DHT22 i po sprawie

------------------------ [ Dodano po: 7 minutach ]

:D tzn. zastąp DHT11 na DHT22


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 19:14 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Dziękuję za podpowiedzi są bardzo cenne jest jeszcze jeden problem czy ta biblioteka pozwoli mi wyświetlić wyniki na wyświetlaczu LCD bo tu chyba widzę że jedynie przez UART?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 19:26 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

używam tej bibliotek do wyświetlania na OLED musisz sobie pozyskać dane :
Kod:
#if DHT_FLOAT == 1
extern int8_t dht_gettemperature(float *temperature);
extern int8_t dht_gethumidity(float *humidity);
extern int8_t dht_gettemperaturehumidity(float *temperature, float *humidity);
#elif DHT_FLOAT == 0
extern int8_t dht_gettemperature(int8_t *temperature);
extern int8_t dht_gethumidity(int8_t *humidity);
extern int8_t dht_gettemperaturehumidity(int8_t *temperature, int8_t *humidity);
#endif

Jeżeli chcesz dokładnie czyli zmiennoprzcinkowy czy całkowitą wilgotność i temperaturę , zamieniasz na znaki i tobisz co chcesz.

------------------------ [ Dodano po: 1 minucie ]

masz do tego odpowiednie funkcje w bibliotece , mnie nie interesował ten program tylko skorzystełem z bibliotek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:35 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Hmm do obsługi LCD używam biblioteki z Bluebooka zobaczymy co się uda jak na razie nie udaje się :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:39 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

bierzesz : dht_gethumidity(int8_t *humidity);
wartość zwracana ...patrz wskażnik , zamieniasz na znaki i wysyłasz na wyświetlacz, nie pomogę ci zbytnio bo bawiłem się typ LCD dawno temu ale z tego co pamiętam Mirek tam dał procedurke print int czy coś takiego .... do wyświetlania liczb całkowitych także spoko powinno być .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Dariusz Brzózka napisał(a):
Hmm do obsługi LCD używam biblioteki z Bluebooka zobaczymy co się uda jak na razie nie udaje się :(


Bo kolega z floatem możesz mieć problem, jak coś to na razie korzystaj z danych uint8_t.

Tu masz podobną sytuację:
http://forum.atnel.pl/topic8910.html

Ale kolega nie napisał na razie czy coś wyszło z tych "bojów"

z Niebieskim pozdRowiniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:48 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Coś już wyświetla znaczy "-1" a w bibliotece widzę, że w instrukcji warunkowej wskaźnik ma być różny od -1 co oznacz te -1?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:50 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

możesz pobrać albo integer albo float tylko pamiętaj o wprowadzeniu modyfikacji w eclipse dotyczącej obliczen na float patrz mirka jakiś poradnik był gdzie trzeba to zmieniać bo kompilator ma problem z traktowaniem tych liczb. są za długie i zamianiane są na double, zresztą nie ma problemu z zamianą float na znaki sporo sposobów....proste i skomplikowane.....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

giciors napisał(a):
Coś już wyświetla znaczy "-1" a w bibliotece widzę, że w instrukcji warunkowej wskaźnik ma być różny od -1 co oznacz te -1?


Kolega czysty strzał, czasy konwersji nie za krótkie?

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:56 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

:oops: sorki za Mirka z małej litery, leżę na podłodze i piszę na klapie i shift mi zabrakło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Linia danych ma podciąganie do Vcc przez opornik?

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:00 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Ma przez rezystor 4,7 k czy większy dać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:01 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

podłączyłeś wszystko zgodnie z zasadami dane rezystor do vcc zresztą miałeś rysunek w moim linku ? czas konwersji jest około 500ms jak chcesz możesz go zmienić , a czy zmieniłeś typ_dht ? to ważne jak podłączyłeś bez zmiany to masz Zonka

------------------------ [ Dodano po: 13 minutach ]

zaczekaj ....driver działa poprawnie z DHT11 i DHT22 dla DHT21 czas konwersji jest max 2s min 1,7s .
Sorki twój DHT21 pomieszał mi się z moim DHT22 twój ma 3 nogi mam nadzieję że połączyłeś wszystko zgodnie ze specyfikacją dht21 .
pokombinuj z czasem konwersji tu może być problem

------------------------ [ Dodano po: 17 minutach ]

wychodzi na to iż twój układ nie odpowiada

------------------------ [ Dodano po: 17 minutach ]

nigdy nie lubiłem one wire



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:21 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

A gdzie dokładnie znajduje się ustawienie tego czasu konwersji?

------------------------ [ Dodano po: 17 minutach ]

Dziękuję wszystkim za podpowiedzi nadal mam to "-1" jutro po pracy będę walczył dalej ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Kolega spróbuj tu zmienić:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Daj np. 40 zamiast 30.

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 21:47 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

patrząc na pdf to lepiej użyj (tak mi się wydaje ) typu DHT11 przynajmniej rozpoczęcie sekwencji jest bardzo podobne 18ms.

------------------------ [ Dodano po: 3 minutach ]

jutro też po pracy spojrzę na pdf od tego DHT21.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 19:26 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Niestety ani zmiana z 30 na 40 nic nie dała (cały czas było 40) ani użycie typu DHT11 tez nie pomogło cały czas -1 :( ale walczę dalej ;) Jeżeli macie nadal chęci pomóc to zapraszam ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 20:33 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Witam
Przepraszam że pomyliłem się wczoraj z tym czujnikiem byłem święcie przekonany iż rozmawiamy o DHT22 ale cóż może się czegoś nauczymy razem . Teraz czytam na temat konwersji . A pozostaw DHT22 ponieważ wg pdf-a inicjalizacja one wire jest w sekwencji stan wysoki przechpdzi w stan niski 500ms potem wysoki przez 40us to powinien zrobić procesor i to masz w kodzie dla DHT22 czyli powinno byc dobrze jeżeli procek w czujniku obudzi się zaczyna nadawać zwiera przez 80us do zera potem do vcc też przez 80us masz to w kodzie dalej jest transmisja 40 bajtów ostatni bajt to suma kontrolna jeżeli nie gra to wywala -1. teraz zauważym ze konwersja wyniku może być inna niż w DHT22 zaraz znajdę datasheeta i porównam. Generalnie to powinno pójść może zastosuj pułapki w kodzie aby sprawdzić gdzie się wiesza 3 diody piny i załączanie w ifach jak padnie -1. Tak można dojść dosyć szybko robiłem tak kiedyś i czasami teraz też .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 20:38 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Spoko nic się nie stało co do pułapek to już to zrobiłem wychodzi na to że już wyrzuca na tym etapie kodu poniżej:

Kod:
//check start condition 1
   if((DHT_PIN & (1<<DHT_INPUTPIN))) {
      return -1;
   }



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 20:48 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

nie 500ms tylko us ale znalazłem dosyć dziwną sprawę dwa datasheety do DHT21 i ten czas jest różny w jednym 200us w drugim 1ms to jest trochę dziwne. Może spróbuj zw tej lini z czasem pokombinować
Kod:
#elif DHT_TYPE == DHT_DHT22
   _delay_us(500);
zmień na 1ms nie us
Kod:
DHT_DDR &= ~(1<<DHT_INPUTPIN); //input
   _delay_us(40);
można zmniejszyć z tego co napisali maks. to 40us daj 20us.
Może ten czas jest za długi, krótki w przypadku one wire te czasy to masakra , a z tego co napisałeś wychodzi iż procek w środku nie chce nawiązać współpracy powinien zlecieć linię do zera .

------------------------ [ Dodano po: 2 minutach ]

http://meteobox.tk/files/AM2301.pdf
tu jest datasheet nie wiem czy go widzaiłeś są przebiegi czasowe nie wiem czy taki masz moduł

------------------------ [ Dodano po: 3 minutach ]

http://mikroshop.ch/pdf/DHT21.pdf a tu inny ale chyba też do twojego



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 20:55 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Tak obydwa datasheet mam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 21:09 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

powinien chodzić może jest zwalony, wyrzuca coś w ogóle z siebie jakieś bzdurne cyfry czy po prostu wali -1 . Na pewno dobrze podłączyłeś rezystorek podciągaący masa i vcc 5v?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 21:11 
Offline
Użytkownik

Dołączył(a): 27 sty 2014
Posty: 73
Pomógł: 0

Wali "-1" posprawdzam jeszcze raz wszystkie podłączenia i dam znać ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 59 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO