Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
Tira de LEDs RGB WS2812
Descripción general
En esta lección, aprenderás sobre los LEDs NeoPixel y cómo controlarlos utilizando la biblioteca FastLED en un Arduino Uno R4. Los LEDs NeoPixel se utilizan ampliamente en diversas aplicaciones como la decoración del hogar, prendas de vestir y la iluminación de eventos. La biblioteca FastLED simplifica el proceso de programación de estos LEDs. Aquí, una cadena de 8 LEDs NeoPixel está conectada a un Arduino, y cada LED en la secuencia se enciende momentáneamente en color azul antes de apagarse, moviéndose al siguiente LED en la cadena. Este ejemplo básico puede servir como base para patrones de luz más complejos o proyectos de iluminación interactiva.
Componentes necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
---|---|---|
Elite Explorer Kit |
300+ |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN AL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
Conexión
Diagrama esquemático
Código
Nota
Puedes abrir el archivo
12-ws2812.ino
en la rutaelite-explorer-kit-main\basic_project\12-ws2812
directamente.O copiar este código en Arduino IDE.
Nota
Para instalar la biblioteca, utiliza el Administrador de Bibliotecas de Arduino y busca «FastLED» e instálala.
Importante
Con el lanzamiento de FastLED 3.7.0, la biblioteca FastLED ahora admite oficialmente el Arduino UNO R4. Por lo tanto, ya no necesitas instalar manualmente la versión de desarrollo. Simplemente actualiza o instala la biblioteca FastLED utilizando el Administrador de Bibliotecas de Arduino.
Advertencia
[Desactualizado] Dado que la biblioteca FastLED aún no ha lanzado oficialmente una versión compatible con Arduino R4, tendrás que descargar el último código de desarrollo de la biblioteca FastLED
y sobrescribir los archivos existentes de la biblioteca FastLED. Para obtener instrucciones detalladas sobre cómo hacerlo, consulta la sección Instalación Manual. (Esta note será retirada cuando la biblioteca FastLED lance oficialmente una actualización que admita el Arduino UNO R4.)
Después de cargar el código correctamente, verás que cada LED en la cadena de 8 LEDs NeoPixel se enciende uno a la vez en color azul. El programa recorrerá esta secuencia continuamente, apagando cada LED antes de pasar al siguiente. Con un breve retraso entre cada LED, el efecto de iluminación aparecerá como un punto azul que viaja a lo largo de la cadena.
Análisis del código
Importar la biblioteca y configurar constantes
Importar la biblioteca
FastLED
para utilizar sus funciones.Definir el número de LEDs y el pin de datos al que están conectados.
#include <FastLED.h> // Incluir biblioteca FastLED #define NUM_LEDS 8 // Número de LEDs en la cadena #define DATA_PIN 6 // Pin de datos para el control de LED
Inicializar la matriz de LEDs
Crear una matriz de tipo
CRGB
para almacenar la información de color de cada LED.CRGB leds[NUM_LEDS]; // Matriz para almacenar datos de color de los LEDs
Inicializar los LEDs en Setup
Utilizar
FastLED.addLeds
para inicializar los LEDs.void setup() { FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // Inicializar LEDs }
Controlar los LEDs en Loop
Recorrer cada LED para configurarlo en azul, mostrarlo, despejarlo y luego retrasar.
La matriz
leds
sirve como un búfer de color para tu tira de LEDs. Cada elemento en esta matriz corresponde a un LED individual en tu tira física, y su valor de color determina el color que el LED mostrará. El orden de los elementos en la matriz coincide con el orden de los LEDs en la tira, comenzando desde el primer LED (que corresponde aleds[0]
) hasta el último LED. Para cambiar el color de un LED específico en tu tira, simplemente modifica el elemento correspondiente en la matrizleds
. Puedes usar Colores predefinidos o establecer colores usando RGB (Tomando el verde como ejemplo, usaleds[dot] = CRGB::Green
oleds[dot] = CRGB(0, 255, 0);
).La función
FastLED.show();
actualiza la tira de LEDs con nuevos datos de color, haciendo que los cambios sean visibles. Es como presionar el botón de «publicar» para tu tira de LEDs después de realizar ediciones y ajustes en el código.
void loop() { for (int dot = 0; dot < NUM_LEDS; dot++) { leds[dot] = CRGB::Blue; // Configurar el LED actual en azul FastLED.show(); // Actualizar LEDs leds[dot] = CRGB::Black; // Despejar el LED actual delay(30); // Esperar un breve período antes de pasar al siguiente LED } }