• 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
DHT22 wieszanie Arduino przy współpracy z innymi czujnikami
#2
Wrzuć tu bibliotekę Timers.h.  Zapewne ona miesza się z tą do DHT. Albo inaczej poukładaj sobie zadania w pętli, albo zastosuj czujnik na I2C. W każdym wypadku funkcja akcja.attach(1,2000,czujniki); nie będzie dobrze działać na program. Każdy czujnik osobno powinieneś tak wywoływać i już taka akcja trwa długo w świecie procków (po kilkadziesiąt ms każdy czujnik). Potem sobie zebrać dane w innej i porobić z nimi co tam potrzebujesz.
Posprawdzaj sobie ile trwają bloki kodu w tej funkcji.

Kod:
uint32_t start=micros();
costam();
uint32_t stop=micros();
uint32_t iletrwalo=stop-start;
Serial.println(iletrwalo);

Odczyt DS może trwać 25ms, ale pod warunkiem że włączysz mu tryb asynchroniczny - każesz mierzyć i koniec, wracasz za jakiś czas, odczytujesz i każesz mierzyć. Albo każesz mierzyć bo za 1s wynik będzie potrzebny, wracasz za tę 1s i odczytujesz tylko.  W międzyczasie procesor ogarnia resztę kodu. W bibliotece od Adafruit DallasTemperature jest do tego specjalna funkcja, sprawdź jak jest w tej. Bez tego odczyt trwa 750ms, dwa czujniki to 1500ms, do tego delay przy odczycie ciśnienia (dlaczego nie robisz tak jak przy DS, odczyt i wezwanie do nowego pomiaru). Jak taka funkcja trwa Ci 5000 ms to albo ta wywoływana co 500 ms się nie wykonuje albo przerywa działanie tej.  Zastanów się też jak często  potrzebujesz sprawdzać temperaturę/wilgotność. Jak dwa pomiary zajmują Ci 1200ms, to wywoływanie ich co 1s zabiera 120% mocy obliczeniowej procka, czego oczywiście nie masz. Jak to samo wywołasz co 60s to już zabiera 2%, no czasem tylko animacja na ekranie dostanie czkawki (gdybyś taką miał). A jakbyś miał taką funkcję rozbitą dla każdego czujnika i to w trybie asynchronicznym to pykasz sobie po 25ms na każdą sekundę i odczyty możesz mieć nawet co 5s bez istotnego obciążenia procesora.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: DHT22 wieszanie Arduino przy współpracy z innymi czujnikami - przez kaczakat - 20-05-2018, 17:56

Skocz do:


Przeglądający: 1 gości