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, Srpanj
Anonim
Image
Image

Pozdrav svima, To se događa svima nama. Vi gradite projekt, entuzijastično povezujete sve senzore i odjednom Arduino visi i nikakav se ulaz ne obrađuje.

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

Danas ćemo pogledati kako možemo upotrijebiti nadzorni mjerač vremena na Arduinu da se to spriječi.

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

Kako omogućiti mjerač vremena za nadzor?
Kako omogućiti mjerač vremena za nadzor?

Arduino watchdog timer, kao što naziv implicira, je timer 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 je zapela zbog kvara na hardveru, mjerač vremena za nadzor može resetirati Arduino i pokrenuti ga iznova.

Prema zadanim postavkama, kad se ne koristi, taj je mjerač vremena onemogućen na svim projektima i samo kad ga omogućimo, moramo ga povremeno obavijestiti 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 knjižnica koja sadrži radnje čuvara.

Korak 2: Kako omogućiti mjerač vremena za nadzor?

Kako omogućiti mjerač vremena za nadzor?
Kako omogućiti mjerač vremena za nadzor?
Kako omogućiti mjerač vremena za nadzor?
Kako omogućiti mjerač vremena za nadzor?

Da bismo omogućili mjerač vremena, koristimo funkciju “wdt_enable” gdje moramo ući u prazni interval u kojem će se ploča resetirati. Ovisno o našem načinu uporabe, 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 poništavanje mjerača vremena prije isteka praga.

Prilikom odabira intervala resetiranja ključno je uzeti u obzir sve dugotrajne operacije poput čitanja ili slanja podataka ili povezivanja s vanjskim senzorima. 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 uporabe

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 s 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 resetira mjerač vremena sve dok vrijeme uključivanja ne bude duže od 4 sekunde.

Kad se to dogodi, mjerač vremena čuvara resetira ploču i postavljanje se ponovno izvodi.

Korak 5: Problemi s mjeračem vremena za nadzor

Jedan od mogućih problema s mjeračem vremena za nadzor, ovisno o pokretačkom sustavu za učitavanje vašeg Arduina, jest da ako je vrijednost mjerača nadzornog sata preniska i pokretački program za učitavanje ne resetira mjerač vremena pri prijenosu novog koda, mogli biste oštetiti svoju 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 da se pravilno pokrene. Da biste spriječili ovakve probleme, uvijek koristite pragove od 2 sekunde ili više.

Korak 6: Uživajte

Uživati
Uživati

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čeni: