NeoPixels
Las tiras basadas en el WS2812 / SK6812 y chips similares, conocidos por algunos como NeoPixels , son formas inteligentes de implementar LED de color de 24 bits totalmente direccionables.
Una de las cosas inteligentes es que solo requieren un cable de datos, más energía y Gnd, es decir,
La información de los píxeles se envía mediante secuencias sincronizadas con precisión de 24 bits por píxel. El primer píxel "despega" estos 24 bits (es decir, 3 x rojo / verde / azul) y luego pasa el resto al siguiente píxel, y así sucesivamente.
Bibliotecas
Varias personas han escrito bibliotecas para hacer esto por usted, incluyendo:
Power
Cada pixel dibuja alrededor de 60 mA con brillo máximo (mostrando blanco) por lo que debe permitir una fuente de alimentación de alta resistencia. Particularmente si tiene 5 m de 144 píxeles / m, entonces eso es 720 píxeles, lo que requeriría 43.2 amperios.
Según Adafruit:
Para estimar las necesidades de suministro de energía, multiplique el número de píxeles por 20, luego divida el resultado entre 1,000 para la "regla empírica" de la fuente de alimentación en amperios.
¡Incluso eso significa que necesita 14.4 amperios para sus 720 píxeles!
Así que tenga esto en cuenta al dimensionar su fuente de alimentación.
Métodos de direccionamiento
La biblioteca Adafruit (por lo que puedo decir) contiene la información de píxeles en la RAM y luego lo "vuelca" a los NeoPixels en una sola operación. Esto le permite hacer cosas elegantes en la memoria y copiar los resultados a los píxeles. Sin embargo, eso significa que necesita suficiente RAM para todo esto. A 3 bytes por píxel (24 bits), si tiene 720 píxeles, serán 2160 bytes, que es más RAM que la que tienen los procesadores más pequeños (como el Uno).
Los procesadores más grandes (como el Mega ) tienen más RAM.
Un método alternativo, como se explica aquí, no mantiene los datos en la RAM, sino que genera los colores "procedimentalmente" sobre la marcha. Esto es mucho menos intensivo en RAM, pero quizás menos flexible. En esa página, se vincula a un video de YouTube que muestra un humilde Arduino Duemilanove (similar a Uno) conduciendo más de 1000 píxeles.
Sin embargo, la generación de procedimientos puede hacer bastante, por Por ejemplo, puede configurar toda la cadena en un solo color, cambiar eso rápidamente o hacer un efecto de arco iris aumentando (digamos) el valor de rojo para cada píxel sucesivo. También puede crear efectos de "persecución" de forma bastante sencilla.
La biblioteca que escribí también está diseñada para permitirle utilizar un mínimo de RAM. Posiblemente podría agregar su propio esquema de almacenamiento, tal vez solo almacenando un byte por píxel, con menos bits por color (por ejemplo, 2 bits cada uno para rojo, verde, azul) y eso reduciría los requisitos de RAM en un tercio.
Ejecución de cableado
Puede intentar enviar los datos a más de 2 m. Le advierto que el tiempo para un bit cero es que tiene que ir ALTO y luego BAJO dentro de aproximadamente 400 ns, por lo que no puede permitirse que la señal de datos se degrade demasiado.
Cuando Tenía una cadena similar de LED de colores configurados en Navidad (sin embargo, no NeoPixels) Tenía una fuente de alimentación de 5V (solo usando un par de cables en forma de 8) y coloqué el procesador bastante cerca de los píxeles. Esta es probablemente la forma más segura de hacerlo.