Arduino UNO R4 - Botón
El botón es un componente sencillo pero importante que se utiliza en muchos proyectos de Arduino UNO R4. Puede parecer complicado debido a sus propiedades mecánicas y físicas, lo que puede resultar desafiante para los principiantes. Este tutorial está diseñado para ayudar a los principiantes a entenderlo fácilmente. ¡Comencemos!

※ Nota:
Antes de aprender cómo usar el botón con Arduino Uno R4, queremos resaltar dos errores comunes que suelen encontrar los principiantes:
- El problema de la entrada flotante:
- Síntoma: Cuando un botón está conectado a un pin de entrada de Arduino UNO R4, el estado del pin de entrada es impredecible y no se refleja en el estado del botón.
- Causa: El pin del botón no está conectado a una resistencia pull-down o pull-up.
- Solución: Conecte una resistencia pull-down o pull-up al pin de entrada. Más detalles se proporcionarán más adelante en este tutorial.
- Síntoma: El código de Arduino UNO R4 lee el estado del botón e intenta identificar eventos de pulsación detectando cambios de estado (de HIGH a LOW, o de LOW a HIGH). Sin embargo, cuando el botón se presiona solo una vez, el Arduino UNO R4 puede detectar múltiples pulsaciones.
- Causa: Las propiedades mecánicas provocan que el estado del pin de entrada cambie rápidamente entre LOW y HIGH varias veces con una sola pulsación.
- Solución: Implementar debounce. Más detalles estarán en el tutorial Arduino UNO R4 - Botón - Debounce.
El rebote solo afecta a las aplicaciones que requieren un conteo preciso de las pulsaciones del botón. En otras aplicaciones, puede que no sea un problema.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Botón Acerca de
El botón pulsador, también conocido como botón táctil o interruptor momentáneo, es un interruptor que se cierra cuando lo presionas y lo mantienes presionado, y se abre cuando lo sueltas. Los botones pulsadores vienen en diferentes tipos, principalmente se dividen en dos grupos:
- Push buttons for PCB mounting (can be used on a breadboard)
- Push buttons for mounting on a panel

Diagrama de pines
Los pulsadores montados en PCB suelen tener cuatro pines.

Estos pines están conectados entre sí en pares dentro del dispositivo, por lo que solo necesitamos usar dos de los cuatro pines que no están conectados entre sí.
Hay cuatro formas, pero en realidad son dos porque son similares, para conectar el botón (consulte la imagen).

Un botón tiene cuatro pines, pero ¿por qué solo usamos dos? ⇒ Esto es para mantenerlo estable en la placa de circuito impreso (PCB) y resistir la presión.
Los botones de montaje en panel suelen tener dos pines.

El módulo de pulsador incluye una resistencia pull-down integrada, lo que garantiza que la salida permanezca en nivel bajo cuando el botón no está presionado. Tiene tres pines:
- GND: Conecta este pin a la tierra.
- VCC: Conecta este pin a una fuente de alimentación de 5 V o 3.3 V.
- OUT: Conecta este pin a una entrada digital en tu Arduino.
Con esta configuración, el módulo produce un nivel bajo cuando el botón no está presionado y un nivel alto cuando el botón está presionado.
Cómo funciona
- Cuando el botón no está presionado, el pin A y el pin B no están conectados.
- Cuando se presiona el botón, el pin A y el pin B están conectados.

Arduino UNO R4 - Botón
Un pin del botón se conecta a VCC o GND, y el otro pin se conecta a un pin del Arduino UNO R4.
Podemos determinar si el botón está presionado o no verificando el estado de un pin en el Arduino UNO R4 configurado como entrada.
Estado del botón y estado de pulsación
La relación entre el estado del botón y el estado de la pulsación depende de cómo conectamos el botón al Arduino UNO R4 y de la configuración del pin del Arduino UNO R4.
Hay dos formas de usar un botón con Arduino UNO R4:
- Conecta una de las patillas de un botón a VCC y la otra a un pin del Arduino UNO R4 con una resistencia pull-down.
- Cuando se presiona el botón, el estado del pin del Arduino UNO R4 es ALTO. De lo contrario, el estado del pin es BAJO.
- DEBES usar una resistencia externa.
- Cuando se presiona el botón, el estado del pin del Arduino UNO R4 es BAJO. De lo contrario, el estado del pin es ALTO.
- Puedes usar una resistencia interna o externa. La resistencia interna está integrada en el Arduino UNO R4 y puede activarse mediante código de Arduino.
※ Nota:
Si no usamos una resistencia pull-down o pull-up, el pin de entrada queda "flotante" cuando el botón no está presionado. Esto significa que el estado del pin podría cambiar de forma impredecible a HIGH o LOW, causando lecturas incorrectas.
- La peor práctica: Configurar el pin del Arduino UNO R4 como entrada usando pinMode(BUTTON_PIN, INPUT) sin ninguna resistencia pull-down o pull-up.
- La mejor práctica: Configurar el pin del Arduino UNO R4 con una resistencia pull-up interna usando pinMode(BUTTON_PIN, INPUT_PULLUP). Esto no requiere una resistencia externa.
Para facilitar las cosas a los principiantes, este tutorial utiliza el método más sencillo: configurar el pin del Arduino UNO R4 como una entrada con pull-up interna sin necesidad de una resistencia externa. Los principiantes no tienen que preocuparse por conectar la resistencia de pull-up o pull-down. Solo deben usar el código de Arduino proporcionado.
Diagrama de Cableado
- Diagrama de cableado para Arduino UNO R4 y botón de montaje en PCB

This image is created using Fritzing. Click to enlarge image
- Diagrama de cableado para Arduino UNO R4 y botón de montaje en panel

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.
Cómo programar para el botón
- Configura el pin 7 del Arduino UNO R4 como una entrada pull-up interna utilizando la función pinMode().
- Utiliza la función digitalRead() para verificar el estado del pin del Arduino UNO R4.
※ Nota:
Hay dos casos de uso comunes:
- El primero: Cuando la entrada está en ALTO, realizar una acción. Cuando la entrada está en BAJO, realizar la acción opuesta.
- El segundo: Cuando la entrada cambia de BAJO a ALTO (o de ALTO a BAJO), realizar una acción.
En función del propósito, seleccionamos una de estas opciones. Por ejemplo, cuando se usa un botón para controlar un LED:
- Si necesitamos que el LED se encienda cuando se presiona el botón y se apague cuando no se presiona, debemos elegir el primer escenario.
- Si queremos que el LED cambie entre ENCENDIDO y APAGADO cada vez que se presiona el botón, debemos optar por el segundo escenario.
Código de Arduino UNO R4 - Lectura del estado del botón
Pasos R\u00e1pidos
Siga estas instrucciones paso a paso:
- Si es la primera vez que usas el Arduino UNO R4 WiFi/Minima, consulta el tutorial sobre configuración del entorno para Arduino UNO R4 WiFi/Minima en el IDE de Arduino.
- Conecta el botón al Arduino UNO R4 según el diagrama proporcionado.
- Conecta la placa Arduino Uno R4 a tu computadora mediante un cable USB.
- Inicia el IDE de Arduino en tu computadora.
- Selecciona la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
- Copia el código anterior y ábrelo en el IDE de Arduino
- Haz clic en el botón Subir en el IDE de Arduino para enviar el código a tu Arduino UNO R4.

- Abre el Monitor Serial.
- Pulsa y suelta el botón varias veces.
- Verifica el resultado en el Monitor Serial.
1 significa ENCENDIDO, 0 significa APAGADO.
Explicación del código
La explicación está en la sección de comentarios del código de Arduino anterior.
Código para Arduino UNO R4 - Detección del evento de pulsación y liberación del botón
Vamos a cambiar el código para reconocer cuándo se presionan y se sueltan los botones.
Pasos R\u00e1pidos
- Copia el código anterior y pégalo en Arduino IDE
- Haz clic en el botón Subir en Arduino IDE para enviar el código a Arduino UNO R4.
- Abre el Monitor Serial.
- Presiona y suelta el botón.
- Consulta el resultado en el Monitor Serial.
※ Nota:
- Incluso si presionas y sueltas el botón solo una vez, el Monitor Serial podría mostrar múltiples pulsaciones y liberaciones. Este comportamiento habitual se conoce como el 'fenómeno de rebote'. Puedes encontrar más detalles en el Arduino UNO R4 - Tutorial de Rebote de Botón.
- Para simplificar el proceso para principiantes que usan varios botones, desarrollamos una biblioteca llamada ezButton. Puedes aprender sobre la biblioteca ezButton aquí.
- Si estás usando el módulo de botón, configura el pin en modo de entrada usando pinMode(BUTTON_PIN, INPUT). En esta configuración, el módulo emite BAJO cuando el botón no está presionado y ALTO cuando está presionado.
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.