Cómo utilizar Watchdog con Arduino

Publicado por en Arduino el 11/01/2010

Para los que no lo conozcan, el watchdog (o perro guardián), es un mecanismo de seguridad que provoca un reset del sistema en caso de que éste se haya bloqueado. Consiste en un temporizador que irá continuamente decrementando un contador, inicialmente con un valor alto. Si el programa falla o se bloquea, al no poder actualizar el contador del perro guardián a su valor de inicio, éste llegará a decrementarse hasta cero y se reseteará el sistema.

Ésto es extremadamente útil cuando queremos que nuestro sistema esté siempre disponible sin preocuparse por si se tarda demasiado en ejecutar una rutina y tener que pulsar el botón de reset. Utilizar dicho sistema con Arduino es fácil y tan sólo se necesita de incluir la librería wdt.h aunque eso si, también necesitaremos cambiar el bootloader por defecto por otro nuevo con la ayuda de un programador externo. Dispondremos de un intervalo de tiempo de entre 15ms a 8 segundos.

Os dejo un enlace donde se explica en profundidad cómo utilizar el watchdog con arduino y también la descarga del nuevo bootloader.

Enlace: Watchdog con Arduino

// Añadir la librería correspondiente
#include <avr/wdt.h>

// Añadir AL PRINCIPIO de la función setup()
wdt_disable();

// Añadir AL FINAL de la función setup()
wdt_enable(WDTO_250MS);

// Por últimmo, debesmoa segurarnos de llamar ésta función frecuentemente dentro de la función loop()
wdt_reset();


Con ésta simples lineas nos aseguramos de que la placa Arduino se reinicie automáticamente si wdt_reset() no es llamado al al menos cada 250 milisegundos (por ejemplo en caso de que un bucle tome demasiado tiempo).

Si queremos otros tiempos, estan disponibles los siguientes que van desde 15 milisegundos hasta 8 segundos:

  • WDTO_15MS
  • WDTO_30MS
  • WDTO_60MS
  • WDTO_120MS
  • WDTO_250MS
  • WDTO_500MS
  • WDTO_1S
  • WDTO_2S
  • WDTO_4S
  • WDTO_8S

Hay que tener cuidado con los tiempos cortos ya que se puede reiniciar muy rápido en el proceso de programación impidiendo el proceso!

Si te ha gustado, compártelo con tus amigos!

Ver comentarios antiguos...

Uso de Cookies

Utilizamos cookies propias y de terceros para optimizar tu visita. No utilizamos cookies para recoger información de carácter personal.

Puedes permitir su uso o rechazarlo y cambiar su configuración cuando lo desees.

Cerrar

Más información en nuestra Política de Cookies.