Estoy trabajando en un pequeño dispositivo similar a un juguete que tiene en su núcleo una matriz de 10 x 8 "píxeles" de LED RGB; 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 será manejada por un microcontrolador de la serie AVR. Estoy buscando una solución simple para controlar 240 canales y poder controlar el brillo (potencia) en cada canal individualmente. En lo que respecta a mi investigación, no hay otra forma de hacerlo de manera eficiente que con PWM.
Sin embargo, ningún AVR tiene 240 salidas, por lo que es necesario algún tipo de conversión de expansión / multiplexación / serie a paralelo. Los registros de turnos serían una solución, pero en combinación con PWM me han dicho que esto será demasiado lento.
He analizado los chips de controladores LED dedicados con PWM que se controlan a través de una interfaz en serie. (Texas Instruments hace varios dispositivos de este tipo, por ejemplo). Sin embargo, tienen un máximo de 12/16/24 canales, por lo que todavía necesito muchos de estos dispositivos. Mientras los controladores puedan conectarse en cadena, esto podría funcionar, pero el dispositivo será pequeño, por lo que no tengo espacio para una gran cantidad de componentes.
No necesito mucha resolución para controlar el brillo. 8 bits significarían 255 niveles por LED, que es suficiente. La corriente de la unidad tampoco sería un problema, ya que estaré usando LED de baja potencia que deben manejarse directamente desde las salidas de un controlador o controlador. La velocidad tampoco será un problema; El objeto mostrará "imágenes" para que sean consumidas por los ojos humanos, por lo que necesitaría un máximo de 20-30 "fps".
Mientras he estado investigando un poco, no estoy seguro de buscar 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!