En electrónica y por extensión en informática, el watchdog (perro guardián) es un recurso que permite reiniciar un dispositivo físico o una aplicación cuando deja de funcionar normalmente. En concreto, referido a microcontroladores, se trata de un reloj de cuenta atrás que produce un reset cuando se desborda.
Como es lógico, el dispositivo no sabe cuándo deja de funcionar correctamente, el principio de funcionamiento consiste en impedir que la cuenta atrás termine y por tanto se produzca el reset del sistema. Para hacerlo, en primer lugar se configura el intervalo de tiempo en el que se produce el reinicio, y en segundo lugar se refresca este valor indicando así que el dispositivo funciona correctamente y por el momento no se debe reiniciar.
Para gestionar el perro guardián con Arduino debe utilizarse la librería de y sólo tres funciones: para desactivarlo mientras se configura el tiempo en el que se reseteará, que configura y activa el watchdog al tiempo que se indica como parámetro (tiempo) y que renueva el intervalo que cuenta el perro guardián.
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <avr/wdt.h> // Incluir la librería que contiene el watchdog (wdt.h) void setup() { wdt_disable(); // Desactivar el watchdog mientras se configura wdt_enable(WDTO_2S); // Configurar a dos segundos } void loop() { wdt_reset(); // Actualizar el watchdog para que no produzca un reinicio } |
Las constantes que pueden utilizarse con
para establecer el tiempo de cuenta atrás son:- = 15 milisegundos
- = 30 milisegundos
- = 60 milisegundos
- = 120 milisegundos
- = 250 milisegundos
- = 500 milisegundos
- = 1 segundo
- = 2 segundos
- = 4 segundos
- = 8 segundos
Antes de usar el watchdog es importante asegurarse de que el bootloader (gestor de arranque) que tiene el microcontrolador de la placa Arduino que se está usando ha previsto el uso de este recurso. Es conocido un error en las placas del Arduino Mega 2560 que se quedaban colgadas precisamente con programas que usaban el watchdog.
Para saber más sobre qué es un bootloader o gestor de arranque y cómo grabar uno diferente al que venga con tu placa puedes consultar el artículo sobre los métodos para programar microcontroladores de Atmel.
jorge
es necesario hacerle el bootloader al arduino uno?
Víctor Ventura
Hola, Jorge.
No sé de ningún error (actual) en el watchdog de Arduino Uno, así que, salvo que tu placa sea muy antigua, no habría que actualizar el bootloader.
El (famoso) problema en los Arduino Mega sí que fue más reciente. De todas formas, en las versiones más nuevas del bootloader, también estaba resuelto y en cualquier caso, solamente era necesario actualizar el bootloader para resolverlo; no es demasiado problema.
Saludos.
Diego
s, en arduino uno tambien esta el error, al momento de que trata de reiniciar el arduino se cuelga el programa. Hay que cambiar el bootloader. Yo lo hice utilizando optiboot como bootloader.
Rodrigo
Que tal, buen post.
Consulta, cuando el watchdog reinicia el arduino lo hace de cero? es decir se vuelve a ejecutar el setup()?
si yo no quisiera que pase esto, es posible configurar el watchdog solo como una interrupcion?
Víctor Ventura
Hola, Rodrigo.
Sí, Arduino se reinicia de cero; de hecho, hace algo más que empezar por
setup()
Para implementar la funcionalidad que dices no necesitas el watchdog. Lo mejor sería usar alguna de las «interrupciones software» del MCU pero Arduino no prevé hacer eso (fácilmente) así que puedes añadir código en
loop()
que verifique si ha pasado determinado intervalo y en tal caso (reinicie el contador de tiempo y) ejecute la función correspondiente.A ver si eso te ayuda un poco 🙂
carlos
buenos dias… como se que el wdt funciona correctamente en mi placa de arduino uno me podria dar un ejemplo?
carlos
m podria dar un ejemplo para forzar el wdt en mi placa de arduino?
Víctor Ventura
Hola, Carlos.
¿Te refieres a algo así?
Espero que te sirva. Un saludo.
carlos
que es lo que debería ver en mi placa con este código?
Víctor Ventura
Hola, Carlos.
Deberías ver en la consola serie, cada dos segundos y medio (más o menos) el texto «Esto se ve en la consola» y NO deberías ver el texto «Esto NO lo muestra en la consola porque se resetea antes». Siempre que en tu placa funcione el watchdog.
Saludos.
jorge
buenos días.. como se que que el wdt me funciona bien no veo que haga nada en mi placa (arduino uno)
Víctor Ventura
Hola, Jorge.
Como habrás leído en el artículo, en algunas versiones de Arduino simplemente no funciona. Si el problema es del firmware seguramente podrás actualizarlo.
Gracias por visitar polaridad.es
david
hola,
donde puedo descargar la libreria
Víctor Ventura
Hola, David.
No hace falta descargarla, es parte del IDE de Arduino. Solamente tienes que añadir al principio
#include <avr/wdt.h>
¡Suerte!
david
gracias por tu respuesta. lo e probado y funciona perfectamente.
Víctor Ventura
🙂
Antonio
Tengo una arduino uno conectado a un lcd 16×2.
Todo funciona bien, pero en esperas largas sin movimiento de entradas, el lcd acaba mostrando garabatos que desaparece tras un reset. Y todo vuelve a funcionar. Esto sucede en pausas de producción, esta instalado en una maquina.
Saben porque pasa esto?
Bluedark
Hola Antonio, a mi me pasa lo mismo solo que yo utilizo un lcd 20×4, pero tengo exactamente el mismo problema y de momento no he sido capaz de averiguar porque ocurre. Por favor si encuentras el problema coméntalo, yo haré lo mismo. Gracias.
Milton
Hola, favor podrían ayudarme informando de donde puedo bajarme el bootloader de la MEGA 2560. El bootloader con la corrección del watch dog me refiero. Gracias
Víctor Ventura
Hola, Milton.
En condiciones normales puedes descargarlo con el IDE de Arduino y lo encontrarás dentro de la ruta:
arduino-1.6.8/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex
Lógicamente, si tienes otra versión, los números serán diferentes, pero creo que con eso puedes hacerte una idea.
Suerte y saludos.
Milton
Hola Victor, gracias por tu ayuda.
Efectivamente encontré ese archivo que me indicas. La consulta es, ese archivo me permitiría utilizar la librería de watchdog en la 2560 r3? y la otra consulta es, como cargo ese archivo en el IDE.
Gracias…
Víctor Ventura
Hola, Milton.
Hasta donde sé, hace mucho que los problemas del watchdog en Arduino (en general y en Mega 2560 en concreto) están resueltos. Supongo, por tanto, que con ese firmware funcionará correctamente el watchdog.
Con respecto a la librería, no es exactamente de Arduino sino del entorno para programar los AVR con el compilador que usa Arduino. En definitiva, no tienes que añadir nada al IDE de Arduino, solamente incluir en tu código la librería con algo como
#include <avr/wdt.h>
Espero que te resulte útil.
Un saludo y gracias por participar en el blog 🙂
Daniel
Saludos,muy interesante todo. Tengo un problema: estoy implementando un diseño con Arduino que abra o cierre la puerta del garage recibiendo la orden de un control remoto. Pudiera ser que el proceso de apertura o cierre demore más de 8 segundos que es el límite máximo de tiempo del WDT, ¿alguna sugerencia o truco para aumentar el tiempo del WDT? Un cordial saludo. Muchas gracias
Víctor Ventura
Hola, Daniel.
Si no te hace falta el watchdog de Arduino lo puedes desactivar con
wdt_disable
(suele estar desactivado al reinicio, en tal caso bastaría con no activarlo usandowdt_enable
). De todas formas, no hace falta que una operación tarde menos del tiempo de reinicio marcado por el watchdog, solamente necesitas «refrescarlo» conwdt_reset
en un intervalo menor al configurado.A lo peor has utilizado en tu programa estructuras de controlo (seguramente
while
) que bloquean demasiado tiempo el MCU o has implementado esperas muy largas condelay
y por eso se reinicia tu placa Arduino. Corrigiendo esas partes del código podrás utilizar sin problemas el watchdog.También hay un error (un poco rebuscado, pero te lo digo por si acaso) que se produce cuando no se reconoce correctamente el tipo de MCU que incorpora la placa Arduino. De ser el caso, bastaría con definirlo «a mano» al principio del código, por ejemplo, con
#define __AVR_ATmega328P__
. Mucho más rebuscado es un viejo error en la librería wdt.h para AVR que, al desactivar el bit WDE, bajaba al mínimo el valor del prescaler; pero supongo que trabajas con una versión del IDE de Arduino actualizada, que ya tendrá resuelto este inconveniente.Gracias por participar en polaridad.es
Daniel
Gracias Víctor,precisamente ese es el problema,que abro y cierro el portón dentro de un while del que se sale sólo cuando se acciona el límite final de recorrido y éste proceso demora más de 8 segundos que es el máximo tiempo del WDT. Estoy pensando poner wdt_reset() al principio del void loop() y dentro del while……
Víctor Ventura
Claro, debes colocar
wdt_reset
dentro del buclewhile
que tarda más de 8 s para que se «refresque» mientras se completa la tarea.German
hola Victor buenas noches
muy interesantes tus aportaciones, sabia poco del watch dog, tengo una consulta estoy trabajando en un proyecto y tal vez puedas ayudarme, quiero reinicias un router con un arduino uno+sim900+modulo rele tendras alguna informacion sobre algun proyecto de este tipo,muchas gracias por tu tiempo
German
escribi mal mi email, listo.
German
hola Victor buenas noches
muy interesantes tus aportaciones, sabia poco del watch dog, tengo una consulta estoy trabajando en un proyecto y tal vez puedas ayudarme, quiero reinicias un router con un arduino uno+sim900+modulo rele tendras alguna informacion sobre algun proyecto de este tipo,muchas gracias por tu tiempo
Víctor Ventura
Hola, German.
Ahora mismo no se me ocurre ningún proyecto relacionado con lo que planteas.
Supongo que, como tu comentario está en este artículo sobre el watchdog, lo que quieres es detectar si el dispositivo está funcionando y si no es así, reiniciarlo. Abrir o cerrar un relé (si optas por ese componente) es tan sencillo como poner a nivel alto o bajo una salida digital, supongo que al recibir un SMS o una llamada controlada; creo que la parte interesante es detectar que no esté funcionando ¿Cómo lo piensas resolver? (En realidad, el watchdog sería el del router). Ahí a lo mejor sí te podemos ayudar si nos das más información.
Gracias por participar en polaridad.es
Hexa
A lo mejor es a lo bestia, si no le funciona la web, llama por teléfono a router y se reinicia 😉
Víctor Ventura
¡Ah! Creo que no lo había entendido 🙁 Entonces es más bien sobre cómo usar el SIM900. Es sencillo, utiliza órdenes AT (más o menos) estándar. Lo llaman AT cellular command interface; no estaría mal escribir un artículo al respecto.
¡Gracias! 🙂
ANGEL
Hola, estoy usando un arduino WemosD1 y me da poblemas al compilar; no encuentra la libreria .
5:22: fatal error: avr/wdt.h: No such file or directory
¿sabes cuál puede ser el problema? Muchas gracias
E:\Programs\Arduino\arduino-builder -dump-prefs -logger=machine -hardware E:\Programs\Arduino\hardware -hardware C:\Users\USER1\AppData\Local\Arduino15\packages -tools E:\Programs\Arduino\tools-builder -tools E:\Programs\Arduino\hardware\tools\avr -tools C:\Users\USER1\AppData\Local\Arduino15\packages -built-in-libraries E:\Programs\Arduino\libraries -libraries E:\USER1\ARDUINO\libraries -fqbn=esp8266:esp8266:d1:CpuFrequency=80,UploadSpeed=115200,FlashSize=4M1M -ide-version=10613 -build-path C:\Users\USER1\AppData\Local\Temp\arduino_build_947254 -warnings=default -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2 -prefs=runtime.tools.mkspiffs.path=C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\0.1.2 -prefs=runtime.tools.esptool.path=C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.9 -verbose E:\USER1\ARDUINO\webserverWemosD1_v5\webserverWemosD1_V6_rest_whatchdog.ino\webserverWemosD1_V6_rest_whatchdog.ino.ino
E:\Programs\Arduino\arduino-builder -compile -logger=machine -hardware E:\Programs\Arduino\hardware -hardware C:\Users\USER1\AppData\Local\Arduino15\packages -tools E:\Programs\Arduino\tools-builder -tools E:\Programs\Arduino\hardware\tools\avr -tools C:\Users\USER1\AppData\Local\Arduino15\packages -built-in-libraries E:\Programs\Arduino\libraries -libraries E:\USER1\ARDUINO\libraries -fqbn=esp8266:esp8266:d1:CpuFrequency=80,UploadSpeed=115200,FlashSize=4M1M -ide-version=10613 -build-path C:\Users\USER1\AppData\Local\Temp\arduino_build_947254 -warnings=default -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2 -prefs=runtime.tools.mkspiffs.path=C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\0.1.2 -prefs=runtime.tools.esptool.path=C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.9 -verbose E:\USER1\ARDUINO\webserverWemosD1_v5\webserverWemosD1_V6_rest_whatchdog.ino\webserverWemosD1_V6_rest_whatchdog.ino.ino
Using board ‘d1’ from platform in folder: C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0
Using core ‘esp8266’ from platform in folder: C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0
Detecting libraries used…
«C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++» -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/include» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include» «-IC:\Users\USER1\AppData\Local\Temp\arduino_build_947254/core» -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DARDUINO=10613 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD=»ESP8266_WEMOS_D1MINI» -DESP8266 «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\d1» «C:\Users\USER1\AppData\Local\Temp\arduino_build_947254\sketch\webserverWemosD1_V6_rest_whatchdog.ino.ino.cpp» -o «nul»
«C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++» -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/include» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include» «-IC:\Users\USER1\AppData\Local\Temp\arduino_build_947254/core» -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DARDUINO=10613 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD=»ESP8266_WEMOS_D1MINI» -DESP8266 «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\d1» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src» «C:\Users\USER1\AppData\Local\Temp\arduino_build_947254\sketch\webserverWemosD1_V6_rest_whatchdog.ino.ino.cpp» -o «nul»
«C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++» -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/include» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include» «-IC:\Users\USER1\AppData\Local\Temp\arduino_build_947254/core» -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DARDUINO=10613 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD=»ESP8266_WEMOS_D1MINI» -DESP8266 «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\d1» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src» «-IE:\USER1\ARDUINO\libraries\DHT11» «C:\Users\USER1\AppData\Local\Temp\arduino_build_947254\sketch\webserverWemosD1_V6_rest_whatchdog.ino.ino.cpp» -o «nul»
«C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++» -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/include» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include» «-IC:\Users\USER1\AppData\Local\Temp\arduino_build_947254/core» -c -w -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DARDUINO=10613 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD=»ESP8266_WEMOS_D1MINI» -DESP8266 «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\d1» «-IC:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src» «-IE:\USER1\ARDUINO\libraries\DHT11» «C:\Users\USER1\AppData\Local\Temp\arduino_build_947254\sketch\webserverWemosD1_V6_rest_whatchdog.ino.ino.cpp» -o «C:\Users\USER1\AppData\Local\Temp\arduino_build_947254\preproc\ctags_target_for_gcc_minus_e.cpp»
E:\USER1\ARDUINO\webserverWemosD1_v5\webserverWemosD1_V6_rest_whatchdog.ino\webserverWemosD1_V6_rest_whatchdog.ino.ino:5:22: fatal error: avr/wdt.h: No such file or directory
#include
^
compilation terminated.
Usando librería ESP8266WiFi con versión 1.0 en la carpeta: C:\Users\USER1\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi
Utilizando biblioteca DHT11 en carpeta: E:\USER1\ARDUINO\libraries\DHT11 (legacy)
exit status 1
Error compilación en tarjeta WeMos D1(Retired).
Víctor Ventura
Hola, Ángel.
El Wemos D1 está basado en el ESP8266 y la librería que no encuentra al compilar es para la arquitectura AVR. Aunque el error de compilación empieza al no encontrar el documento, tampoco funcionaría porque se trata de algo que se hace a un nivel bajo y que depende de MCU.
No sé exactamente qué necesitas hacer con el watchdog pero seguramente puedas resolverlo en un ESP8266 como el de los Wemos utilizando la librería ticker.
Suerte con tu proyecto y gracias por participar en polaridad.es
Alberto Coronado
Hola que tal, actualmente tengo problemas con un ESP8266 programado desde arduino, y es que lo tengo comunicado con una Raspberry Pi con protocolo Modbus TCP hasta aqui la comunicacion todo bien, cuando el ESP8266 se desconecta y vuelve a conectarse al Raspberry se conecta sin problemas, el problema viene cuando se cae el Raspberry es decir se apaga y corre de nuevo no logro que el ESP8266 se vuelva a conectar, crees que esta libreria funcione con el ESP8266 o tienen alguna idea de como hacer un reset del ESP8266? de antemano gracias.
Jose Manuel
Muy buenas. Primero las felicitaciones por tus artículos que son de gran ayuda.
Quisiera pedirte ayuda para resolver un problema que creo puede ser común para muchos usuarios. De hecho he visto en un comentario anterior de Daniel que tiene este mismo problema. ¿Conoces alguna librería en la que se pueda programar el temporizador con un tiempo superior a los 8 segundos?. En mi caso, estoy usando una placa GSM para subir a Internet señales de varios sensores. Por razones de estabilidad de la red de telefonía, o del servidor web, puntualmente el tiempo qué tarda en hacer la conexión supera los 8 segundos y el watchdog me reinicia el programa. Me gustaría poder ponerle un tiempo de 16 segundos. ¿Cómo lo podría hacer?
Muchas gracias
Víctor Ventura
Hola, Jose Manuel.
Por desgracia no conozco ninguna librería que haga lo que necesitas.
La solución más sencilla que se me ocurre es desactivar el watchdog con
wdt_disable()
mientras realizas la conexión y volverlo a activar conwdt_enable(tiempo)
al terminar.Saludos y muchas gracias por tu visita y por tus felicitaciones ¡Hasta pronto!
Juan Carlos
Buenas tardes,
Pudieron resolver esto de alguna forma? Yo estoy usando un Arduino con una placa con SIM808 y en la conexión HTTP suele tomar mas de 8 segundos. Le había puesto el Watchdog tal cual se menciona, osea deshabilitar en la conexión y vovlerlo a activar, luego de 5 días de pruebas se quedó colgado el Arduino; le quité la energía y nuevamente está trasmitiendo, puedo asumir que justo en la conexión se colgó y como está desactivado allí se colgó todo. ¿Alguna sugerencia?
Muchas gracias,
Slds!
Juan Carlos
Lima, Perú
hansel
Buenos dias
Amigos tengo un problemita pequeño error y no se como solucionarlo y acudo a ustedes q son los master en el tema para que por favor me den su ayuda
Necesito hacer un reset logico en un arduino uno pero que no se repita. estuve leyendo sobre el perro guardian pero el problema con esta libreria es que me sigue haciendo el reset continuamente. Lo que necesito es hacer un reset despues de determinado tiempo de iniciar el arduino.
Quedo atento
Éduardo
Hola
Tengo un problema con mi arduino mega, el arduino no ejecuta el código, para que se ejecuta le tengo que hacer varias pulsaciones al botón reset de alduino. ¿que puedo hacer?