CONTENIDO ►
La librería FastLED de Arduino IDE se utiliza para crear varios efectos en la tira de LED WS2812B. Esta librería se ha utilizado en el desarrollo de Iluminación Arduino con mando a distancia, Guirnalda de Navidad en LED direccionable y se han realizado muchos efectos interesantes con ella. Para entender el código, la descripción de la librería Arduino FastLED.h con ejemplos y descripciones del programa debe considerarse por separado.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- tira de LED ws2812 / ws2811;
- fuente de alimentación de 5V / 12V;
- resistencia de 100 a 500 ohm;
- librería FastLED.h
Utilización de una libreria Arduino FastLED

Se utilizan tres librerías populares para ejecutar la tira de LED direccionable: FastLED, Adafruit NeoPixel y LightWS2812. Todas las librerías pueden descargarse de nuestro sitio web. Las librerías FastLED y Adafruit NeoPixel son fáciles de usar, pero difieren en funcionalidad y espacio de memoria. Después de montar este sencillo circuito e instalar las librerías, descarga el programa de la tira de direcciones LED ws2812b.
Descripción de los comandos de libreria FastLED
#include "FastLED.h" #define NUM_LEDS 100 // número de píxeles #define PIN 4 // puerto de conexión ws2811b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(50); } void loop() { leds[0] = CHSV(0, 0, 255); FastLED.show(); delay(500); leds[1] = CHSV(0, 255, 0); FastLED.show(); delay(500); leds[2] = CRGB::Red; FastLED.show(); delay(500); leds[3] = CRGB::White; FastLED.show(); delay(500); }
Explicación del código para comandos de FastLED:
- la numeración de los LEDs direccionable en la tira comienza en cero;
- si desea apagar el LED ws2812b, especifique CHSV(0, 0, 0);
Después de cargar el código, puedes cambiar los colores de los píxeles de direccionable LED. A continuación, vamos a ver efectos más complejos con la librería fastlead, que esencialmente utiliza un bucle for Arduino IDE para enviar rápidamente información a la tira de direcciones ws2812b / ws2811b. Además de las opciones sugeridas, prueba a cargar los programas de ejemplo de esta librería en el microcontrolador Arduino.
FastLED ejemplos para tira de LED WS2812B Arduino

A continuación se describen paso a paso los comandos de la librería FastLED.h Arduino. Lo primero que hay que hacer es incluir la librería en el código utilizando el comando #include y establecer las constantes #define para una programación cómoda: el número de píxeles y el pin para conectar tira de direccionable LED ws2812b. En los ejemplos se puede ver que el tipo de la tira de direcciones también se define mediante constantes.
Ejemplo de código FastLed con efecto «Arco iris»
#include "FastLED.h" byte bright = 50; // brillo de LED, max 250 byte baza = 0; #define NUM_LEDS 100 // número de píxeles #define PIN 4 // puerto de conexión ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(baza+ i * 5, 255, 255); } baza++; FastLED.setBrightness(bright); FastLED.show(); delay(20); }
Ejemplo de código FastLed con efecto «Confetti»
#include "FastLED.h" byte bright = 50; // brillo de LED, max 250 byte baza = 0; #define NUM_LEDS 100 // número de píxeles #define PIN 4 // puerto de conexión ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); int pos = random16(NUM_LEDS); leds[pos] += CHSV(baza++ + random8(64), 200, 255); FastLED.setBrightness(bright); FastLED.show(); }
Ejemplo de código FastLed con efecto «Running light»
#include "FastLED.h" byte bright = 50; // brillo de LED, max 250 byte baza = 0; #define NUM_LEDS 100 // número de píxeles #define PIN 4 // puerto de conexión ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); int pos = beatsin16(13, 0, NUM_LEDS - 1); leds[pos] += CHSV(baza++, 255, 192); FastLED.setBrightness(bright); FastLED.show(); }
Explicación del código para FastLED con efectos:
- la numeración de los LEDs direccionable en la tira comienza en cero;
- si desea apagar el LED ws2812b, especifique CHSV(0, 0, 0);
Error de código ‘FastLED.h no such file or directory’
Lo primero con lo que se encuentra cualquier programador novato y tarda mucho en encontrar la causa es un error del compilador de Arduino al cargar el programa. El error FastLED.h no such file or directory significa que la librería FastLED.h no está instalada en el ordenador. El problema se resuelve fácilmente instalando la librería FastLED. Esta regla también se aplica cuando este error se produce con otras librerías para Arduino.
Conclusión. Además de los parámetros básicos, el procedimiento de configuración void también especifica el brillo de los LEDs con el comando FastLED.setBrightness() – el valor máximo es 255. El brillo se puede cambiar en cualquier parte del programa, incluso en el procedimiento de bucle vacío. En el bucle principal, hemos iluminado los píxeles de la tira de direcciones en secuencia con diferentes colores, que se definen con la paleta RGB.

Deja una respuesta