En este articulo veremos como conectar y programar una tira de leds direccionable (del tipo WS2812B) con Arduino.
¿Que es una tira de leds direccionables?
Los leds direccionables WS2812 (NeoPixel) son la solucion a la necesidad de un LED a todo color simple, escalable y asequible. Los LEDs rojo, verde y azul se integran junto con un chip de controlador en un pequeño paquete de montaje superficial controlado a través de un solo cable. Pueden usarse individualmente, encadenarse en cadenas más largas o ensamblarse en la forma que lo desees . Por tanto una tira de leds direccionables es un conjunto de estos leds unidos convenientemente en una base flexible donde están conectados para compartir la alimentación de 5V y el bus de datos.
Observaciones:
- No todos los LED direccionables son NeoPixels. «NeoPixel» es la marca de Adafruit para píxeles y tiras de color RGB individualmente direccionables basadas en los controladores de LED WS2812, WS2811 y SK6812, utilizando un protocolo de control de un solo cable.
- Las tiras de LEDs no se iluminan solas; requieren un microcontrolador (como Arduino) y algo de programación.
- Las tiras de LEDS están disponible en tres densidades: 30, 60 y 144 LEDs por metro, con un fondo blanco o negro.
¿Como conectar una tira de leds?
La conexión de la tira de leds es bastante sencilla, solo necesitaremos usar un solo pin del Arduino, y conectarlo al pin Din de la tira de leds. Lo importante aca es tener en cuenta que cada led puede consumir hasta 60mA, por los que debemos hacer la previsión de alimentar la tira de leds con una fuente externa siempre que lo necesitemos. En este ejemplo tenemos 10 leds, por tanto 10x60mA = 600mA, necesitaremos una fuente de voltaje que nos de por lo menos 600mA, una de de 1A sera sera suficiente.
¿Como programar una tira de leds en Arduino?
Para programarla usaremos la librería Adafruit Neopixel, la cual trae algunos ejemplos básicos para comenzar a crear algunos efectos. A continuación un programa de ejemplo basado en la librería. Lo interesante de estas tiras de leds es que podemos controlar cada led individualmente. Solo debemos animarnos a probarlas un rato.
Ejemplo 1 – Programación de una tira de leds con librería Adafruit Neopixel
#include <Adafruit_NeoPixel.h> //carga la libreria #define PIN 2 //define el pin donde tengo conectada el bus de datos de la tira de leds #define NUMPIXELS 10 // el numero de leds que quiero usar de la tira de leds Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); //define el objeto pixels que es la tira de leds void setup() { pixels.begin(); // Inicializa la libreria NeoPixel. } void loop() { // Para un conjunto de leds el primero es el 0, el segundo 1, y asi sucesivamente. for(int i=0;i<NUMPIXELS;i++){ // pixels.Color toma valores RGB, desde 0,0,0 hasta 255,255,255 pixels.setPixelColor(i, pixels.Color(10,20,100)); // le asigno un color a cada led, en este caso todos iguales. pixels.show(); // Actualiza los leds. delay(200); // espera para el encendido de cada led. } for(int i=0;i<NUMPIXELS;i++){ //apago todos los leds pixels.setPixelColor(i, pixels.Color(0,0,0)); // Apago los leds pixels.show(); // Actualiza los leds. } delay(300); }