
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10


Hej allihopa, Det händer oss alla. Du bygger ett projekt, ansluter entusiastiskt alla sensorer, och helt plötsligt hänger Arduino och ingen ingång bearbetas.
"Vad händer?", Frågar du och börjar gräva igenom din kod, bara för att inse att du har fastnat i en oändlig loop. Tack och lov var Arduino på din bänk och inte på en avlägsen plats.
Idag ska vi titta på hur vi kan använda vakthundstimern på Arduino för att förhindra att detta händer.
Steg 1: Vad är denna Watchdog Timer?

Arduino vakthundstimern som namnet antyder är en timer som körs separat från huvudprocessorn på kortet. Denna timer kan användas för att regelbundet kontrollera tillståndet på kortet och under omständigheter där kortet fastnade i en programvaruslinga eller fastnade på grund av maskinvarufel kan vakthundstimern återställa Arduino och få den att börja om igen.
Som standard när timern inte används är den här timern inaktiverad på alla projekt och bara när vi aktiverar den måste vi regelbundet säga till den att den inte ska återställa vår styrelse om den fortfarande fungerar som förväntat.
För att kunna använda vakthundstimern måste vi först inkludera avr/wdt.h -filen i vår Arduino -skiss. Detta är standardbiblioteket som innehåller vakthundens åtgärder.
Steg 2: Hur aktiverar jag Watchdog Timer?


För att aktivera timern använder vi funktionen "wdt_enable" där vi måste passera i tröskelintervallet vid vilket kortet kommer att återställas. Beroende på vårt användningsfall kan detta vara allt från 15 millisekunder till upp till 8 sekunder i fördefinierade inställningar som finns i vakthundbiblioteket.
TRESHOLD - KONSTANT NAMN
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
Steg 3: Håll ditt program igång

Nu, med timern aktiverad, för att förhindra att den återställer vår Arduino måste vi regelbundet ringa funktionen "wdt_reset" för att återställa vakthundstimern innan tröskelintervallet löper ut.
När vi väljer ett återställningsintervall är det avgörande att vi tar hänsyn till alla långvariga operationer som att läsa eller skicka data eller ansluta till externa sensorer. Återställningströskeln bör vara minst en och en halv gånger större än dessa tider för att förhindra oavsiktliga återställningar.
Steg 4: Exempel på användning



I det exempelprogram som du kan ladda ner här ställde vi först in vakthundstimern med ett återställningsintervall på 4 sekunder. För att veta att vi är i installationsfunktionen blinkar vi en lysdiod 3 gånger snabbt och sedan i huvudslingan återställer vi först timern, tänder en lysdiod med successivt längre intervall och sedan stänger vi av den. Nästa slinga återställer timern igen tills tändtiden är längre än 4 sekunder.
När detta händer återställer vakthundstimern kortet och installationen utförs igen.
Steg 5: Problem med vakthundstimern
Ett möjligt problem med vakthundstimern, beroende på startladdaren på din Arduino är att om vakthundens timervärde är för lågt och startladdaren inte återställer timern när du laddar upp ny kod kan du skada ditt Arduino -kort på ett sätt som det kommer alltid att fastna i startfasen. Startladdaren kommer att försöka starta, men timern fortsätter att återställa kortet, så att den aldrig startar ordentligt. För att förhindra problem som detta, se till att alltid använda tröskelintervaller på 2 sekunder eller mer.
Steg 6: Njut

Om du har ett exempel på var du har använt vakthundstimern i ett riktigt projekt, låt mig veta i kommentarerna, se till att gilla videon och glöm inte att prenumerera.
Skål och tack för att du läser/tittar!
Rekommenderad:
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg

Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steampunked Dream Guardian Night Light: 9 steg (med bilder)

Steampunked Dream Guardian Night Light: Hej alla En nära vän till mig bad mig att skapa en förlovningsgåva (naturligtvis förutom ringen!) För sin flickvän för några veckor sedan. Båda är som jag själv, frivilliga brandmän och de älskar Steampunk Objects. Min vän tänkte på en st
Eye Guardian: Sound Triggered Eye Protection: 9 steg (med bilder)

Eye Guardian: Sound Triggered Eye Protection: Eye Guardian är ett Arduino-drivet, High Decibel kontinuerligt ljud som utlöser ögonskydd. Den upptäcker ljud från tung utrustning och sänker skyddsglasögonen medan utrustningen används. Kontur I det första steget kommer jag att förklara Inspirati
AVR -mikrokontroller. Lysdioder blinkar med timer. Timers avbryter. Timer CTC -läge: 6 steg

AVR -mikrokontroller. Lysdioder blinkar med timer. Timers avbryter. Timer CTC -läge: Hej alla! Timers är ett viktigt koncept inom elektronik. Varje elektronisk komponent fungerar på en tidsbas. Denna tidsbas hjälper till att hålla allt arbete synkroniserat. Alla mikrokontroller fungerar med någon fördefinierad klockfrekvens,
Pi Guardian: 6 steg (med bilder)

Pi Guardian: Har du någonsin velat fånga den där personen som fortsätter att stjäla ditt Halloween -godis? Eller hur är det med den irriterande rumskamraten som inte lämnar ditt kylskåp ensam? Genom att använda en Raspberry Pi 3, Pi -kamera och PIR -sensor är allt detta nu möjligt. Enkelt