En primer lugar, un Arduino no puede controlar directamente 100 LED, ya que la corriente combinada que el dispositivo debe generar o hundir excederá con creces tanto el microcontrolador como el regulador de voltaje en la placa Arduino. Sin embargo, un Escudo Arduino personalizado con su propia fuente de energía y regulación podría ser adecuado.
Hay varios enfoques fáciles, el enfoque más simple se detalla a continuación:
El TLC5940 controla 16 LED por IC, controlados por entrada en serie a través de una ligera variante de una interfaz SPI. Se pueden conectar en cascada hasta 40 dispositivos TLC5940, pero 7 de ellos serán suficientes para controlar los 100 LED en la pregunta.
Hay al menos un par de bibliotecas Arduino ( 1 , 2 ) para el TLC5940.
Frecuencias de reloj sugeridas para enviar desde Arduino y frecuencia de actualización correspondiente:
- 1 MHz GSClk usando el código en este hilo .
- 330 KHz SCLK (reloj de datos en serie)
- Por lo tanto, la frecuencia de actualización de datos LED 244 Hz
Esto se basa en las fórmulas de la hoja de datos:
f (GSCLK) = 4096 * f (actualización)
f (SCLK) = 193 * f (actualización) * n
donde:
f (GSCLK): frecuencia mínima necesaria para GSCLK
f (SCLK): frecuencia mínima necesaria para SCLK y SIN
f ( actualización): tasa de actualización de todo el sistema en cascada
n: número en cascada de dispositivos TLC5940
El TLC5940 es un sumidero de corriente constante , por lo que los ánodos de los LED estarían conectados a un voltaje un par de voltios mayor que el LED Vf, o alrededor de 7 voltios, el que sea menor, alimentado independientemente de los pines de alimentación del Arduino. Esta fuente de voltaje debe ser capaz de suministrar 100 * (cualquiera que sea la corriente en la que ejecute los LED), pero puede ser una fuente no regulada.
Los cátodos LED van a las líneas de accionamiento de los respectivos circuitos integrados TLC5940.
El TLC5940 consume hasta Icc = 60 mA por dispositivo durante la escritura de datos, por lo que alimentar 7 de ellos desde el Arduino no funcionará, requerirá que se proporcione un Vcc regulado independiente de 3.3 a 5 voltios, idealmente el mismo valor que el Vcc del Arduino que se está utilizando, y las huellas de tierra necesitan conectarse de nuevo a la tierra de Arduino, por supuesto. Operar las partes de TLC a un voltaje diferente al Arduino generaría la necesidad de una conversión de nivel de la señal en serie, por lo tanto, es mejor evitarla.
Varios videos de YouTube demuestran el uso de Arduino con IC TLC5940 en cascada.
Aunque estos circuitos integrados se diseñaron para controlar pantallas LED numéricas de 7 segmentos, proporcionan un control LED individual, por lo que pueden usarse para hasta 64 LED por circuito integrado. Dos de ellos se pueden conectar en cascada para controlar los 100 LED necesarios. La página 13 de la hoja de datos muestra una configuración en cascada.
Para este diseño, los LED tendrían que estar conectados eléctricamente como grupos de hasta 8 LED, cada uno de los cuales comparte una línea de cátodo (cátodo común).
Los MAX7219 / 7221 son controladores de LED de multiplexación, por lo tanto, el brillo máximo de los LED será menor que para un controlador de LED estático como en la sección anterior.
Aquí hay una útil biblioteca y guía de matriz de LED que utiliza el MAX7219.
Algunos videos relevantes de YouTube ( 1 , 2 ) pueden ser de interés.
Una vez más, estos circuitos integrados se diseñaron para controlar pantallas LED numéricas de 7 segmentos, proporcionan control LED individual, por lo que se pueden usar para hasta 40/64 LED por circuito integrado. Dos / tres de ellos se pueden conectar a un bus Arduino SPI para controlar los 100 LED necesarios.
Las notas de diseño siguen siendo las mismas que en la sección anterior. Además, el brillo máximo del LED individual sería menor que para el diseño multiplex recto del MAX7219.
Hay algunos videos de YouTube que pueden ser de interés.
Diseños de componentes discretos, registros de desplazamiento, expansores de E / S, tiras de LED cortables con controladores individuales y muchos más ...
Todos estos enfoques se han utilizado con distintos niveles de simplicidad y éxito. Son implementaciones más complejas que los 3 enfoques anteriores, por lo tanto, no se detallan más. Buscar en la web produciría guías útiles para estos enfoques, si es necesario.
Un irritante clave con tales diseños es la necesidad de resistencias de control de corriente en cada LED o cadena de LED. Los dispositivos diseñados específicamente para la conducción LED generalmente no necesitan esto.
No tengo experiencia personal con este último conjunto de opciones, por lo que no puedo ayudar mucho.
Nota al pie: Después de responder a esta pregunta, encontré una pregunta anterior , que tiene respuestas que detallan y discuten varios de los enfoques en mi última sección. Ese hilo hace interesante "lectura adicional como tarea".