Arduino: Long Time Hardware Watchdog

Arduino: Long Time Hardware Watchdog


Kiekviena skaitmeninė sistema turi savybę "pakibti", gal dėl programuotojo kaltės, gal dėl elektros, gal dėl kokių nors nežemiškų problemų. Norint išvengti panašių "pakibimų" buvo sugalvotas watchdog - "sarginis šuo". Watchdog paskirtis - saugoti skaitmeninę sistemą nuo "pakibimo". "Pakibusią" sistemą watchdog dažniausiu atveju perkrauna ("nuspaudžia" reset).

AtMega savyje turi watchdog, kurį galima programuoti, tačiau kartkartėmis geriau, kai skaitmeininė sistema turi išorinį hardware watchdog.



Mūsų atveju geriausia naudoti 555 taimerį. Priklausomai nuo RC grandinės parametrų galime užstatyti bet kokį (suvokiamą protu) laiko tarpą, po kurio 555 taimeris suveiks ir paduos signalą į Arduino Reset.

Veikimo principai:











Time High (Seconds) T1 = 0.693 * (R1+R2) * C1
Time Low (Seconds) T2 = 0.693 * R2 * C1
Periodas: Time Period T = Time High + Time Low = 0.693 * (R1+2*R2) * C1
Dažnis: Freqeuncy f = 1/Time Period = 1/ 0.693 * (R1+2*R2) * C1 = 1.44 / (R1+2*R2) * C1






Veikiantis pavyzdys: (plokštėje kartu RS485 ir watchdog)




Aš naudoju R1 - 660K ir C1 - 100 mikro faradų RC grandinę. Watchdog suveikimo laikas - 45 sekundės. Maitinimo įtampa - 5V.



R1 - 330K ir C1 - 100 mikro faradų RC grandinė. Watchdog suveikimo laikas - 23 sekundės. Maitinimo įtampa - 5V.





Missing-Pulse Detector pagal datasheet




Arduino IDE 0022 ir OptiBoot sistemai programinis watchdog labai gražiai aprašytas čia.

Arduino Long Time WatchDog galime rasti čia. Pas mus: kopija.

Pas mus: NE555 datasheet
PDF: NE555 datasheet




Atgal į rubrikų apžvalgą   Atgal į naujienų apžvalga