Innholdsfortegnelse:
- Trinn 1: Hva er denne vakthundstimeren?
- Trinn 2: Hvordan aktivere Watchdog -timeren?
- Trinn 3: Hold programmet kjørende
- Trinn 4: Eksempel på bruk
- Trinn 5: Problemer med Watchdog Timer
- Trinn 6: Nyt
Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Hei alle sammen, Det skjer med oss alle. Du bygger et prosjekt, kobler entusiastisk alle sensorene, og plutselig henger Arduino og ingen input blir behandlet.
"Hva skjer?", Spør du og begynner å grave gjennom koden din, bare for å innse at du har sittet fast i en uendelig sløyfe. Takk og lov Arduino var på benken din og ikke et fjerntliggende sted.
I dag skal vi se på hvordan vi kan bruke vakthundstimeren på Arduino for å forhindre at dette skjer.
Trinn 1: Hva er denne vakthundstimeren?
Arduino watchdog -timeren, som navnet tilsier, er en timer som kjøres separat fra hoved -CPU på brettet. Denne timeren kan brukes til periodisk å kontrollere brettets tilstand, og under omstendigheter der brettet ble sittende fast i en programvaresløyfe eller ble sittende fast på grunn av maskinvarefeil, kan vekterhundtimeren tilbakestille Arduino og få den til å starte på nytt.
Som standard, når denne timeren ikke er i bruk, er den deaktivert på alle prosjekter, og bare når vi aktiverer den, må vi sørge for å gi den jevnlig beskjed om ikke å tilbakestille brettet hvis det fortsatt fungerer som forventet.
For å kunne bruke vakthundstimeren må vi først inkludere avr/wdt.h -filen i vår Arduino -skisse. Dette er standardbiblioteket som inneholder vakthundens handlinger.
Trinn 2: Hvordan aktivere Watchdog -timeren?
For å aktivere timeren bruker vi funksjonen "wdt_enable" der vi må passere i terskelintervallet hvor tavlen vil bli tilbakestilt. Avhengig av vårt brukstilfelle kan dette være alt fra 15 millisekunder til opptil 8 sekunder i forhåndsdefinerte innstillinger som finnes i vakthundens bibliotek.
TRESHOLD - 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
Trinn 3: Hold programmet kjørende
Når timeren er aktivert, må vi med jevne mellomrom ringe funksjonen “wdt_reset” for å forhindre at Arduino -enheten tilbakestiller Arduino før terskelintervallet utløper.
Når du velger et tilbakestillingsintervall, er det avgjørende at vi tar i betraktning enhver langvarig operasjon som å lese eller sende data eller koble til eksterne sensorer. Tilbakestillingsgrensen bør være minst en og en halv ganger større enn disse tider for å forhindre utilsiktet tilbakestilling.
Trinn 4: Eksempel på bruk
I eksempelprogrammet du kan laste ned her, konfigurerte vi først vekterhundtimeren med et tilbakestillingsintervall på 4 sekunder. For å vite at vi er i oppsettsfunksjonen, blinker vi en LED 3 ganger raskt, og deretter i hovedsløyfen nullstiller vi først timeren, tenner en LED med gradvis lengre intervaller, og deretter slår vi den av. Den neste sløyfen tilbakestiller timeren igjen til opplystiden er lengre enn 4 sekunder.
Når dette skjer, nullstiller vekterhundtimeren brettet og oppsettet utføres på nytt.
Trinn 5: Problemer med Watchdog Timer
Et mulig problem med watchdog -timeren, avhengig av bootloader på Arduino er at hvis watchdog timer -verdien er for lav og bootloader ikke tilbakestiller timeren når du laster opp ny kode, kan du ende opp med å skade Arduino -kortet på en måte som den vil alltid sitte fast i oppstartsfasen. Oppstartslasteren vil prøve å starte, men timeren vil fortsette å tilbakestille brettet, og aldri la det starte ordentlig. For å forhindre problemer som dette, må du alltid bruke terskelintervaller på 2 sekunder eller mer.
Trinn 6: Nyt
Hvis du har et eksempel på hvor du har brukt vakthundens timer i et ekte prosjekt, gi meg beskjed i kommentarfeltet, sørg for å like videoen og ikke glem å abonnere.
Hei og takk for at du leste/så på!
Anbefalt:
KS-Tea-Timer: 4 trinn
KS-Tea-Timer: SituasjonDu er f.eks. på et kontor, og du vil brygge te slik det skal gjøres (f.eks. grønn te 2 minutter, svart te 5 minutter …), men noen ganger går du bare glipp av det riktige tidspunktet for å stoppe bryggingen og ta ut teen fra varmt vann. Det er veldig
Steampunked Dream Guardian nattlys: 9 trinn (med bilder)
Steampunked Dream Guardian Night Light: Hei alle sammen En nær venn av meg ba meg om å lage en forlovelsesgave (selvfølgelig foruten ringen!) Til kjæresten sin for noen uker siden. Begge er som meg selv, frivillige brannmenn og de elsker Steampunk Objects. Vennen min tenkte på en st
Lett å lage MIDI Hang Trommel: 4 trinn
Lett å lage MIDI Hang Trommel: Hengetrommelen, også kalt håndpanel, tanktrommel eller ståltungetrommel, er et instrument som er laget av en propantank (tom selvfølgelig) med noen tunger skåret i metallet. Tonenes tonehøyde avhenger av størrelsen og vekten på tungene. Denne pro
Eye Guardian: Sound Triggered Eye Protection: 9 trinn (med bilder)
Eye Guardian: Sound Triggered Eye Protection: Eye Guardian er en Arduino-drevet, høy-decibel kontinuerlig lyd som utløser slitasje på øyebeskyttelse. Den oppdager lyd fra tungt utstyr og senker beskyttelsesbriller mens utstyret er i bruk. Oversikt I det første trinnet vil jeg forklare Inspirati
Pi Guardian: 6 trinn (med bilder)
Pi Guardian: Har du noen gang ønsket å fange den personen som fortsetter å stjele Halloween -godteriet ditt? Eller hva med den irriterende romkameraten som ikke vil la kjøleskapet være i fred? Ved å bruke en Raspberry Pi 3, Pi Camera og PIR -sensor er alt dette nå mulig. Enkel