Tengo un proyecto que tiene 18 de estas pantallas de cátodo común, 36 dígitos en total, organizadas en tres filas de 12 dígitos. Mi primera versión del proyecto usaba un Arduino y cambia los registros para conducirlos. Desplegaría la 0ª columna de dígitos, los encajaría para proporcionar energía a las pantallas y luego conectaría a tierra la 0ª columna. Esto mostraría el primer carácter. Luego, cambiaría la siguiente columna de datos, deshabilitaría el terreno en la 0ª columna, bloquearía la 1ª columna y proporcionaría terreno a la 1ª columna para mostrársela al usuario.
Funciona, pero tiene un par de problemas. Es muy, muy, muy tenue. Puedo hacer que sea más brillante manteniendo cada pantalla un tiempo más largo, pero no llega muy lejos, y puedes sentir la baja frecuencia de actualización cuando la miras. Además, si tengo una columna que tiene muy pocos segmentos activos, dibujan toda la corriente que estoy suministrando y esa columna termina siendo mucho más brillante que el resto.
Tengo una tonelada (¿diría que tengo "una plétora?") de controladores LED MAX-7219, pero hay un obstáculo: el controlador LED asume un máximo de 8 segmentos por cátodo. Consideré usar un controlador LED para conducir la mitad de los segmentos en 8 dígitos, y otro controlador para la otra mitad. Esto funcionaría (probablemente): simplemente desactivaría la pantalla en la mitad superior y activaría la inferior, y luego revertiría el proceso unos milisegundos más tarde.
Realmente quiero que el dibujo sea fuego y olvido. Tengo que generar los datos que estoy mostrando, y esto lleva tiempo. Durante este tiempo, realmente no puedo estar quemando la CPU, cambiando las pantallas. (Técnicamente, podría hacer el flopping en un temporizador, pero tendría que detener el temporizador mientras cambiaba los datos nuevos, y ese temporizador podría interferir con la biblioteca de LedController, así como con las comunicaciones en serie que estoy usando para obtener los datos de un módulo GPS, de todos modos.)
Entonces, ¿hay alguna manera de cambiar 36 dígitos de datos y olvidarme por completo por 100-1000 ms, dejando el trabajo de llevar la pantalla al hardware de otra persona? Incluso he considerado tener un arduino para procesar los datos y luego transferirlos, de alguna manera, a tres, o incluso a otros seis arduinos para mostrar.