¿Cómo configuro un temporizador de vigilancia de hardware con un Arduino?
¿Cómo configuro un temporizador de vigilancia de hardware con un Arduino?
Hay una serie de chips de vigilancia de hardware dedicados disponibles, pero es bastante fácil hacerlo con un temporizador IC 555 normal y un par de piezas de soporte. Con el 555 configurado en modo astable con un período "ALTO" muy largo y un período "BAJO" relativamente corto (quizás 0,3 segundos), la salida se puede conectar al pin de reinicio del Arduino a través de un diodo para hacer que el perro guardián sea un colector abierto dispositivo. Luego, el Arduino puede reiniciar periódicamente el watchdog utilizando una salida digital para activar un transistor que descarga el condensador de temporización conectado al 555, evitando que llegue a un punto de disparo que haga que se reinicie el Arduino.
Puede encontrar información básica sobre un proyecto para hacer esto en enlace
Ya hay un temporizador de vigilancia integrado en el chip atmega; puede usar avr/wdt.h
para manipularlo.
Un ejemplo rápido:
#include <avr/wdt.h>
void setup() {
wdt_enable(WDTO_500MS); // have the wdt reset the chip
// if 500ms passes without a reset
}
void loop() {
wdt_reset(); // reset the wdt
}