ESP32 - LED - Desvanecimiento

Este tutorial te enseña cómo usar:

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

Pinout de LED

El LED incluye dos pines:

  • Pin de cátodo (-): conecta este pin a GND (0 V)
  • Pin de ánodo (+): se usa para controlar el estado del LED
Pinout del LED

Cómo funciona un LED

Después de conectar el cátodo (-) a la tierra:

  • Si conectamos GND al ánodo (+), el LED está apagado.
  • Si conectamos VCC al ánodo (+), el LED está encendido.
  • Si generamos una señal PWM en el pin del ánodo (+), el brillo del LED es proporcional al ciclo de trabajo de PWM. El ciclo de trabajo de PWM varía de 0 a 255. Cuanto mayor sea el ciclo de trabajo de PWM, más brillante estará el LED.
    • Si el valor de PWM es 0, equivale a GND ⇒ el LED está apagado.
    • Si el valor de PWM es 255, equivale a VCC ⇒ el LED está encendido al brillo máximo.
    Cómo funciona un LED

    ※ Nota:

    Normalmente se necesita una resistencia para evitar que el LED se queme. El valor de la resistencia depende de la especificación del LED.

    ESP32 - Atenuar LED

    Los pines de salida digital del ESP32 pueden programarse para generar una señal PWM. Al conectar el pin de ánodo (+) del LED al pin del ESP32, el cátodo (-) del LED a la tierra (GND), y luego programar el ESP32 para cambiar el ciclo de trabajo de la PWM, podemos atenuar el LED.

Diagrama de cableado entre LED y ESP32

Diagrama de cableado LED 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ómo programar

  • Configura el pin de un ESP32 como una salida digital utilizando la función pinMode(). Por ejemplo, el pin GPIO18:
pinMode(18, OUTPUT);
  • Ajusta el brillo del LED generando una señal PWM con el ciclo de trabajo correspondiente utilizando la función analogWrite():
analogWrite(18, brightness);

Donde el brillo es un valor entre 0 y 255.

Código ESP32 - Ejemplo de desvanecimiento simple

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 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 (por ejemplo ESP32 Dev Module) y el puerto COM.
  • Copia el código de abajo y pégalo en Arduino IDE.
/* * 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-led-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin GPIO18 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin GPIO18: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Compilar y subir el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino
Subir código al IDE de Arduino
  • Ver el brillo 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 en el código.

※ Nota:

El ejemplo anterior utiliza la función delay() para realizar un desvanecimiento de entrada y de salida. La función delay() hace que el LED desarrolle un desvanecimiento de forma irregular y bloquee el resto del código. En las próximas partes, aprenderemos cómo desvanecer de forma suave sin bloquear otro código utilizando la millis() función.

Cómo hacer que un LED se ilumine gradualmente durante un período sin usar delay()

/* * 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-led-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin GPIO18 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Cómo atenuar un LED durante un período sin usar delay()

/* * 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-led-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin GPIO18 to be an output fadeStartTime = millis(); } // fade-out in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

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.

Referencias de Idioma

※ 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!