Obsah:
- Krok 1: Čo je to časovač strážneho psa?
- Krok 2: Ako zapnete časovač Watchdog?
- Krok 3: Nechajte program bežať
- Krok 4: Príklad použitia
- Krok 5: Problémy s časovačom strážneho psa
- Krok 6: Užite si to
Video: Výukový program Arduino Hang Guardian - Časovač strážneho psa Arduino: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Ahoj všetci, Stáva sa to každému z nás. Postavíte projekt, nadšene pripojíte všetky senzory a zrazu Arduino visí a nespracuje sa žiadny vstup.
"Čo sa deje?", Opýtate sa a začnete kopať svoj kód, aby ste si uvedomili, že ste uviazli v nekonečnej slučke. Vďaka bohu, že Arduino bolo na vašej lavičke, a nie na odľahlom mieste.
Dnes sa pozrieme na to, ako môžeme použiť časovač strážneho psa na Arduine, aby sme tomu zabránili.
Krok 1: Čo je to časovač strážneho psa?
Časovač strážneho psa Arduino, ako naznačuje názov, je časovač, ktorý beží oddelene od hlavného CPU na doske. Tento časovač je možné použiť na pravidelnú kontrolu stavu dosky a za okolností, keď sa doska zasekne v softvérovej slučke alebo sa zasekne v dôsledku zlyhania hardvéru, môže časovač strážneho psa resetovať Arduino a nechať ho začať odznova.
V predvolenom nastavení je tento časovač deaktivovaný na všetkých projektoch a iba keď ho povolíme, musíme ho pravidelne upozorňovať, aby neresetoval našu dosku, ak stále funguje podľa očakávania.
Aby sme mohli používať časovač strážneho psa, musíme do nášho náčrtu Arduino najskôr zahrnúť súbor avr/wdt.h. Toto je štandardná knižnica, ktorá uchováva akcie strážneho psa.
Krok 2: Ako zapnete časovač Watchdog?
Na aktiváciu časovača používame funkciu „wdt_enable“, kde potrebujeme prejsť v prahovom intervale, v ktorom sa doska resetuje. V závislosti od nášho prípadu použitia to môže byť kdekoľvek od 15 milisekúnd až po 8 sekúnd vo vopred definovaných nastaveniach, ktoré sú obsiahnuté v knižnici strážneho psa.
THRESHOLD - KONSTANTNÉ MENO
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
Krok 3: Nechajte program bežať
Teraz, keď je zapnutý časovač, aby sme tomu zabránili v resetovaní nášho Arduina, musíme periodicky volať funkciu „wdt_reset“na resetovanie časovača strážneho psa pred vypršaním intervalu prahovej hodnoty.
Pri výbere intervalu resetovania je dôležité, aby sme vzali do úvahy všetky zdĺhavé operácie, ako je čítanie alebo odosielanie údajov alebo pripojenie k externým senzorom. Prah resetovania by mal byť najmenej jeden a pol krát väčší ako tieto časy, aby sa zabránilo náhodnému resetovaniu.
Krok 4: Príklad použitia
V príklade programu, ktorý si môžete stiahnuť tu, sme najskôr nastavili časovač strážneho psa s intervalom resetovania 4 sekundy. Potom, aby sme vedeli, že sme vo funkcii nastavenia, trikrát rýchlo zablikáme LED diódou a potom v hlavnej slučke najskôr vynulujeme časovač, rozsvietime LED diódu s postupne dlhšími intervalmi a potom ju vypneme. Nasledujúca slučka opäť vynuluje časovač, kým doba rozsvietenia nie je dlhšia ako 4 sekundy.
Keď sa to stane, časovač strážneho psa resetuje dosku a nastavenie sa vykoná znova.
Krok 5: Problémy s časovačom strážneho psa
Jeden z možných problémov s časovačom watchdog v závislosti od bootloadera vášho Arduina je ten, že ak je hodnota časovača watchdog príliš nízka a bootloader neresetuje časovač pri odosielaní nového kódu, môže dôjsť k poškodeniu dosky Arduino spôsobom, ktorý bude vždy uviaznutý vo fáze zavádzania. Zavádzač sa pokúsi spustiť, ale časovač bude pokračovať v resetovaní dosky, pričom nikdy nedovolí, aby sa správne spustil. Aby ste predišli takýmto problémom, vždy používajte prahové intervaly 2 sekundy alebo viac.
Krok 6: Užite si to
Ak máte príklad, kde ste časovač strážneho psa použili v skutočnom projekte, dajte mi vedieť v komentároch, dajte si lajk a video sa vám páči a nezabudnite sa prihlásiť na odber.
Na zdravie a ďakujem za čítanie/sledovanie!
Odporúča:
Výukový program Arduino - ovládanie krokového motora s potenciometrom: 5 krokov
Výukový program Arduino - ovládanie krokového motora s potenciometrom: Tento návod je písomnou verziou môjho článku „Arduino: Ako ovládať krokový motor pomocou potenciometra“; Video z YouTube, ktoré som nedávno nahral. Dôrazne vám to odporúčame skontrolovať. Môj kanál YouTube Najprv by ste mali vidieť tieto
Výukový program Arduino - Ovládanie krokového motora s ovládačom ULN 2003: 5 krokov
Výučba Arduino - Ovládanie krokového motora pomocou ovládača ULN 2003: Tento návod je písomnou verziou môjho článku „Arduino: Ako ovládať krokový motor pomocou ovládača motora ULN 2003“; Video z YouTube, ktoré som nedávno nahral. Dôrazne vám to odporúčam skontrolovať
Výukový program Arduino - krokový motor s L293D: 5 krokov
Výukový program Arduino - krokový motor s L293D: Tento návod je písomnou verziou môjho článku „Arduino: Ako ovládať krokový motor pomocou ovládača motora L293D“; Video z YouTube, ktoré som nedávno nahral. Dôrazne vám to odporúčam skontrolovať. Môj kanál YouTube
Výukový program Arduino - krokový motor s Bluetooth: 6 krokov
Výukový program Arduino - krokový motor s Bluetooth: Tento návod je písomnou verziou mojej príručky „Arduino: Ako ovládať krokový motor prostredníctvom Bluetooth (pomocou smartfónu)“V tomto projekte budeme ovládať krokový motor pomocou smartfónu cez bluetooth. Môj kanál YouTube Najprv by ste mali
Výukový program Arduino - Ovládanie servomotora s Arduino: 5 krokov
Výukový program Arduino - Ovládanie servomotora pomocou Arduina: Tento návod je písomnou verziou môjho článku „Arduino: Ako ovládať servomotor pomocou Arduina“; Video z YouTube, ktoré som nedávno nahral. Dôrazne vám to odporúčame skontrolovať. Navštívte kanál YouTube