Sadržaj:
- Korak 1: Što je ovaj mjerač vremena za nadzor?
- Korak 2: Kako omogućiti mjerač vremena za nadzor?
- Korak 3: Neka vaš program radi
- Korak 4: Primjer uporabe
- Korak 5: Problemi s mjeračem vremena za nadzor
- Korak 6: Uživajte
Video: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
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?
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?
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
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
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
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:
Ploča za prijavu od 555 Timer IC: 11 koraka
Ploča za prijavu od 555 Timer IC: Uvod: IC 555 timer je jedan od najkorisnijih i najpoznatijih IC 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 koristeći 555 IC timer za
555 Timer Reaction Game: 5 koraka
555 Timer Reaction Game: Target AudienceOva instrukcija namijenjena je ljudima koji su zainteresirani za sklopove (s malo pozadine) koji traže jednostavnu igru koju možete izgraditi sa samo nekoliko jeftinih komponenti. Razina poteškoće Ovo bi bilo teško ako
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola: 4 koraka
Atmega128A Proporcionalna vožnja motorom - ATMEL ICE AVR Timer UART PWM kontrola: U ovom uputstvu ću vam objasniti kako kontrolirati istosmjerni motor s PWM komunikacijom putem UART ručice timera prekida. Prije svega, upotrijebit ćemo razvojnu ploču AVR jezgrenog sustava koje možete pronaći na Aliexpressu oko 4 USD. Razvojna ploča
Guardian V1.0 --- Nadogradnja kamere za špijuniranje vrata s Arduinom (snimanje otkrivanja pokreta i značajke strujnog udara): 5 koraka
Guardian V1.0 ||| Nadogradnja kamere za špijuniranje vrata s Arduinom (Snimanje otkrivanja pokreta i značajke strujnog udara): Naručio sam kameru s špijunkom, ali kad sam je koristio, shvatio sam da ne postoji funkcija automatskog snimanja (aktivira se otkrivanjem pokreta). Zatim sam počeo istraživati kako to radi. Da biste snimili video, trebate 1- držati pritisnutu tipku za uključivanje gotovo 2 sekunde
Pi Guardian: 6 koraka (sa slikama)
The Pi Guardian: Jeste li ikada htjeli uloviti tu osobu koja vam stalno krade slatkiše za Noć vještica? Ili što je s onom dosadnom cimericom koja vam neće ostaviti hladnjak na miru? Korištenjem Raspberry Pi 3, Pi kamere i PIR senzora sve je to sada moguće. Simpl