Cómo leer pulsadores con ESP32


Con el ESP32 podemos leer su estado para realizar acciones como encender un LED, cambiar de modo o enviar datos

Cómo leer pulsadores con ESP32
oscar Escrito por oscar 18 June 2025 52 0

Los pulsadores (o botones) son uno de los componentes más básicos y útiles en electrónica. Con el ESP32 podemos leer su estado para realizar acciones como encender un LED, cambiar de modo o enviar datos.

Hoy te enseño cómo conectar y programar un pulsador en ESP32 de forma sencilla y efectiva.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Introducción al esp32 En este post encontrara los link de los circuitos, montajes y proyectos realizados con esta placa.
Hoja de dato esp32 Están todas las características de hardware que posee la placa esp32, ademas de los pines de esta misma.
Instalar entorno trabajo esp32 En este post esta el paso a paso para poder instalar y configurar el entorno de trabajo para la placa esp32.

ESP32

Pines esp32
Pines esp32

🧰 Materiales

Los materiales que trabajamos en es este proyecto son los básicos para poder encender el led.

Material Cantidad Descripción
ESP32 1 Controlador del circuito
1 Pulsador (push button) 1 Indicador de luminosidad
Resistencia de 1k 1 Resistencia de protección del circuito
Protoboard y cables 1 Cables macho macho

⚡ Esquema de conexión

Podemos conectar el pulsador en modo circuito pull up para inyectar un 1 lógico, al momento de presionar el pulsador, enviara un 0 lógico el cual el ESP32 leerá en el pin 23.

ESP32 pulsador pull up
ESP32 pulsador pull up

Podemos conectar el pulsador en modo circuito pull down para inyectar un 0 lógico, al momento de presionar el pulsador, enviara un 1 lógico el cual el ESP32 leerá en el pin 23.

ESP32 pulsador pull down
ESP32 pulsador pull down

 

 

🧪 Código de ejemplo (Arduino IDE)

Nos guiaremos con el ejemplo que ya realizamos para arduino blink, solo vamos a cambiar el numero de pin, vemos el código.

El siguiente código esta diseñado para el circuito circuito pull up como esta en la primera imagen:

#define BOTTON_PIN 23 // Pin conectado al pulsador
#define LED 2    // Pin del LED integrado del ESP32

void setup() {
  pinMode(BOTTON_PIN, INPUT_PULLUP); // Activamos la resistencia pull-up interna
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  int estadoBoton = digitalRead(BOTTON_PIN); // Leemos el botón
Serial.println(estadoBoton);
  if (estadoBoton == LOW) { // LOW significa que está presionado
    digitalWrite(LED, HIGH); // Encendemos LED
    Serial.println("Botón presionado");
  } else {
    digitalWrite(LED, LOW); // Apagamos LED
  }

  delay(10); // Pequeño retardo para evitar rebotes
}

El siguiente código esta para el circuito pull down 

#define BOTTON_PIN 23 // Pin conectado al pulsador
#define LED 2    // Pin del LED integrado del ESP32

void setup() {
  pinMode(BOTTON_PIN, INPUT_PULLUP); // Activamos la resistencia pull-up interna
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  int estadoBoton = digitalRead(BOTTON_PIN); // Leemos el botón
Serial.println(estadoBoton);
  if (estadoBoton == HIGH) { // HIGH significa que está presionado
    digitalWrite(LED, HIGH); // Encendemos LED
    Serial.println("Botón presionado");
  } else {
    digitalWrite(LED, LOW); // Apagamos LED
  }

  delay(10); // Pequeño retardo para evitar rebotes
}
  • INPUT_PULLUP: activa una resistencia interna para mantener el pin en HIGH.
  • digitalRead: detecta si el botón está presionado.
  • Al presionar el botón, el pin se pone en LOW, así que se enciende el LED.

🔄 ¿Cómo evitar rebotes?

Los pulsadores generan ruido eléctrico al cambiar de estado. Puedes evitarlo con:

  • Un pequeño delay(50)
  • Lógica de debounce con millis() si quieres algo más robusto.

Prueba de compilación y carga del script

Vamos a crear un proyecto por el momento vacío para ver como se compila y se carga el script a la tarjeta, lo primero que vamos a ver es a configuración de las variables para el compilador del esp32, aunque no vamos a modificar por que trabajaremos con las que trae por defecto, las cuales son las siguientes:

ESP32 pulsador

 


Comentario

Debe aceptar antes de enviar