Hola Hopa!
El secreto, por supuesto, está en el multiplexado. Esta técnica permite utilizar unos pocos pines de E/S del microcontrolador para manejar una serie de circuitos integrados que se encarguen de excitar los LEDs. Hay varias maneras, y muchos modelos diferentes de circuitos para hacer esto.
Pueden usarse un tipo de integrado digital llamado “LATCH”, que básicamente es una memoria en la que escribimos un valor, y lo mantiene en sus salidas hasta que nosotros lo indiquemos. De esta manera, usando varios latches podríamos encender los LEDs por turnos, rápidamente para que no se note el parpadeo, y de esa manera formar una palabra en el cartel.
Otra forma es utilizar un registro de desplazamiento. Un registro de desplazamiento funciona de la misma manera en que funciona una cola de gente que espera para entrar en un cine. Por un extremo de la cola van ingresando las personas que llegan, y por el otro van saliendo de la fila. En un registro de desplazamiento, en lugar de personas tenemos “0” y “1”. Lo bueno de esto es que para “meter” datos (“0”s y “1”s) en el registro de desplazamiento solo hacen falta tres pines del microcontrolador, independientemente de lo largo que sea.
Estos pines se encargan de tres tareas: Uno de ellos, al que denominaremos “DATA” es el encargado de decirle al registro de desplazamiento que lo que introduciremos es un “0” o un “1”. El segundo se encarga de avisar al registro que el dato ya está listo para ser ingresado, y lo llamaremos “CLOCK”. Y el ultimo, que no es indispensable, es el “RESET”, que se encarga de “vaciar” la fila escribiendo “0”s en todas las salidas del registro.
Puedes leer una explicacion sobre el registro de desplazamiento
aqui, y un texto sobre como encarar el diseño de una matriz de LEDs
aqui. PD: Perdon por la "publicidad", pero me da fiaca copiar todo el texto e imagenes en un post.
