Paso 1: Un poco acerca de charlieplexing
Charlieplexing es una forma de cableado por LEDs con menos pins de I/O. Utiliza el hecho de que pines I/O pueden ser de entrada o de salida, básicamente puede ser positiva o línea negativa y flip flop entre los dos. Dicho esto, que también podemos usar el hecho de que un LED (Light Emitting Diode) es un diodo en el final de la jornada destinada a restringir el flujo de electricidad a una dirección. Por esta razón LED tiene polaridad y tiene que estar conectadas correctamente al trabajo. Charlieplexing nos permite conectar 2 LEDs para 2 líneas y tienen direcciones separadas frente a ellos por lo que dependiendo de cual línea es positivo y cual negativo en determinará que se encenderá para arriba debido a la polaridad. Esto es grande porque nos permite controlar una gran cantidad de LEDs por separado. Básicamente la fórmula para el número de LEDs podemos controlar es X = N * (N - 1) donde N es el número de pines de I/O están dándole y X es el número de LEDs se puede controlar.
Para mi ejemplo que he decidido darle 4 pines de I/O, así que podemos controlar hasta 12 LEDs de eso (4 * 3 = 12).