enero 19, 2020

VARIOS-Tutorial de cadena LED WS2811

Written by

En Internet hay varios tutoriales para usar las tiras o cadenas de Neopixel como las WS2811, que están muy extendidas porque son baratas y muy versátiles. Sin embargo no hemos encontrado uno que lo explique todo con sumo detalle desde cero, así que a continuación exponemos lo que hay que hacer para poner en funcionamiento una cadena de LEDs con Arduino.

1 – Instalar la librería

Las cadenas WS2811 tienen los LED conectados internamente por registros de desplazamiento, de manera que hay que enviar un conjunto de 24 bits para conseguir el color adecuado en cada LED, multiplicado por el número de LED de la cadena. Esto se puede hacer directamente pero con una librería es más fácil. Hay varias librerías disponibles pero la que hemos encontrado más rápida y fácil de usar es FastLED.

Para instalarla, si se tiene un IDE actual, se puede hacer desde el gestor de librerías, buscándola desde el buscador y pulsando en el botón Instalar:

Gestor de librerías con FastLED

2 – Conectar los LED

Para la prueba vamos a usar un Arduino Mega, aunque se podía usar otro modelo. En caso de tener una cadena muy larga se necesita más memoria y puede que el modelo UNO no sea suficiente. En la cadena que tenemos los colores son:

  • Rojo – 5 V
  • Blanco – GND
  • Verde – datos

Teniendo en cuenta que para alimentar los LED se necesitan entre 20 y 60 mA de corriente para cada uno, hay que usar una fuente externa de tensión. Arduino no puede facilitar tanta potencia. Las conexiones son:

Conexiones de la cadena WS2811

3 – Cargar el programa

Cuando están hechas las conexiones, se carga el programa en Arduino. La librería FastLED cuenta con varios programas de demostración bastante buenos e ilustrativos. Por ejemplo, el programa DemoReel100, que abrimos en el IDE, modificamos el número de LEDs del programa, en nuestro caso son 50, y lo cargamos en la tarjeta Mega. El efecto es el que se ve en el vídeo.

4 – Control de varias cadenas

Cuando las cadenas de LED son largas, la capacidad de Arduino es insuficiente para manejar tantos LED. También puede ser aconsejable usar varias cadenas de LED en lugar de una solamente para que no tarde tanto la carga de los valores en una tan larga. Hacemos una prueba ahora con dos cadenas de 50 LED y usando un módulo ESP32 en lugar de Arduino, y así no tendremos problemas si el número de LED aumenta. El circuito ahora es:

Circuito con ESP32

Para probarlo usamos un ejemplo de la librería FastLED, que se puede acceder desde el menú de ejemplos en el IDE de Arduino, FastLED>Multiple. Hay varios ejemplos que usan varias cadenas de LED. Usamos el ejemplo ArrayOfLedArrays, modificado un poco para usar nuestras cadenas WS2811. El ejemplo funcionando es:

5 – Control con conversor de niveles

El circuito anterior usa un controlador de la marca Espressif, ESP32, que usa lógica de 3,3 V en sus patillas. Sin embargo la cadena de LED usa lógica de 5 V en su entrada. En nuestra prueba anterior con el modelo de ESP32S que usamos el circuito ha funcionado pero podría ser que la tensión de salida no fuera suficiente para enviar los bits a la cadena de LED. En ese caso habría que usar un conversor de tensiones como éste:

Conversor de niveles lógicos

Hacemos una prueba usando uno de estos conversores y comprobamos que funciona correctamente:

Category : VARIOS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Proudly powered by WordPress and Sweet Tech Theme