DHT22 zawiesza program - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Czujniki (https://forum.arduinopolska.pl/dzial-czujniki) +--- Wątek: DHT22 zawiesza program (/watek-dht22-zawiesza-program) Strony:
1
2
|
DHT22 zawiesza program - Piter1401 - 18-12-2016 Witajcie, na początek uprzedzę, że jestem mocno początkującym w temacie arduino Podczas pisania programu, obsługującego zegar czasu rzeczywistego DS1307 oraz pomiar temperatury i wilgotności realizowany za pomocą DHT22, napotkałem problem z którym nie mogę sobie poradzić i nie udało mi się znaleźć rozwiązania. Problem polega na tym, że program po chwili działania zupełnie się zawiesza. Nie reaguje nawet na przerwania. Arduino to model UNO. Czujnik podpięty, przez rezystor podciągający (5,1k) do zasilania, do pinu 12. Zegar DS1307 SDA - A4, SCL - A5. Kod: #include <Wire.h> Bez czujnika DHT program działa bezproblemowo. Czy ktoś z Was mógłby mi pomóc lub naprowadzić gdzie jest błąd ? Z góry dziękuję za pomoc. RE: DHT22 zawiesza program - namok - 18-12-2016 Wszystkie zmienne zmieniane w przerwaniu muszą mieć kwalifikator volatile, czyli ma być Kod: volatile int z = 0; RE: DHT22 zawiesza program - Smaczek - 18-12-2016 Witam, Jaki jest ważny powód, żeby Twój program był oparty o przerwania? Moim zdaniem jest to zupełnie zbyteczne. Według kodu przerwanie masz wyzwalanie RISiNG-iem na pinie 2, który w ogóle nie jest podłączony! Przyczyną wieszania programu, ale nie w Twoim przypadku, może być zbyt dlugi przewód pomiędzy czujnikiem a Arduino. Pozdrawiam RE: DHT22 zawiesza program - Piter1401 - 18-12-2016 (18-12-2016, 16:11)Smaczek napisał(a): Witam, W dalszej części programu będzie konieczne aby po naciśnięciu przycisku program wszedł w menu bez zwłoki spowodowanej np. odczytem z czujników. RE: DHT22 zawiesza program - namok - 18-12-2016 Zmieniłeś to o czym pisałem? przerwania zaczęły działać? RE: DHT22 zawiesza program - Piter1401 - 18-12-2016 (18-12-2016, 16:37)namok napisał(a): Zmieniłeś to o czym pisałem? przerwania zaczęły działać? Tak. Dziękuję za zwrócenie na to uwagi. Przerwania jednak wcześniej też działały do momentu zawieszenia się programu. Program niestety nadal się zawiesza. RE: DHT22 zawiesza program - namok - 18-12-2016 A jak się objawia to zawieszanie? RE: DHT22 zawiesza program - Piter1401 - 18-12-2016 (18-12-2016, 17:32)namok napisał(a): A jak się objawia to zawieszanie? Na wyświetlaczu wszystko zostaje zamrożone, brak reakcji na przerwanie, brak reakcji na naciskanie przycisków. RE: DHT22 zawiesza program - namok - 18-12-2016 1. Jak sprawdzałeś poprawność działania przerwań? 2. Czy program działa prawidłowo jeśli usuniesz z niego przerwania i te if'y: Kod: if (z != 0 ) RE: DHT22 zawiesza program - Piter1401 - 18-12-2016 Po usunięciu ww. elementów program dalej się zawiesza. Nie będzie to spowodowane np. jakimś konfliktem związanym z bibliotekami ? |