Tira LED Neopixel WS2812B

Una tira de LEDs RGB normal nos permite controlar el color y el brillo de todos sus LEDs, sin embargo los LEDs direccionables, más conocidos como Dotstars o Neopixels, tienen la ventaja de que permiten controlar color y brillo de cada uno de sus LEDs de forma independiente, lo cual hace posible realizar efectos luminosos espectaculares.

¿Cómo funciona?

El WS2812B se presenta en un encapsulado 5050 (5mm x 5mm) de 4 patas que incluye 3 LEDs superbrillantes (Rojo, Verde y Azul) junto a un circuito controlador (WS2811) responsable de recibir los datos del LED anterior y enviarlos al LED siguiente.
Mediante esta forma de transmisión en serie se consigue lo que más sorprende de este sistema de iluminación, y es que todos los LEDs se controlan desde una sola línea de datos.

Cuando un led recibe un flujo de bytes, guarda los 3 últimos  y transmite el resto al siguiente led, finalmente la señal “Reset” indica a los leds que muestren el valor almacenado.

Los 3 bytes almacenados corresponden a cada uno de los 256 valores que puede tomar cada color RGB del led, por tanto disponemos de 256(R)x256(G)x256(B) = 16.777.216 colores por pixel.

Los bits (HIGH y LOW) se reconocen por la forma de la señal.

 

El “Reset” se envía como una señal LOW de 50 μs.

Cada pixel requiere 3×8=24 bits, lo que supone que son necesarios 30 μs/pixel. Esto significa que es posible manejar más de 1000 leds con un refresco de 30 fps. Suficientes para una pequeña pantalla.

En el mercado pueden encontrarse tiras con densidades desde 30 LEDs/m hasta 177 LEDs/m. En nuestra caso disponemos de una tira de 1 metro de longitud compuesta por 60 LEDs.

Funcionan a 5 V (Cuidado, no hay protección de inversión de polaridad) y viene con un conector JST SM de 3 pines para conectarlo a una fuente de alimentación regulada, pues Arduino apenas podría alimentar unos pocos de estos leds.

Ahora que sabemos cómo funciona nuestra tira LED sólo falta preparar un programa para controlarlo, por fortuna tenemos disponibles un par de librerías que nos facilitaran el trabajo: Adafruit NeoPixel y FastLED.

La librería FastLED es más rápida y versátil aunque también más compleja. Es la que vamos a usar en los ejemplos.

Hay que tener en cuenta que los LEDs están dispuestos en línea y los datos se reciben por orden, por ello hay que observar de cerca la cinta hasta ver unas flechas que indica el sentido de los datos, ese es el lado por donde debe conectarse al Arduino. Sabiendo esto ya podemos realizar las conexiones necesarias según muestra el esquema.

Para prevenir que se dañe el Arduino a causa de posibles picos en la línea de datos se debe colocar una resistencia de 300 ó 400 Ohmios entre el pin de salida y la entrada al primer LED.

Algunas cosas a tener en cuenta:

Alimentación: cada LED puede consumir hasta 60 mA, cuando trabaja con su brillo al máximo. Arduino solamente puede suministrar 500 mA lo que nos daría para trabajar sólo con 8 leds, por tanto será necesario una fuente de alimentación externa de 5V con la intensidad suficiente para nuestro proyecto, por lo general la corriente real para diseños con colores es aproximadamente de 1/3 a 1/2 de la corriente máxima. Una mayor densidad de pixeles significa también un mayor consumo de energía. Una buena fuente de alimentación 5V a 5 A puede ser suficiente para la mayoría de los proyectos.

Nº de pixeles: La información de toda la tira de leds se almacena en memoria,  esto limita el número máximo de pixels que podemos controlar, en el caso de Ardunio UNO este límite es de unos 500 aproximadamente.

Precisión: El protocolo utilizado es muy específico en tiempos y sólo puede ser controlado por microcontroladores con tiempos de precisión de 100ns. Están disponibles ejemplos de código para el uso con el microcontrolador de Arduino UNO y MEGA a 8MHz y 16MHz, y con un poco de esfuerzo se puede utilizar con Raspberry Pi, o BeagleBone Black, pero no se puede trabajar con Basic Stamp, Netduino o cualquier procesador más lento que 8 MHz.

Ejemplo 1

Sencillo sketch que simula el efecto “sable-laser” encendiendo los leds progresivamente.

 

Y ahora unos ejemplos de las posibilidades de las tiras led direccionables:

También te podría gustar...