Kazalo:

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

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

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

Zdravo vsi, To se dogaja vsem nam. Zgradite projekt, navdušeno povežete vse senzorje in nenadoma Arduino visi in vhod se ne obdela.

»Kaj se dogaja?«, Boste vprašali in začeli kopati po svoji kodi, šele potem spoznali, da ste se zataknili v neskončno zanko. Hvala bogu, da je bil Arduino na vaši klopi in ne na oddaljeni lokaciji.

Danes bomo pogledali, kako lahko s časovnikom nadzornika na Arduinu preprečimo to.

1. korak: Kaj je ta časovnik za nadzor?

Kako omogočiti časomer za nadzor?
Kako omogočiti časomer za nadzor?

Časovnik nadzornika Arduino, kot že ime pove, je časovnik, ki deluje ločeno od glavnega procesorja na plošči. Ta časovnik lahko uporabite za občasno preverjanje stanja plošče in v okoliščinah, ko se je plošča zataknila v programski zanki ali se je zataknila zaradi okvare strojne opreme, lahko časovnik nadzornika ponastavi Arduino in ga znova zažene.

Ta časovnik je privzeto, ko ni v uporabi, onemogočen pri vseh projektih in šele, ko ga omogočimo, ga moramo občasno obvestiti, naj ne ponastavi naše plošče, če še vedno deluje po pričakovanjih.

Če želimo uporabljati časomer za nadzor, moramo najprej v skico Arduino vključiti datoteko avr/wdt.h. To je standardna knjižnica, ki vsebuje dejanja nadzornika.

2. korak: Kako omogočiti časovni nadzornik?

Kako omogočiti časomer za nadzor?
Kako omogočiti časomer za nadzor?
Kako omogočiti časomer za nadzor?
Kako omogočiti časomer za nadzor?

Za omogočanje časovnika uporabljamo funkcijo “wdt_enable”, kjer moramo vstopiti v pražni interval, pri katerem se plošča ponastavi. Glede na naš primer uporabe je to lahko od 15 milisekund do 8 sekund v vnaprej določenih nastavitvah, ki jih vsebuje knjižnica nadzornikov.

PRAG - STALNO IME

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

3. korak: Naj vaš program deluje

Naj vaš program deluje
Naj vaš program deluje

Zdaj, ko je časovnik omogočen, moramo za preprečitev ponastavitve našega Arduina občasno klicati funkcijo »wdt_reset«, da ponastavimo časovnik nadzornika, preden poteče interval praga.

Pri izbiri intervala ponastavitve je ključnega pomena, da upoštevamo vsako dolgotrajno operacijo, na primer branje ali pošiljanje podatkov ali povezavo z zunanjimi senzorji. Prag ponastavitve mora biti vsaj enkrat in pol večji od teh časov, da se prepreči nenamerna ponastavitev.

4. korak: Primer uporabe

Primer uporabe
Primer uporabe
Primer uporabe
Primer uporabe
Primer uporabe
Primer uporabe

V vzorčnem programu, ki ga lahko prenesete tukaj, smo najprej nastavili časovnik nadzornika z intervalom za ponastavitev 4 sekunde. Potem, da vemo, da smo v nastavitveni funkciji, 3 -krat hitro utripamo LED, nato pa v glavni zanki najprej ponastavimo časovnik, prižgemo LED s postopno daljšimi intervali in ga nato ugasnemo. Naslednja zanka ponastavi časovnik, dokler čas osvetlitve ni daljši od 4 sekund.

Ko se to zgodi, časovnik nadzornika ponastavi ploščo in nastavitev se znova izvede.

5. korak: Težave s časovnikom nadzornika

Ena od možnih težav s časovnikom nadzornika, odvisno od zagonskega nalagalnika vašega Arduina, je, da če je vrednost časovnika nadzornega psa prenizka in zagonski nalagalnik pri nalaganju nove kode ne ponastavi časovnika, lahko poškodujete ploščo Arduino tako, da vedno bo obtičal v zagonski fazi. Bootloader se bo poskušal zagnati, vendar bo časovnik še naprej ponastavil ploščo in ji nikoli ne bo omogočil pravilnega zagona. Da bi preprečili takšne težave, vedno uporabite pragovne intervale 2 sekundi ali več.

6. korak: Uživajte

Uživajte
Uživajte

Če imate primer, kjer ste časovnik časovnika uporabili v resničnem projektu, mi to sporočite v komentarjih, video vam bo všeč in se ne pozabite naročiti.

Na zdravje in hvala za branje/ogled!

Priporočena: