Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Blog / Arduino / Cómo utilizar un botón reset externo con Arduino

Cómo utilizar un botón reset externo con Arduino

Luis del Valle Hernández

Reset_Button

Como sabes, nuestro Arduino UNO ya viene con un botón reset incluido en nuestra placa. En ocasiones necesitamos replicar ese botón en otra parte de nuestro prototipado. En este artículo vamos a ver las posibilidades que tenemos y cómo usar un botón reset externo con Arduino ya sea por hardware o por software.

Imagínate que tienes un shield encima de tu placa de Arduino que te complica darle al botón del reset y ya estás cansado de coger un lápiz o similar para poder darle a este botón. O que va creciendo tu prototipado y en la carcasa que estas creando quieres añadir un botón de reset.

Construir este botón reset externo en Arduino es muy fácil. Mira el esquema para que veas de la complejidad que estoy hablando:

  • Botón reset externo

Como ves tan solo necesitamos:

  • Una placa de Arduino
  • Un pulsador
  • Dos cables
  • Necesidad de duplicar este botón

A estas alturas, si no lo conocías, ya habrás observado que hay un pin específico para esto, el pin reset, y es que los chicos de Arduino ya lo tenían claro cuando crearon esta placa. El motivo es el que te he contado, la posible dificultad de acceso al botón que viene en la placa.

Pero déjame que te cuente como funciona. Como ves tenemos un cable que sale de la tierra y por lo tanto con 0v. Este pasa por el pulsador momentáneo y de este sale otro cable hacia el pin reset. Cuando presionemos el pulsador cerramos el circuito y el botón reset se conecta a la tierra (0v) y nuestra placa de Arduino se resetea.

Según  dice la documentación oficial esta conexión al menos debe durar 2.5 µs para que la placa se resetee. Lo cual, al ser un tiempo tan pequeño, es muy difícil no cumplirlo al presionar el pulsador. Todo sin código, ni una línea. Esta es la forma hardware.  ¿Pero podríamos realizar un reset controlado con software y lanzarlo si se diera una circunstancia que lo necesitáramos?

Volvemos al campo de la imaginación. Tu prototipo esta creciendo y se esta convirtiendo en un monstruo. Ese inocente proyecto que era al inicio a llegado a un punto que a veces se bloquea y te ves obligado a resetear tu placa. O en un determinado momento del tiempo tenemos la necesidad de reiniciarlo y que vuelva a comenzar.

Para solucionar esto en Arduino vía software tenemos que acudir a una librería de ATmel, los microcontroladores con los que se monta la mayoría de placas de Arduino. La librería que nos lo soluciona se llama wdt.h. Esta librería contiene lo que se denomina watchdog o perro guardián.

Pero antes de utilizar esta librería debemos asegurarnos que podamos utilizarlo con nuestra placa de Arduino. Para ello, el bootloader de nuestra placa tiene que tener previsto el uso de esta librería y por lo tanto de esta funcionalidad. Con el Arduino UNO rev 3 no hay problema.

Si quieres echarle un vistazo a la referencia de esta librería te la dejo aquí. Y vamos ya a echar un vistazo a un código ejemplo de esta librería:

#include <avr/wdt.h> // Incluir la librería de ATmel

void setup()
{
    wdt_disable(); // Desactiva la función mientras se configura el tiempo en el que se reseteara
    wdt_enable(WDTO_2S); // Configuramos el contador de tiempo para que se reinicie en 2s
}

void loop()
{
    wdt_reset(); // Actualizar el watchdog para que no produzca un reinicio
}

En la función wdt_enable() le podemos pasar estas constantes:

WDTO_15MS = 15 milisegundos
WDTO_30MS = 30 milisegundos
WDTO_60MS = 60 milisegundos
WDTO_120MS = 120 milisegundos
WDTO_250MS = 250 milisegundos
WDTO_500MS = 500 milisegundos
WDTO_1S = 1 segundo
WDTO_2S = 2 segundos
WDTO_4S = 4 segundos
WDTO_8S = 8 segundos

El funcionamiento es muy simple y si lo juntamos con el articulo de controlar los tiempos en Arduino podríamos conseguir que se resetee la placa vía software sin necesidad a que se bloquee, sino en un tiempo determinado que nosotros estimemos y forcemos que el contador llegue a cero a través de la lógica de nuestro programa y por lo tanto se resetee.

Si estas interesado en esta librería o en cualquier otra de ATmel envíanos un email a info@programarfacil.com y profundizaremos más en estas librerías que, aunque sean desconocidas, son muy interesantes.

home assistant 2026.7

Automatizaciones Home Assistant 2026.7: por fin hablan en humano

¿Cuántas veces te has sentado delante del ordenador para hacer una triste automatización y has acabado queriendo tirar el teclado por la ventana? Eso … [+ info...]

comparativa home assistant y homey

Comparativa Home Assistant y Homey: qué sistema domótico comprar

Comparativa Home Assistant y Homey: si estás pensando en montar una casa inteligente de verdad, tarde o temprano te vas a encontrar con esta duda. ¿Me … [+ info...]

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.