ESP32 - LED que se alterna con el botón

Este tutorial te enseña cómo usar el ESP32 para alternar el estado de un LED entre encendido y apagado cuando se presiona un botón. Más específicamente:

El código del ESP32 contiene código para un botón que alterna un LED con y sin antirrebote.

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Botón para Protoboard con Tapa
1×Kit de Botón para Protoboard
1×Botón Pulsador de Panel
1×Módulo de Botón Pulsador
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Protoboard
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Acerca de LED y botón

Tenemos tutoriales específicos sobre LED y un botón. Cada tutorial contiene información detallada y instrucciones paso a paso sobre la asignación de pines de hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtén más información sobre ellos en los siguientes enlaces:

Diagrama de Cableado

Diagrama de cableado de LED y botón para ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

Código ESP32: El botón alterna el LED sin rebote

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-button-toggle-led */ #define BUTTON_PIN 18 // ESP32 pin GPIO18, which connected to button #define LED_PIN 21 // ESP32 pin GPIO21, which connected to led // variables will change: int led_state = LOW; // the current state of LED int button_state; // the current state of button int last_button_state; // the previous state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode button_state = digitalRead(BUTTON_PIN); } void loop() { last_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if (last_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado tal como se ve en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre el IDE de Arduino en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Subir del IDE de Arduino.
  • Mantén pulsado el botón durante varios segundos y luego suéltalo.
  • Observa el cambio en el estado del LED.

Explicación del código línea por línea

El código ESP32 anterior contiene una explicación línea por línea. ¡Por favor, lea los comentarios del código!

En el código, led_state = !led_state es equivalente al siguiente código:

if(led_state == LOW) led_state = HIGH; else led_state = LOW;

※ Nota:

El código anterior no incluye el código de rebote para el botón. Sin anti-rebote para el botón, pueden ocurrir comportamientos inesperados. Vea Por qué se necesita el anti-rebote para el botón. La implementación del anti-rebote para el botón es complicada para los principiantes. Afortunadamente, la biblioteca ezButton se encarga del anti-rebote del botón por nosotros.

Código ESP32 - El botón alterna el LED con anti-rebote

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-button-toggle-led */ #include <ezButton.h> #define BUTTON_PIN 18 // ESP32 pin GPIO18, which connected to button #define LED_PIN 21 // ESP32 pin GPIO21, which connected to led ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; // variables will change: int led_state = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggleed sate digitalWrite(LED_PIN, led_state); } }

Pasos R\u00e1pidos

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.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!