Approved Reseller
Approved Reseller
En este pequeño tutorial veremos cómo conectar LEDs RGB Neopixel a una tarjeta Arduino, también encontrarás un código de programación para tus primeras pruebas.
Neopixel es una marca creada por Adafruit Industries para referirse a algunos LEDs RGB direccionables individualmente, es decir LEDs que cuentan con un circuito lógico integrado dentro de si mismos, circuito que hace posible controlar con un solo pin digital el color de cada LED en una secuencia de LEDs encadenados. No todos los LEDs direccionables individualmente son Neopixel, solo los basados en alguno de estos controladores: WS2812, WS2811 o SK6812.
Cada LED cuenta con 4 pines:
El circuito integrado de cada LED puede almacenar 3 bytes, un byte para cada color. Debido a que se encuentran encadenados solo el primer LED está conectado al Pin de control, en este caso, un pin digital de la tarjeta Arduino Uno. La tarjeta enviará la cadena de todos los colores según el número de pixeles que estén conectados y a su vez el primer LED recibirá la información todos los colores uno de tras de el otro. Pero ¿Cómo logran recibir la información todos los pixeles? Muy sencillo, cuando un LED recibe 3 bytes nuevos de información entrega al siguiente LED los 3 bytes que contenía anteriormente, de esta manera cuando la tarjeta Arduino termina de mandar todos los colores por el pin de datos el primer LED habría recibido y enviado todos los colores para quedarse finalmente con el color que le corresponde y así los demás LEDs.
De esta forma una cadena de LEDs Neopixel es un dispositivo digital de salida, es decir su funcionamiento consiste en recibir ila información del color mostrar y mostrarlo.
Como mencionamos anteriormente, para controlar una cadena de LEDs Neopixel desde Arduino es necesario implementar el protocolo de comunicación específico en un pin digital. En este caso utilizaremos la librería
Dicha librería no viene instalada por defecto en el IDE de Arduino por lo que debemos instalarla antes de poder compilar y cargar un código que haga uso de ella. Si necesitas ayuda realizando la instalación consulta aquí los pasos a seguir para que puedas continuar con este ejemplo.
Cargamos el código y observamos como se van iluminando los Neopixel uno por uno.
// Basado en el ejemplo "simple" de Adafruit NeoPixel library #include //Incluimos la librería en el código // Pin del Arduino al cual conectamos el DIN del primer led en la cadena #define PIN 6 // Número de píxeles encadenados #define NUMPIXELS 10 //Modifica este npumero según el arreglo de LEDs con el que cuentes // Inicializamos nuestro objeto "pixeles" Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Argumento 1 = Número de pixeles encadenados // Argumento 2 = Número del pin de Arduino utilizado con pin de datos // Argumento 3 = Banderas de tipo de pixel: // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) #define DELAYVAL 500 //timpo de espera en ms void setup() { pixels.begin(); // Inicializamos el objeto "pixeles" } void loop() { pixels.clear(); // Apagamos todos los LEDs // El primer pixel de una cadena es el #0, el segundo es el #1, y así sucesivamente // hasta el npumero de pixeles menos uno for(int i=0; i