Sadržaj:

Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 koraka
Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 koraka

Video: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 koraka

Video: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 koraka
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Juli
Anonim
Image
Image

Zdravo svima, To se dešava svima nama. Gradiš projekt, entuzijastično povezuješ sve senzore i odjednom Arduino visi i ne obrađuje se ulaz.

"Što se događa?", Pitat ćete i početi kopati po svom kodu, samo da shvatite da ste se zaglavili u beskonačnoj petlji. Hvala Bogu da je Arduino bio na vašoj klupi, a ne na udaljenoj lokaciji.

Danas ćemo pogledati kako možemo upotrijebiti mjerač vremena čuvara na Arduinu kako bismo spriječili da se to dogodi.

Korak 1: Šta je ovaj mjerač vremena za nadzor?

Kako omogućiti mjerač vremena čuvara?
Kako omogućiti mjerač vremena čuvara?

Arduino watchdog timer, kao što naziv govori, je mjerač vremena koji radi odvojeno od glavnog CPU -a na ploči. Ovaj mjerač vremena može se koristiti za povremenu provjeru stanja ploče, a u slučajevima kada se ploča zaglavila u softverskoj petlji ili se zaglavila zbog kvara na hardveru, mjerač vremena čuvara može resetirati Arduino i pokrenuti ga iznova.

Prema zadanim postavkama, kad se ne koristi, taj timer je onemogućen na svim projektima i samo kad ga omogućimo, moramo se pobrinuti da mu povremeno kažemo da ne resetira našu ploču ako i dalje radi kako se očekuje.

Da bismo mogli koristiti mjerač vremena čuvara, prvo moramo uključiti datoteku avr/wdt.h u našu Arduino skicu. Ovo je standardna biblioteka koja sadrži radnje čuvara.

Korak 2: Kako omogućiti mjerač vremena čuvara?

Kako omogućiti mjerač vremena čuvara?
Kako omogućiti mjerač vremena čuvara?
Kako omogućiti mjerač vremena čuvara?
Kako omogućiti mjerač vremena čuvara?

Da bismo omogućili mjerač vremena, koristimo funkciju “wdt_enable” gdje moramo ući u interval praga u kojem će se ploča resetirati. Ovisno o našem slučaju upotrebe, to može biti od 15 milisekundi do 8 sekundi u unaprijed definiranim postavkama koje se nalaze u biblioteci čuvara.

PRAG - STALNI NAZIV

15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

Korak 3: Neka vaš program radi

Neka vaš program radi
Neka vaš program radi

Sada, s omogućenim mjeračem vremena, kako bismo spriječili njegovo resetiranje našeg Arduina, moramo povremeno pozivati funkciju “wdt_reset” za resetiranje mjerača vremena unatrag prije isteka praga.

Prilikom odabira intervala za resetiranje ključno je uzeti u obzir sve dugotrajne operacije poput čitanja ili slanja podataka ili povezivanja na vanjske senzore. Prag resetiranja trebao bi biti barem jedan i pol puta veći od ovih vremena kako bi se spriječilo slučajno resetiranje.

Korak 4: Primjer upotrebe

Primjer upotrebe
Primjer upotrebe
Primjer upotrebe
Primjer upotrebe
Primjer upotrebe
Primjer upotrebe

U primjeru programa koji možete preuzeti ovdje, prvo smo postavili mjerač vremena za nadzor sa intervalom za resetiranje od 4 sekunde. Zatim da bismo znali da smo u funkciji postavljanja, 3 puta brzo trepćemo LED diodu, a zatim u glavnoj petlji prvo resetiramo mjerač vremena, palimo LED s postupno dužim intervalima, a zatim ga isključujemo. Sljedeća petlja ponovno postavlja tajmer sve dok vrijeme uključivanja ne bude duže od 4 sekunde.

Kada se to dogodi, mjerač vremena čuvara resetira ploču i postavljanje se ponovo izvodi.

Korak 5: Problemi sa mjeračem vremena čuvara

Jedan od mogućih problema s mjeračem vremena za nadzor, ovisno o pokretaču za pokretanje vašeg Arduina, je taj da ako je vrijednost mjerača nadzornog sata preniska i pokretački program za učitavanje ne poništava tajmer pri učitavanju novog koda, možete oštetiti vašu Arduino ploču na način da uvijek će ostati zaglavljen u fazi pokretanja. Bootloader će se pokušati pokrenuti, ali mjerač vremena će nastaviti poništavati ploču, ne dopuštajući joj pravilno pokretanje. Da biste spriječili ovakve probleme, uvijek koristite pragove od 2 sekunde ili više.

Korak 6: Uživajte

Uživajte
Uživajte

Ako imate primjer gdje ste koristili mjerač vremena u pravom projektu, javite mi u komentarima, obavezno lajkujte video i ne zaboravite se pretplatiti.

Svaka čast i hvala na čitanju/gledanju!

Preporučuje se: