Solución simple para controlar una gran matriz de LED RGB con PWM

Estoy trabajando en un pequeño dispositivo similar a un juguete que tiene una matriz de LED RGB de 10 x 8 "píxeles" en su núcleo; por lo tanto, hay 10 x 8 x 3 = 240 LED individuales para controlar. Me gustaría controlar la intensidad de cada LED individualmente, básicamente creando una pantalla a todo color de 10 x 8 píxeles.

La pantalla estará controlada por un microcontrolador de la serie AVR. Estoy buscando una solución simple para manejar 240 canales mientras puedo controlar el brillo (potencia) en cada canal individualmente. En lo que respecta a mi investigación, no hay otra manera de hacer esto de manera eficiente que con PWM.

Sin embargo, ningún AVR tiene 240 salidas, por lo que es necesario algún tipo de expansión/multiplexación/conversión de serie a paralelo. Los registros de desplazamiento serían una solución, pero en combinación con PWM me dijeron que sería demasiado lento.

He mirado chips de controlador de LED dedicados con PWM que se controlan a través de una interfaz en serie. (Texas Instruments fabrica varios de estos dispositivos, por ejemplo). Sin embargo, tienen un máximo de 12/16/24 canales, por lo que todavía necesitaría bastantes de estos dispositivos. Mientras los controladores se puedan conectar en cadena, esto podría funcionar, pero el dispositivo va a ser pequeño, por lo que no tengo espacio para una gran cantidad de componentes.

No necesito mucha resolución cuando controlo el brillo. 8 bits significarían 255 niveles por LED, lo cual es suficiente. La corriente de la unidad tampoco sería un problema, ya que usaré LED de baja potencia que deben controlarse directamente desde las salidas de un controlador o controlador. La velocidad tampoco será un problema; el objeto mostrará "imágenes" para el consumo de ojos humanos, por lo que necesitaría un máximo de 20-30 "fps".

Si bien he estado investigando bastante, no estoy seguro de estar buscando en los lugares correctos, así que pensé en hacer una pregunta aquí. ¡Espero cualquier sugerencia e información y gracias de antemano por cualquier sugerencia e idea!

Hay varias otras preguntas en las que puede encontrar sugerencias, pero considere esto: con un direccionamiento de matriz, con filas y columnas, puede controlar los 240 LED con, digamos, 15 + 16 líneas, eso es mucho más simple.

Respuestas (2)

Hay un montón de circuitos integrados de controladores LED, por ejemplo, TLC5951DAP. Véalo en uso aquí: Mbled

Se han resuelto problemas similares en algunos proyectos de código abierto, como Peggy2 . El chip que usa Peggy2 parece estar fuera de producción, MBI5026 podría ser un reemplazo.

Sin embargo, el problema no es cómo manejar tantos, sino cómo controlar su brillo individualmente. Charlieplexing en realidad lo hace más difícil, ya que la referencia común por fila debe ser controlable.
Dado que charlieplexing es múltiplex por división de tiempo de todos modos, puede controlar la duración del pulso para cada LED. Pero tiene razón, no es adecuado para tantos LED controlados individualmente.

¿Ha considerado un chip de controlador habilitado para escala de grises como controlador de columna, mientras sigue escaneando las filas? Tendrá que aumentar la corriente impulsada proporcionalmente a la cantidad de filas que está escaneando, lo que también significa que querrá un corte para no freír una fila si la MCU se detiene.