Watch Dog Timer + Arduino

8

¿Cómo configuro un temporizador de vigilancia de hardware con un Arduino?

    
pregunta littlebirdceo

3 respuestas

7

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

    
respondido por el jonoxer
13

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
}
    
respondido por el phooky
3

He oído que se han informado algunos problemas con el WDT y el cargador de arranque normal, por lo que es posible que desee probar otro cargador de arranque, por ejemplo, Adaboot.

Además, puedes hacer muchas más cosas con el WDT además de solo reiniciar. Recomiendo enlace

    
respondido por el Dirk

Lea otras preguntas en las etiquetas