ESP32 - Parpadeo de múltiples LEDs

Este tutorial te enseña cómo programar un ESP32 para hacer parpadear varios LEDs al mismo tiempo sin usar la función delay.

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×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

Tenemos un tutorial específico sobre LED. El tutorial contiene información detallada e instrucciones paso a paso sobre el pinout del hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32. Obtenga más información sobre ellos en el siguiente enlace:

Diagrama de Cableado

Diagrama de cableado de múltiples LEDs 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 - Parpadeo de varios LEDs

Para parpadear varios LEDs, no podemos usar la función delay(). En su lugar, necesitamos usar la función millis() y gestionar las marcas de tiempo.

Gestionar los sellos de tiempo al parpadear varios LEDs puede resultar desafiante para los principiantes. Afortunadamente, la biblioteca ezLED simplifica el proceso de parpadear múltiples LEDs gestionando internamente los sellos de tiempo. Esto elimina la necesidad de que los usuarios gestionen los sellos de tiempo al utilizar esta biblioteca. Además, puedes mejorar la claridad y la concisión del código al usar un arreglo de LEDs.

/* * 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-blink-multiple-led */ #include <ezLED.h> // ezLED library #define PIN_LED_1 16 // The ESP32 pin GPIO16 connected to LED 1 #define PIN_LED_2 17 // The ESP32 pin GPIO17 connected to LED 2 #define PIN_LED_3 18 // The ESP32 pin GPIO18 connected to LED 3 ezLED led1(PIN_LED_1); // create ezLED object that attach to pin PIN_LED_1 ezLED led2(PIN_LED_2); // create ezLED object that attach to pin PIN_LED_2 ezLED led3(PIN_LED_3); // create ezLED object that attach to pin PIN_LED_3 void setup() { Serial.begin(9600); led1.blink(500, 500); // 500ms ON, 500ms OFF, blink immediately led2.blink(200, 800); // 200ms ON, 800ms OFF, blink immediately led3.blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { led1.loop(); // MUST call the led1.loop() function in loop() led2.loop(); // MUST call the led2.loop() function in loop() led3.loop(); // MUST call the led3.loop() function in loop() // DO SOMETHING HERE }

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Haz el cableado como en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
  • Haz clic en el icono Bibliotecas en la barra izquierda del Arduino IDE.
  • Busca “ezLED”, luego encuentra la biblioteca ezLED de ArduinoGetStarted
  • Haz clic en el botón Instalar para instalar la biblioteca ezLED.
Biblioteca de LED para ESP32
  • 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 en el IDE de Arduino
Cómo subir código ESP32 al IDE de Arduino
  • Consulta el estado del LED

Código ESP32 - Parpadeo de múltiples LEDs usando un arreglo

Podemos optimizar el código anterior usando un arreglo de LEDs. El código de abajo utiliza el arreglo para gestionar objetos LED.

/* * 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-blink-multiple-led */ #include <ezLED.h> // ezLED library #define NUM_LED 3 // three LEDs #define PIN_LED_1 16 // The ESP32 pin GPIO16 connected to LED 1 #define PIN_LED_2 17 // The ESP32 pin GPIO17 connected to LED 2 #define PIN_LED_3 18 // The ESP32 pin GPIO18 connected to LED 3 ezLED ledArray[NUM_LED] = { ezLED(PIN_LED_1), // create ezLED object that attach to pin PIN_LED_1 ezLED(PIN_LED_2), // create ezLED object that attach to pin PIN_LED_2 ezLED(PIN_LED_3) // create ezLED object that attach to pin PIN_LED_3 }; void setup() { Serial.begin(9600); ledArray[0].blink(500, 500); // 500ms ON, 500ms OFF, blink immediately ledArray[1].blink(200, 800); // 200ms ON, 800ms OFF, blink immediately ledArray[2].blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // MUST call the led.loop() function in loop() // DO SOMETHING HERE }

Para el parpadeo flexible, consulte las demás funciones de la biblioteca ezLED.

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!