Arduino - externí watchdog s 555

U procesorů (Arduino UNO atd..) lze používat k hlídání chodu zařízení (proti zamrznutí programu) interní hw watchdog viz tento článek. Nevýhoda ale je, že interval tiku watchdogu může být maximálně 8 vteřin (po této době časovač ve watchdogu přeteče a dojde k resetu procesoru). Pokud používáme například GSM modul pro komunikaci Arduina s Internetem je čas 8 vteřin opravdu málo (než se modem stačí zalogovat do sítě už je tu restart...). Tato konstrukce řeší problém s krátkým časem interního watchdogu.

ZDARMA

  • schema

DONATE

  • zdroj + hex pro Arduino IDE, desky spojů a gerber (Eagle)

Srdcem zařízení je časovač 555, který je zapojen jako MKO (monostabilní klopný obvod). Princip: náš hlídaný procesor (například UNO s ATmega 328) bude na některém pinu generovat každou třeba minutu puls (HIGH/LOW). Tento puls bude vybíjet kondenzátor u časovače 555, na výstupu časovače bude log. "1" -> nedojde k resetu procesoru. Pokud procesor z nějakého důvodu zamrzne nebude na pinu generovat log. "1" a log. "0". Po uplynutí doby MKO (až se nabíje kondenzátor C1 na určitou hodnotu) dojde k překlopení výstupu 555 do log. "0" a tím resetu procesoru. Čas MKO v této konstrukci je nastaven na cca 2 minuty (do této doby musí být kondenzátor C1 vybit, jinak dojde k restartu cpu).

Schéma zapojení

schema 555 wdt

Deska plošného spoje

deska 555 wdt

IMG 20151027 071115

IMG 20151027 105430

Příklad kódu v Arduino IDE

test