• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Konflikt DHT22 i RTC
#1
Hej,

Zacznę szablonowo. Jestem nowy na forum i stawiam pierwsze kroki w programowaniu na Arduino.
Postanowiłem zacząć od czegoś w miarę prostego (tak mi się wydawało) i próbuję stworzyć termometr z wilgotnościomierzem i zegarkiem.
Zarówno moduł RTC jak i czujnik DHT22 odczytują swoje wartości poprawnie, ale tylko wtedy gdy działają w osobnych programach.
Mam problem ze stworzeniem programu, gdzie wyświetlał bym w Serial Monitorze czas wraz z temperaturą i wilgotnością.

Stworzyłem program do wyświetlania wartości temperatury i wilgotności, który działał poprawnie.
W momencie, gdy dodałem do niego RTC, Arduino nie zwraca mi wartości liczbowych z mojego czujnika DHT.

Dzieje się to w momecie, gdy w pętli setup dodam rtc.begin(); lub pętle while sprawdzający RTC.
Próbowałem napisać kod na dwa sposoby, ale efekt jest taki sam. W dalszym ciągu jak wyświetlam godzinę to nie zwraca mi wartości z DHT.

Dajcie proszę znać, czy kiedyś się z tym spotkaliście i jaka może być tego przyczyna lub czy jest jakieś rozwiązanie (zakładam że jest, ale szukam od dwóch dni i nie znalazłem)

Próbowałem z różnymi bibliotekami i efekt jest podobny.

W załączniku znajdziecie dwie wersje programu i biblioteki których używam w programi.

Dziękuję za pomoc.
Pozdrawiam,
Macu91852


Załączone pliki
.zip   RTClib-master.zip (Rozmiar: 28.24 KB / Pobrań: 4)
.zip   DHT-sensor-library-master.zip (Rozmiar: 18.6 KB / Pobrań: 1)
.txt   DHT_RTC_1.txt (Rozmiar: 1.12 KB / Pobrań: 13)
.txt   DHT_RTC_2.txt (Rozmiar: 1.19 KB / Pobrań: 9)
 
Odpowiedź
#2
W setup wywal wszystko i zostaw rtc.begin() oraz dht.begin() i napisz co się stało.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
(23-11-2019, 22:26)macu91852 napisał(a): Stworzyłem program do wyświetlania wartości temperatury i wilgotności, który działał poprawnie.
W momencie, gdy dodałem do niego RTC, Arduino nie zwraca mi wartości liczbowych z mojego czujnika DHT.
Pokaż schemat bo po definicji DHTPIN 2 to do końca nie wiem gdzie jest podłaaczony układ tym bardziej, ze nie napisałeś jakiej płytki Arduino używasz.
 
Odpowiedź
#4
Programy działają poprawnie. W drugim brakuje Serial.begin(9600); w setup. Sprawdzone na Nano.
Problem jest prawdopodobnie sprzętowy. Jak masz płytkę leonardo to pokrywają Ci się porty. Na płytce leonardo porty 2 i 3 to porty SDA i SCL od I2C i stąd konflikt "interesów". Zmień #define DHTPIN 2 na #define DHTPIN 4
 
Odpowiedź
#5
(24-11-2019, 12:26)Agregacik napisał(a): Programy działają poprawnie. W drugim brakuje Serial.begin(9600); w setup. Sprawdzone na Nano.
Problem jest prawdopodobnie sprzętowy. Jak masz płytkę leonardo to pokrywają Ci się porty. Na płytce leonardo porty 2 i 3 to porty SDA i SCL od  I2C i stąd konflikt "interesów". Zmień #define DHTPIN 2 na #define DHTPIN 4

@Agregacik, dziękuję bardzo. Teraz wszystko jest tak jak być powinno. No i wiem że muszę w przyszłości uważać, które na wzajem piny mogą sobie przeszkadzać. Płytka Leonardo.
 
Odpowiedź
#6
(24-11-2019, 12:24)semi napisał(a):
(23-11-2019, 22:26)macu91852 napisał(a): Stworzyłem program do wyświetlania wartości temperatury i wilgotności, który działał poprawnie.
W momencie, gdy dodałem do niego RTC, Arduino nie zwraca mi wartości liczbowych z mojego czujnika DHT.
Pokaż schemat bo po definicji DHTPIN 2 to do końca nie wiem gdzie jest podłaaczony układ tym bardziej, ze nie napisałeś jakiej płytki Arduino używasz.
@semi, dzięki. Dobrze trafiłeś miało to kolosalne znaczenie. Płytka Leonardo.
 
Odpowiedź
#7
(24-11-2019, 11:57)Robson Kerman napisał(a): W setup wywal wszystko i zostaw rtc.begin() oraz dht.begin() i napisz co się stało.
@Robson Kerman, działo by się to samo. Tak również kombinowałem trochę czasu z kodem, ale nic to nie dało. Piny były przyczyną. W Leonardo SCL i SDA (które są dodatkowo) to też piny 2 i 3. Dzięki za odpowiedź.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości