NeoPixel

Sorteo

La tiras de NeoPixel son píxeles (leds) unidos unos a otros en forma de tira.Lo primero que debemos saber es que hay una gran variedad, para que tengas una idea, en Adafruit las encontramos desde 15 LEDs ,  30 LEDs por metro hasta con 60 LEDs  y 144  LEDs por metro.

Ventajas de utilizar NeoPixel 

  • Libera al microcontrolador de gestionar los LEDs, de esto se encarga el WS2811 (chip de la tira).
  • Solo necesitamos un pin digital de nuestra placa microcontroladora para controlarlos a todos.
  • Podemos controlar los píxeles de una forma individual.
  • Podemos controlar tanto intensidad como color.
  • Algunas caracteristicas del NeoPixel son: 
    • Voltaje de operación es de 5V.
    • Podemos cortar o añadir un píxel o un grupo de píxeles.
    • No hay límite en el número de píxeles conectados a la vez.

Consideraciones a tener en cuenta en el numero de píxeles.
Cada píxel “LEDs” utiliza una porción de la memoria RAM del microcontrolador en nuestro caso Arduino UNO. Debemos tener precaución dependiendo de la placa que utilicemos.
Consumo de cada píxel es de 20 mA de media. A su intensidad máxima consumen 60 mA.

Elementos a utilizar

Arduino  UNO

 2 tira de 30 LEDs por metro. 

 Un Condensador de  800 μF . 

Una Resistencia de  470 Ω .

Una Protoboard

Cual es el funcionamiento las tiras de NeoPixel

La tira tiene  un microcontrolador   enfocado a una tarea específica, controlar la intensidad y el color del Píxel. El conjunto entero se llama WS2812S (chip de la tira) y tiene diferentes pines.

  • Dos pines de alimentación “+5″, uno de entrada y otro de salida.
  • Dos pines de tierra “GND”, uno de entrada y otro de salida.
  • Dos pines de datos, uno de entrada “DIN” y otro de salida “DOUT”.

Los datos se transmiten desde el microcontrolador. Maneja niveles lógicos a 5 V. Siempre y cuando utilicemos un Arduino UNO no tendremos problema. Pero si utilizamos por ejemplo el Arduino MKR1000 deberíamos utilizar un Conversor de Niveles Lógicos.

Para controlar los píxeles de forma individual, se crea una trama de 24 bits por cada píxel. Se envía a través del pin de datos y cada píxel se queda con los primero 24 bits y los demás los manda por el pin de salida de datos “DOUT”.

Otro ejemplo  si tenemos 30 píxeles “LEDs”, necesitaremos una trama de 24 x 30 = 720 bits.

Diagrama (click sobre la imagen para ampliar)

El Condensador es  utilizado para estabilizar variaciones de consumo y la resistencia es para proteger el pin de datos del “ARDUINO UNO”.

Se puede conectar al USB de la Computadora ó con una fuente de 5V por el Jack para alimentar al “ARDUINO UNO”

Código

Debemos instalar la librería de Adafruit para Arduino.La podemos encontrar en  GitHub.

Cuando la instalamos tenemos este ejemplo para ir probando.

Este es un  programa  donde cambiamos el color entre rojo, verde y azul píxel a píxel.

#define PIN       6  // Pin donde tenemos conectado la tira NeoPixel
#define NUMPIXELS 60 // Número de píxeles (LEDs)
 
// Declaramos el objeto. El último parámetro dependerá de tu tipo de NeoPixel
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
 
void setup() {
  pixels.begin();
  pixels.show();
 
}
 
void loop() {
  //  Se van a prender en esta secuencia (rojo, verde y azul)
  for (int color = 0; color < 3; color++)
  {
    // Recorremos todos los píxeles
    for (int i = 0; i < NUMPIXELS; i++)
    {
      // rojo
      if (color == 0)
      {
        pixels.setPixelColor(i, pixels.Color(140, 0, 0));
      }
      // verde
      else if (color == 1)
      {
        pixels.setPixelColor(i, pixels.Color(0, 140, 0));
      }
      // azul
      else if (color == 2)
      {
        pixels.setPixelColor(i, pixels.Color(0, 0, 140));
      }
      // Actualizamos el píxel
      pixels.show();
      // Esperamos un tiempo
      delay(40);
    }
  }
}

Consideraciones  generales a tener en cuenta.

En nuestro caso como tenemos  30 píxeles (LEDs) por metro dando un total en los 2 metros 60 pixeles (LEDs) y si lo ponemos en a una  intensidad media “30 mA por píxel”, el consumo será 30 * 60 = 1.800 mA 

con un cargador de  2 A estaría bien.

Los cables de alimentación y datos lo más cortos posibles para prevenir interferencias.

Al desconectar la tira de píxeles, lo último siempre tierra (GND).
Al conectar la tira de píxeles, lo primero siempre tierra (GND).
Si la tierra (GND) está mal conectada, el primer LED (el más cercano a la fuente de alimentación) corre peligro.

Una variante al código puede ser variar los colores haciendo una combinación de “Rojo,Verde,Azul” para formar un color personalizado. Ejemplo:

pixels.setPixelColor(i, pixels.Color(70, 30, 40));

 


ElectroMercado

  • : novedad
  • arduino | circuitos | programación
2 Comentarios
  1. carlitos145
    carlitos145 10 meses

    Vamos a ver si lo hacemos en vez de comprar una comercial.

    0
  2. Luciano
    Luciano 10 meses

    Y al tener una fuente externa si la tira nos exige 60mA no pasaría nada con el Arduino? ya que la corriente máxima que maneja a 5v es de 40mA.Gran tuto para Navidad!

    1+

Contesta

CONTACTANOS

Esta es su red social de tecnología para compartir tus ideas y proyectos .Puedes enviarnos un correo si tienes dudas.Nos vemos

Enviando

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account