WS2812B
ARDUINO
Reloj
Estaba yo el otro día navegando por la red y vi un vídeo de como
hacer un reloj con una tira de LED.
El vídeo está realizado por MIRANDA,
un español que hace vídeo en inglés, desde luego podemos observar
que los vídeos en ingles tienen bastantes más visualizaciones. Al
principio no sabía de donde era Miranda, pero el acento de su
inglés le delató. Hace unos vídeos muy buenos y bien explicados.
Como no sabía de este tipo de diodos LED, me sorprendió el poder
manejar un montón de LED con solo una línea de comunicaciones.
Este diodo WS2812B tiene los dos pins de alimentación, y dos pins
para los datos, uno de entrada y otro de salida.
Todos los diodos se colocan en serie, por lo cual los datos se
transmiten desde el primer diodo hasta el último. Cada diodo se
queda con los primeros 3 bytes que le llegan por el pin de entrada
(DIN), y transmite los siguientes bytes al siguiente diodo
mediante el pin de salida (DOUT).
Después de haber pasado un tiempo, si no se genera ninguna señal
se visualizan los datos en los diodos.
Como se puede observar en la línea de tiempos, cada diodo se queda
con los primeros 3 bytes que le llegan por el pin de entrada
(DIN), y transmite los siguientes bytes al siguiente diodo
mediante el pin de salida (DOUT).
Transmisión de 1 byte.
Transmitiendo bit 1.
Transmitiendo bit 0.
Los diodos se disponen en conjuntos de 7, cada dígito se compone
de 7 elementos.
La disposición de los diodos es de 3 lineas:
1ª línea de dos diodos, dirección de arriba
hacia abajo.
2ª línea de tres diodos, dirección de abajo
hacia arriba.
3ª línea de dos diodos, dirección de arriba
hacia abajo.
Como son 4 dígitos se colocan en serie los 4 dígitos.
Una vez que se ha construido el circuito de los diodos, no toca
construir el armazón de los diodos.
Cada tira de LED tiene un ancho de 10 mm, como son 3 tiras, la
anchura de cada segmento es de 30 mm. Entre los dígitos de horas y
minutos se colocan un LED que serán los dos puntos que parpadean
cada segundo.
Todo el conjunto se une con un armazón que junta los 4 dígitos y los puntos.
Se diseña en 3D y se imprime en PLA.
Si colocásemos solo los segmentos, veríamos que no se ven bien
definidos los dígitos. Para solucionar esto, colocamos un papel
vegetal o semitransparente que perfila los dígitos.
Si ahora tuviese que volver a construir todo de nuevo, lo haría de
una sola pieza.
También emplearía PLA blanco, refleja mejor la luz de los diodos.
Una vez construidos los display del reloj, nos toca pasar a la
parte de programación.
En esta ocasión vamos a utilizar el Arduino, y empleamos la
librería Adafruit NeoPixel library.
Esta librería es simple y fácil de utilizar, solo debemos de
indicar el pin de salida de datos, en nuestro caso hemos utilizado
el pin 13, además debemos indicar el numero de LED de la tira, y
el tipo de modelo de la tira.
Adafruit_NeoPixel pixels(29,13, NEO_GRB +
NEO_KHZ800);
Iniciamos la librería.
pixels.begin();
Indicamos el color de cada LED.
pixels.setPixelColor(2,
pixels.Color(BRIr,BRIg,BRIb));
Una vez indicados todos los colores de cada LED, debemos indicar a
la librería que mande la información a la tira de LED.
pixels.show();
He añadido 3 botones, 2 para cambiar la hora y los minutos, y el
3º para indicar el color y el brillo.
Debido a que estos modelos de diodos están pensados para verse
durante el día, deben producir mucha luminosidad. El problema de
este montaje es el alto consumo de los 29 LED.
En modo de luminosidad alta en color blanco, la intensidad es de
660mA, en intensidad baja es
de 110.
Si queremos colores, verde, rojo o azul, el consumo va desde los
270 mA con luminosidad alta, a los 60 mA a luminosidad baja.
Debemos recordar que el USB 2.0 solo proporciona una corriente
máxima de 500mA, por lo cual deberíamos utilizar una fuente
externa.
La exactitud de este reloj no es precisamente buena, el montaje
es solo una prueba del diodo WS2812B.
Para los que requieran un reloj preciso, les recomiendo uno de mis
anteriores montajes:
No he querido realizar el esquema debido a su simplicidad.
El pin 13 del arduino al DATAIN de la tira de LEDs.
Y los tres botones a los pins A0, A1, A3 del arduino.
La alimentación de 5V y GND a los pins del arduino.
Este montaje también se puede cambiar para hacer un marcador
deportivo.
VIDEO
Saludos.
Juan Galaz
Bibliografía:
https://github.com/adafruit/Adafruit_NeoPixel
https://www.youtube.com/watch?v=4z82I-032zs
No hay comentarios:
Publicar un comentario