Un necesidad habitual puede darse cuando intentas instalar WatchDog en un arduino nano (chino) y te llevas la sorpresa que no funciona o que se vuelve loco al cargarle un sketch con las librerias de watchdog.
Un buen bootloader es Optiboot, entre sus virtudes destaca la posibilidad de subir sketch mas grandes (libera unos 2000k adicionales con respecto al bootloader normal) y por supuesto la posibilidad de usar la libreria watchdog sin que se bloquee.
Los pasos son los siguientes:
1.- Descargamos Optiboot (web oficial https://code.google.com/p/optiboot/ )
A fecha de hoy estoy usando este archivo
2.- Logicamente debemos de tener instalado el IDE de arduino http://www.arduino.cc/
3.- Descomprimimos el zip del primer paso y lo copiamos dentro de la carpeta
C:\Users\Usuario\Documents\Arduino\hardware
(importante la carpeta hardware habra que crearla a mano si no existe)
En resumen dentro quedara una carpeta llamada optiboot dentro de la carpeta hardware (dentro de optiboot estaran las carpetas bootloaders y examples, asi como un archivo de .txt)
4.- Conectamos el arduino que usaremos de programador al cable usb y cargaremos el sketch ArduinoISP que se encuentra dentro de "ejemplos" del menu del IDE Arduino (Archivo - ejemplos - ArduinoISP)
5.- Conectamos el arduino programador al arduino que queremos programar como muestran las siguientes fotos:
- Código: Seleccionar todo
Arduino without | Arduino as ISP
bootloader | programmer
__________________|________________
ICSP pin#1 (MISO) | D12
ICSP pin#2 (+5V) | 5V
ICSP pin#3 (SCK) | D13
ICSP pin#4 (MOSI) | D11
ICSP pin#5 (RST) | D10
ICSP pin#6 (GND) | GND
__________________|________________
6.- Ahora conectamos el programador y configuramos el programador como Arduino como ISP (tools - Programmers - Arduino as ISP).
7,- Lo siguiente es seleccionar la targeta arduino, concretamente habran aparecido nuevas targetas dentro de tool - boards , nos interesa las que tienen la etiqueta optiboot seguido de nuestro modelo de placa.
8.- Seleccionamos tool - burn bootloader. y esperamos (ES MUY POSIBLE QUE DA FALLO AL PRIMER INTENTO, PULSAMOS OTRA VEZ Y DEBERIA FUNCIONAR)
9.- Si todo ha ido bien ya tendremos nuestra placa con optiboot, a partir de aqui podremos instalar algun ejemplo de watchdog y probar su buen funcionamiento:
- Código: Seleccionar todo
/*
EJEMPLO DE USO DE PERRO GUARDIAN
*/
//Incluimos Libreria
#include <avr/wdt.h>
int c=1;
void setup() {
wdt_disable();//Disabled durante las configuraciones, algunas configuranciones llevan mucho tiempo wifi, gsm...
/************************/
//Zona de configuraciones
Serial.begin(9600);
Serial.println("Inicando Sistema");
/************************/
wdt_enable(WDTO_8S );//Una vez configurado el sistema iniciamos perro guardian, en este ejemplo 8sg
}
void loop() {
Serial.print("Ciclo numero ");
Serial.println(c);
delay(c*1000);
c+=1;
wdt_reset();
}