Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. ¡Profundiza en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas!
¿Por qué unirse?
Soporte de Expertos: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Previsualizaciones Exclusivas: Accede anticipadamente a anuncios de nuevos productos y adelantos exclusivos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones Festivas y Sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy.
2.5 - Lectura del Valor de un Botón
Como su nombre indica, GPIO (entrada/salida de propósito general) es capaz de funcionar como pin de entrada y salida. En las lecciones anteriores usamos su función de salida; en este capítulo exploraremos su función de entrada para leer el valor de un botón.
Componentes Necesarios
Para este proyecto, necesitamos los siguientes componentes.
Es muy conveniente adquirir un kit completo, aquí tienes el enlace:
Nombre |
ITEMS EN ESTE KIT |
LINK DE COMPRA |
|---|---|---|
Kit Kepler |
450+ |
También puedes comprarlos por separado en los enlaces a continuación.
N° |
INTRODUCCIÓN DEL COMPONENTE |
CANTIDAD |
LINK DE COMPRA |
|---|---|---|---|
1 |
1 |
||
2 |
Cable Micro USB |
1 |
|
3 |
1 |
||
4 |
Varios |
||
5 |
1 (10KΩ) |
||
6 |
1 |
Esquema

Un pin del botón está conectado a 3.3V, y el otro pin está conectado a GP14. De esta forma, cuando se presiona el botón, GP14 recibirá un nivel alto. Sin embargo, cuando el botón no se presiona, GP14 queda en un estado flotante y podría tener un nivel alto o bajo. Para obtener un nivel bajo estable cuando el botón no está presionado, GP14 debe estar conectado a GND a través de una resistencia pull-down de 10K.
Conexión
Nota
Podemos imaginar el botón de cuatro patas como un botón en forma de «H». Sus dos patas del lado izquierdo (o derecho) están conectadas entre sí, lo que significa que al cruzar la línea divisoria central, conecta ambas mitades de la misma fila (por ejemplo, en mi circuito, E23 y F23 están conectados, al igual que E25 y F25).
Antes de presionar el botón, los lados izquierdo y derecho están aislados, y la corriente no puede fluir de un lado al otro.
Código
Nota
Puedes abrir el archivo
2.5_reading_button_value.inoen la rutakepler-kit-main/arduino/2.5_reading_button_value.O copia este código en el Arduino IDE.
No olvides seleccionar la placa (Raspberry Pi Pico) y el puerto correcto antes de hacer clic en el botón Upload.
Después de ejecutar el código, haz clic en el ícono de la lupa en la esquina superior derecha del IDE de Arduino (Monitor Serial).
Ahora, cuando presiones el botón, el Monitor Serial imprimirá «¡Has presionado el botón!».
¿Cómo funciona?
Para habilitar el Monitor Serial, es necesario iniciar la comunicación serial en setup() y configurar la tasa de datos a 9600.
Serial.begin(115200);
Para el botón, debemos configurar su modo en INPUT para poder leer sus valores.
pinMode(buttonPin, INPUT);
Lee el estado de buttonPin en loop() y asígnalo a la variable buttonState.
buttonState = digitalRead(buttonPin);
Si buttonState es HIGH, el LED parpadeará e imprimirá «¡Has presionado el botón!» en el Monitor Serial.
if (buttonState == HIGH) {
Serial.println("You pressed the button!");
}
Modo de Funcionamiento Pull-up
A continuación, mostramos el cableado y código para el botón en modo pull-up. Prueba este modo también.

La única diferencia con el modo pull-down es que la resistencia de 10K se conecta a 3.3V y el botón a GND, de modo que al presionar el botón, GP14 recibirá un nivel bajo, siendo opuesto al valor obtenido en el modo pull-down.
Por lo tanto, solo cambia este código a if (buttonState == LOW).
