Indholdsfortegnelse:

The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 trin
The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 trin

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 trin

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 trin
Video: Arduino Watch Dog Timer / AVR 2024, Juli
Anonim
Image
Image

Hej allesammen, Det sker for os alle. Du bygger et projekt, forbinder entusiastisk alle sensorerne, og pludselig hænger Arduino og ingen input behandles.

"Hvad sker der?", Vil du spørge og begynde at grave gennem din kode, kun for at indse, at du er gået fast i en uendelig loop. Gudskelov var Arduino på din bænk og ikke et fjernt sted.

I dag vil vi se på, hvordan vi kan bruge vagthundstimeren på Arduino for at forhindre, at dette sker.

Trin 1: Hvad er denne vagthundstimer?

Sådan aktiveres Watchdog -timeren?
Sådan aktiveres Watchdog -timeren?

Arduino vagthundstimeren, som navnet antyder, er en timer, der kører adskilt fra hoved -CPU'en på brættet. Denne timer kan bruges til periodisk at kontrollere tavlens tilstand og under omstændigheder, hvor tavlen sad fast i en softwareløkke eller satte sig fast på grund af hardwarefejl, kan vagthundstimeren nulstille Arduino og få den til at starte forfra.

Som standard er denne timer deaktiveret på alle projekter, når den ikke er i brug, og kun når vi aktiverer den, skal vi med jævne mellemrum fortælle den, at den ikke skal nulstille vores board, hvis den stadig fungerer som forventet.

For at kunne bruge vagthundstimeren skal vi først inkludere avr/wdt.h -filen i vores Arduino -skitse. Dette er standardbiblioteket, der indeholder vagthundens handlinger.

Trin 2: Sådan aktiveres Watchdog -timeren?

Sådan aktiveres Watchdog -timeren?
Sådan aktiveres Watchdog -timeren?
Sådan aktiveres Watchdog -timeren?
Sådan aktiveres Watchdog -timeren?

For at aktivere timeren bruger vi funktionen "wdt_enable", hvor vi skal passere i tærskelintervallet, hvormed tavlen nulstilles. Afhængigt af vores brugstilfælde kan dette være alt fra 15 millisekunder til op til 8 sekunder i foruddefinerede indstillinger, der findes i vagthundens bibliotek.

TÆRKEL - KONSTANT NAVN

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

Trin 3: Hold dit program kørende

Hold dit program kørende
Hold dit program kørende

Når timeren er aktiveret, skal vi med jævne mellemrum kalde funktionen “wdt_reset” for at nulstille vores Arduino, før tærskelintervallet udløber.

Når vi vælger et nulstillingsinterval, er det afgørende, at vi tager højde for enhver langvarig operation som at læse eller sende data eller oprette forbindelse til eksterne sensorer. Nulstillingstærsklen bør være mindst halvanden gang større end disse tider for at forhindre utilsigtede nulstillinger.

Trin 4: Eksempel på brug

Eksempel på brug
Eksempel på brug
Eksempel på brug
Eksempel på brug
Eksempel på brug
Eksempel på brug

I det eksempelprogram, som du kan downloade her, konfigurerede vi først vagthundstimeren med et nulstillingsinterval på 4 sekunder. For at vide, at vi er i opsætningsfunktionen, blinker vi en LED hurtigt 3 gange, og derefter i hovedsløjfen nulstiller vi først timeren, tænder en LED med gradvist længere intervaller, og derefter slukker vi den. Den næste sløjfe nulstiller timeren igen, indtil oplysningstiden er længere end 4 sekunder.

Når dette sker, nulstiller vagthundstimeren brættet, og opsætningen udføres igen.

Trin 5: Problemer med Watchdog Timer

Et muligt problem med vagthundstimeren afhængigt af bootloaderen på din Arduino er, at hvis vagthundens timerværdi er for lav, og bootloaderen ikke nulstiller timeren, når du uploader ny kode, kan du ende med at beskadige dit Arduino -kort på en måde, der det vil altid sidde fast i opstartsfasen. Bootloaderen forsøger at starte, men timeren vil fortsætte med at nulstille brættet og aldrig lade det starte korrekt. For at forhindre problemer som dette skal du altid bruge tærskelintervaller på 2 sekunder eller mere.

Trin 6: Nyd det

god fornøjelse
god fornøjelse

Hvis du har et eksempel på, hvor du har brugt vagthundstimeren i et rigtigt projekt, så lad mig vide det i kommentarerne, sørg for at like videoen og glem ikke at abonnere.

Skål og tak fordi du læste/så med!

Anbefalede: