Sadržaj:
- Korak 1: Šta je ovaj mjerač vremena za nadzor?
- Korak 2: Kako omogućiti mjerač vremena čuvara?
- Korak 3: Neka vaš program radi
- Korak 4: Primjer upotrebe
- Korak 5: Problemi sa mjeračem vremena čuvara
- Korak 6: Uživajte
Video: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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?
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?
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
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
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
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:
Ploča za prijavu od 555 Timer IC: 11 koraka
Ploča za primjenu 555 Timer IC -a: Uvod: IC 555 timer je jedan od najkorisnijih i najpoznatijih IC -a za svakoga od nas. Moj profesionalni ugrađeni hardverski nosač počeo je dvije godine unatrag, a 2019. jedna od mojih odluka je pripremiti 45 različitih krugova pomoću 555 vremenske IC za
Elektronički krug LED Chaser -a koji koristi 555 timer IC: 20 koraka
Elektronički krug LED Chaser -a koji koristi 555 Timer IC: Kola LED tragača su najčešće korištena integrirana elektronička kola. Izuzetno se koriste u raznim aplikacijama, kao što su Signali, Sistem za formiranje riječi, sistemi prikaza itd. Tajmer 555 je konfiguriran u stabilnom načinu rada. Th
555 Timer Reaction Game: 5 koraka
555 Timer Reaction Game: Target AudienceOva instrukcija je usmjerena na ljude koji su zainteresirani za sklopove (s malo pozadine) koji traže jednostavnu igru koju možete izgraditi sa samo nekoliko jeftinih komponenti. Nivo teškoće Ovo bi bilo teško ako
Guardian V1.0 --- Nadogradnja kamere za špijuniranje vrata s Arduinom (snimanje otkrivanja pokreta i karakteristike električnog udara): 5 koraka
Guardian V1.0 ||| Nadogradnja kamere za špijuniranje vrata s Arduinom (Snimanje s detekcijom pokreta i karakteristike strujnog udara): Naručio sam kameru s špijunkom, ali kada je koristim, shvatio sam da ne postoji funkcija automatskog snimanja (aktivira se otkrivanjem pokreta). Zatim sam počeo istraživati kako to funkcionira. Da biste snimili video, trebate 1- držati pritisnuto dugme za napajanje gotovo 2 sekunde
Pi Guardian: 6 koraka (sa slikama)
Pi Guardian: Jeste li ikada htjeli uloviti tu osobu koja vam stalno krade slatkiše za Noć vještica? Ili šta je sa onim dosadnim cimerom koji neće ostaviti vaš frižider sam? Korištenjem Raspberry Pi 3, Pi kamere i PIR senzora sve je to sada moguće. Simpl