Cubo LED 7x7x7: Guía Paso a Paso con Arduino
Componentes y materiales
| Componente | Cantidad |
|---|---|
| Arduino UNO | 1 |
| CI 74HC574 (Flip-Flop D de 8 bits) | 7 |
| CI 74HC138 (Decodificador 3 a 8 líneas) | 1 |
| Resistencia 220Ω | 49 |
| Cristal 16 MHz | 1 |
Herramientas necesarias
- Soldador
Sobre el proyecto
Siempre quise construir mi propio cubo LED y ahora comparto mi proyecto contigo.
Paso 1: Crear la matriz LED
Lo primero es construir la matriz LED. He creado siete matrices de 7x7 LEDs. Separé ánodos y cátodos y los soldé en filas y columnas, resultando en 7 ánodos y 7 cátodos por matriz.
Paso 2: Hardware de control
Esta es la parte más compleja si no dominas la electrónica, pero intentaré explicarla claramente.
- 7 × 74HC574: Cada uno es un Flip-Flop D de 8 bits (memoria de 8 bits). Necesito siete porque hay siete matrices LED. Cargo bits en ellos para mostrar la imagen en el cubo.
- 7 transistores NPN: Deciden qué capa se enciende.
- 1 × 74LS138: Decodificador 3-a-8 líneas que permite controlar todos los Flip-Flops con solo 3 bits, ya que también necesitan un pulso para guardar los datos.
Con la técnica de multiplexado puedo visualizar una imagen en todo el cubo. El diagrama de bloques del hardware se muestra en las imágenes.
Construí el circuito yo mismo usando un ATmega328P standalone (Arduino barebone). El esquema completo está disponible abajo.
Paso 3: Estructura mecánica
Usé piezas de madera para crear la estructura que sostiene el hardware y el cubo LED. Cada matriz se coloca frente a la anterior, y los cátodos de cada capa se conectan al mismo transistor.
Paso 4: Programación
Finalmente, escribe el código para animar el cubo. El diagrama de bloques anterior te ayudará. Esta parte puede ser confusa al principio, pero con práctica se vuelve más fácil.
El código a continuación muestra las animaciones más básicas; las demás son muy extensas, pero con un poco de imaginación puedes crear lo que quieras.
Código: Animación básica
// Animación básica para CUBO LED
int temp = 50, cont = 0;
// Enciende todas las capas secuencialmente
void load_all(void) {
// Capa 1
digitalWrite(A2, LOW); digitalWrite(A1, LOW); digitalWrite(A0, LOW); delay(1);
// Capa 2
digitalWrite(A2, HIGH); digitalWrite(A1, LOW); digitalWrite(A0, LOW); delay(1);
// Capa 3
digitalWrite(A2, LOW); digitalWrite(A1, HIGH); digitalWrite(A0, LOW); delay(1);
// Capa 4
digitalWrite(A2, HIGH); digitalWrite(A1, HIGH); digitalWrite(A0, LOW); delay(1);
// Capa 5
digitalWrite(A2, LOW); digitalWrite(A1, LOW); digitalWrite(A0, HIGH); delay(1);
// Capa 6
digitalWrite(A2, HIGH); digitalWrite(A1, LOW); digitalWrite(A0, HIGH); delay(1);
// Capa 7
digitalWrite(A2, LOW); digitalWrite(A1, HIGH); digitalWrite(A0, HIGH); delay(1);
// Capa 8
digitalWrite(A2, HIGH); digitalWrite(A1, HIGH); digitalWrite(A0, HIGH); delay(1);
}
// Activa cada capa por tiempo 't'
void scrolling(int t) {
PORTB = 0x00;
digitalWrite(7, HIGH); delay(t); digitalWrite(7, LOW);
digitalWrite(8, HIGH); delay(t); digitalWrite(8, LOW);
digitalWrite(9, HIGH); delay(t); digitalWrite(9, LOW);
digitalWrite(10, HIGH); delay(t); digitalWrite(10, LOW);
digitalWrite(11, HIGH); delay(t); digitalWrite(11, LOW);
digitalWrite(12, HIGH); delay(t); digitalWrite(12, LOW);
digitalWrite(13, HIGH); delay(t); digitalWrite(13, LOW);
}
// Animación: enciende una capa a la vez y acelera progresivamente
void one(void) {
PORTD = 0xff;
load_all();
while (1) {
scrolling(temp);
temp = temp - 2;
if (temp <= 0) {
temp = 1;
cont++;
if (cont == 1000) { cont = 0; temp = 100; }
}
}
}
void setup() {
DDRD = 0xff; DDRB = 0xff; DDRC = 0xff;
}
void loop() {
one();
}
Partes personalizadas y esquemáticos
Se incluye archivo de diseño (gestione_mankWMoVhz.sch) y esquemático de disposición de componentes.
Proceso de manufactura
- El cubo de Rubik: de la invención al rompecabezas moderno
- Diodos Emisores de Luz (LED): Desde sus Inicios a Vidas de 100 Años
- Construye tu Propio Juego de Ruleta de 37 LEDs con Arduino Nano
- Proyecto Arduino Melodía Coffin Dance: Construya y Reproduzca el Viral Tune
- Construye un impresionante cubo LED 5x5x5 con Arduino Mega
- Revitaliza mandos a distancia antiguos: Crea dispositivos inteligentes DIY con Arduino
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Pantalla de 8 LED activada por sonido con Arduino
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
- Mezclador de Colores RGB con Arduino – Proyecto DIY para Principiantes
- Construye un Cubo LED 4x4x4 con Arduino Uno y 1Sheeld – Proyecto LED Interactivo