Tutorial ESP32 12/55 - Proyecto de tira RGB WS2812 4 con el kit de aprendizaje IoT ESP32 de SunFounder

Tutorial ESP32 12/55 - Proyecto de tira RGB WS2812 4 con el kit de aprendizaje IoT ESP32 de SunFounder

En este tutorial, exploraremos cómo controlar una tira de LED WS2812 utilizando el microcontrolador ESP32. Este proyecto te permite crear una variedad de colores y controlar cada LED de forma individual, proporcionando una forma divertida y visualmente atractiva de aprender sobre programación y electrónica. Al final de este tutorial, tendrás un sistema completamente funcional que puede cambiar colores y patrones de manera dinámica.

SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422

Utilizando el microcontrolador ESP32 de SunFounder, que cuenta con capacidades de Wi-Fi y Bluetooth integradas, podemos conectar y controlar fácilmente la tira de LED RGB WS2812. La flexibilidad de esta tira de LED permite aplicaciones creativas, ya sea para iluminación decorativa o proyectos educativos. Para una mejor comprensión de los pasos implicados, puedes consultar el video en (en el video a 00:00).

Hardware Explicado

Los componentes principales de este proyecto incluyen el microcontrolador ESP32 y la tira de LED WS2812. El ESP32 es un microcontrolador potente que puede realizar tareas similares a las de un Arduino, pero con opciones de conectividad adicionales. Tiene un conjunto rico de características que le permiten conectarse a la nube, lo que permite el control remoto y el registro de datos.

La tira LED WS2812 está compuesta por LED RGB direccionables individualmente, lo que significa que cada LED puede ser controlado para mostrar diferentes colores. La tira funciona con un protocolo de un solo cable, permitiendo que múltiples LED sean encadenados sin perder calidad de señal. Cada LED contiene un controlador integrado que toma la señal de entrada y la amplifica para el siguiente LED en la cadena.

Detalles de la hoja de datos

Fabricante Worldsemi
Número de parte WS2812
Voltaje de lógica/IO 3.5-5.3 V
Tensión de suministro 5 V
Corriente de salida (por canal) 20 mA máx
Corriente máxima (por canal) 60 mA máximo
Orientación sobre la frecuencia PWM 400 Hz
Umbrales de lógica de entrada 0.3 x VDDa 0.7 x VDD
Caída de tensión / RDS(on)/ saturación 0.5 V máx
Límites térmicos -25 a 80 °C
Paquete 5050
Notas / variantes Se puede encadenar para tiras más largas.

  • Asegúrese de proporcionar una alimentación adecuada (5 V) para evitar daños en el LED.
  • Utiliza un condensador (100 µF) en paralelo con los terminales de la fuente de alimentación para suavizar los picos de voltaje.
  • Mantenga los cables de datos cortos para reducir la degradación de la señal.
  • Ten cuidado con la temperatura del LED; asegúrate de una adecuada disipación del calor.
  • Observe la polaridad correcta al conectar la alimentación y el tierra.
  • Utiliza una resistencia de pull-up en la línea de datos si usas tiras largas.

Instrucciones de cableado

ESP32-12-WS2812-wiring

Para cablear la tira de LED WS2812 al ESP32, comienza conectando la fuente de alimentación. El cable +5V de la tira de LED debe conectarse al pin de 5V en el ESP32, y el cable de tierra (GND) debe conectarse a uno de los pines GND en el ESP32.

A continuación, conecta el cable de entrada de datos de la tira de LED al pin 14 en el ESP32. Asegúrate de que las conexiones estén seguras para garantizar una transmisión de datos adecuada. Si estás utilizando múltiples tiras o distancias más largas, considera usar un convertidor de nivel para asegurar la integridad de la señal. Esta configuración te permitirá controlar la tira de LED directamente desde el ESP32.

Ejemplos de código y guía paso a paso

El código utiliza la biblioteca Adafruit NeoPixel para controlar la tira de LED WS2812. Comienza inicializando la tira de LED y configurando el color inicial a negro. Los identificadores clave en el código incluyenLED_PIN, que define el pin conectado a la línea de datos de la tira de LED, yNUM_LEDS, que especifica el número de LEDs en la tira.

#include  // Include the Adafruit NeoPixel library

#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs

En la función de configuración, la tira se inicializa usandostrip.begin(), y el color inicial se establece en negro constrip.show()Esto prepara la tira para cambios de color cuando se ejecuta el programa.

void setup() {
  strip.begin(); // Initialize the NeoPixel strip
  strip.show(); // Set initial color to black
}

El bucle principal del programa consiste en dos bucles for. El primer bucle enciende cada LED uno por uno al establecer su color y actualizar la tira. El segundo bucle apaga cada LED de la misma manera. Esto crea una animación de luz simple pero efectiva.

void loop() {
  // Turn on LEDs one by one
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
    strip.show(); // Update the LED strip with the new colors
    delay(100); // Wait for 100 milliseconds
  }
  
  // Turn off LEDs one by one
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
    strip.show(); // Update the LED strip with the new colors
    delay(100); // Wait for 100 milliseconds
  }
}

Mira el código completo que se carga debajo del artículo para obtener más detalles sobre cómo implementar diferentes efectos de color y animaciones.

Demostración / Qué Esperar

Una vez que hayas completado el cableado y subido el código, deberías ver que los LED en la tira se encienden uno por uno en un color específico, seguidos de apagarse en la misma secuencia. Esto crea un efecto de "luz en movimiento". Si los LED no se encienden como se esperaba, revisa tus conexiones de cableado y asegúrate de que la fuente de alimentación sea adecuada. Además, verifica que el pin correcto esté definido en el código (en el video a las 12:30).

Marcas de tiempo del video

  • 00:00 Inicio
  • 1:40 Introducción a WS2812 LED
  • Página de documentación del proyecto 7:25
  • 9:16 Explicación del color RGB
  • 13:16 Explicación del cableado
  • 13:48 Código de Arduino-1 explicado
  • 19:03 Seleccionando la placa ESP32 y el puerto en el IDE de Arduino
  • 20:45 Demostración Code-1
  • 22:00 Controlando LED individuales
  • 24:16 Luz LED de marcha
  • 25:41 Luz de ida y vuelta

Imágenes

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-12-WS2812-schematic
ESP32-12-WS2812-schematic
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
811-ESP32 Tutorial 12/55- Arduino code for WS2812 RGB LED stripe using ESP32
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.