Paso 2: Cómo funciona!
Hacerlo directamente, sin embargo, no es factible. Si x es el número de LEDs en cada lado del cubo de LED, puertos de salida digital x3 para controlar individualmente cada LED. Esto podría funcionar para cubos más pequeños, pero para valores grandes de x, esto supera rápidamente el número de puertos disponibles en cualquier microcontrolador estándar. Para este 7 x 7 x 7 del cubo, se necesitarían 343 puertos.
Este problema comúnmente se resuelve mediante parpadeo a través de las capas del cubo del LED con la suficiente rapidez para crear la ilusión de poder controlar cada LED independientemente. Veamos cómo esto reduciría el número de puertos necesarios:
En cada capa de color en la foto de arriba, la pierna del cátodo (a tierra) de cada LED se conecta. También se conectan las patas ánodo (voltaje en) de todos los LEDs de cada columna. Sin entrar en detalles aún, asumir que el microcontrolador puede conectar y desconectar cada columna de alimentación y cada capa de la tierra.
Para mostrar algo en el cubo, lo primero tierra el rojo de la capa y aplique la tensión a las columnas que queremos encender. Luego desconecte todo y repetir el proceso para la capa naranja, esta vez de aplicar tensión a las columnas de los LEDs que queremos iluminar en esa capa.
Por oscilar rápidamente a través de las capas, cada capa aparecerá que se encenderán a la vez. El umbral de la fusión del parpadeo, la tasa por encima del cual parpadeos luces aparecerán constantes en los seres humanos es de 60Hz, por lo que el cubo tiene que recorrer cada nivel por lo menos 60 veces por segundo.
Conmutación de los LEDs en capas y columnas hace cubos más grandes posible. Un total de x2 + x salidas digitales son necesarios para controlar tal cubo: x2 para las columnas y las x para las capas. Por lo tanto, para construir un 7 x 7 x 7 del cubo, se necesitan 56 puertos, en lugar de 343. El Arduino Mega tiene 70 pines que pueden ser utilizados como puertos de E/S digitales, dejando 14 puertos abiertos para interruptores de botón externo cambiar el patrón que se muestra en el cubo.