Controlando Tiras LED con drivers de acceso individual. (TM1809)

tiras led accesibles

Tuve la oportunidad de conseguir unas tiras LED RGB (Red Green Blue) Gracias Steve French! que tienen drivers LED para así poder controlar cada LED individualmente.

Específicamente la tira LED que tengo usa el driver TM1809 El cual está en parte ya obsoleto (de acuerdo a https://github.com/FastLED/FastLED/wiki/Chipset-reference).

Mi idea es controlarlo con Arduino para poder accesar individualmente a cada LED RGB.

Un ejemplo de lo que se puede hacer:

Lo interesante es la forma en que recibe la información. La recibe en BITS que los recibe por pulsos.

Pulsos recibe TM1809

Cada Chip TM1809 controla 3 LEDs (En la imagen DOUT1,  DOUT2, DOUT3) y para cada uno maneja cada canal R, G y B.

TM1809

Y tiene un Digital IN o DIN. Este recibe los pulsos anteriormente dichos. Los pulsos tal como en la imagen el Chip dependiendo del tiempo, los va a leer como 0 o 1.

Tiempo Pulsos TM1809

Como cada Chip controla 3 leds. y Cada LED está conformado de RGB necesita saber cuanto de pulsos le va a dar a cada R, G y B de cada led. Es decir:

R – 255. G – 255. B-0 (Rojo y Verde a full capacidad y azul apagado).

R – 255. G – 0. B-0 (Rojo full capacidad. Verde y azul apagado).

Etcétera.

Pero como recibir estos datos para todos los LEDs?

Simple. El TM1809 lo resuelve recibiendo pulsos. Cada chip recibe 72 pulsos y por el terminal Digital Out o DOUT deja pasar todos los pulsos restantes media vez ya haya recibido 72.

Pero porqué 72 pulsos? Porque Tiene 3 LEDs. cada pulso es 0 ó 1. necesitamos saber cuanto de 255 necesita cada R, G y B. Usamos binario para saberlo.

Es decir:

128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1      1    1     1    1   1   1    1

Así que en el caso de la tabla anterior, cuánto nos da? 128+64+32+16+8+4+2+1 = 255!

Video de referencia:

Listo! Si mandamos 8 pulsos que signifiquen 1 (Ver imagen anterior referente a los pulsos.) Le estamos diciendo que prenda X LED (ya sea R, G, o B) a 255 de potencia.

 

En sí los 72 pulsos que el chip recibiría ser verían así:
72 bits recibidos por 3 leds por el TM1809
Y como ven. Primero mandas 8 pulsos para controlar el R1, luego otros 8 para el G1 y otros 8 para el B1 (es decir la parte Roja, Verde y Azul del primer LED) Y repites el mismo proceso para los otros 2 LEDs.

 

Si tienes una tira LED que tiene 10 Chips, serían 720 pulsos para controlar los 30 LEDs (3 LEDs  por 1 chip).

Recordando que cada chip utilizaría 72 pulsos y dejaría pasar los demás.

Modo filtro de TM1809

Si quieres cambiar los colores o “actualizar” Mandas un pulso de RESET (ver imagen referente a los pulsos.) y repites el ciclo.

 

Es muy interesante, la forma que utilizan este tipo de chips para controlar los LEDs Ahora solo nos queda controlarlo con el Arduino, cómo lo harías tu?

Recursos

Datasheet del TM1809: http://www.deskontrol.net/descargas/datasheets/TM1809.pdf

Librería Fastled para Arduino: http://fastled.io/

Referencia de algunos otros Chips para uso en fastled: https://github.com/FastLED/FastLED/wiki/Chipset-reference

Instructable manejando otro driver: http://www.instructables.com/id/Bitbanging-step-by-step-Arduino-control-of-WS2811-/?ALLSTEPS

Tarjetas de Presentación v0.1

Esta es la primera versión de mis tarjetas de presentación, fotos próximamente.

Tarjeta de Presentación: Frontal

Tarjeta de Presentación: Frontal

presentation-card2

Tarjeta de presentación: Posterior

Archivo PSD

Protegido: Dando Votos a Spinin Rcrds Talent Pool? XSS? D:

Este contenido está protegido por contraseña. Para verlo introduce tu contraseña a continuación: