You are on page 1of 6

Cubo de leds 3x3x3 + Arduino

Primero que nada, hay que construir una especie de plantilla, para poder posicionar bien los leds y
efectuar el doblado de las patillas, sin que se deforme, o que por lo menos parezca un cubo al estar
terminado.
Para esto, una madera fina, y un taladro con broca del 5 (justo el tamao de los leds 5mm), y
realizamos la plantilla con los 9 agujeros en forma de cubo y uno en el centro, tal que asi:

Plantilla para cubo de leds 3x3x3


Una vez tengamos la plantilla terminada, colocamos los leds dentro de forma que quedenlos
ctodos (patilla ms corta) hacia adentro del cubo. Deben quedar los ctodos hacia adentro ya que
son stos los que conectaremos para formar el primer nivel del cubo, as que doblamos y
conectamos los ctodos de los leds para que quede un ctodo comnpara todos los leds. Yo
hech mano de unas pinzas de cocodrilo y procedemos a soldarlos.

Doblamos los ctodos y nos ayudamos de pinzas


Una vez soldados los ctodos retiramos la estructura que queda, y realizamos el mismo paso 3 veces,
para obtener 3 estructuras de 9 leds conectados por sus ctodos, que sern los 3 niveles o filas del
cubo.

Estructuras de leds
Una vez que tengamos las estructuras de los leds, procedemos a conectarlas entre s, y para ello
utilizando la misma plantilla colocamos una de las estructuras dentro, con ayuda de unas pinzas de
cocodrilo colocamos otra estructura encima y soldamos los nodos de los leds esta vez, repitiendo
el paso para la ltima estructura y finalizando el cubo.

Estructuras montadas para soldar los nodos


Y as, finalizamos el cubo, de modo que tenemos un cubo con 9 patillas donde cada una de ellas
corresponde al nodo de los 3 leds de esa misma columna, y 3 niveles o filas de leds conectados por
sus ctodos.
Si lo vieramos de un modo informtico, es un array bidimensional de leds, tenemoscolumnas y
filas, y as es como accederemos a cada uno de los leds con Arduino.

Cubo de Leds 3x3x3


Terminado el cubo procedemos a la conexin con Arduino. Dado que son leds, necesitan de una
pequea resistencia as que conectamos cada uno de los pines del cubo con una resistencia de 220
, a 9 pines digitales del Arduino.
Para conectar los ctodos los 3 niveles del cubo, debemos utilizar 3 transistores NPN, en mi caso
us 2N3904.
As que conectamos cada uno de los 3 niveles al colector de 3 transistores NPN, la base de los
transistores se conectara a los pines digitales del Arduino, y el emisor a masa o GND.
As utilizamos el transistor en conmutacin, de modo que al enviar con Arduino un valor lgico
HIGH a uno de los transistores, ste entrar en saturacin, conectando el colector con el emisor, de
forma que el ctodo del diodo led se conectara a masa y encendera.
La forma de conectarlo todo es la siguiente:

Y una vez conectado, declaramos los pines como un array de filas y columnas, y que decir, es
simplemente encender unos leds ;)
dejo aqu el cdigo correspondiente al momento en que se encienden los leds aleatoriamente:

1
2
3
4
5
6
7
8
9
10
11
12

int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};


int Filas[] = {12, 11, 10};
int RandFila;
//Variable para fila aleatoria
int RandColumna; //Variable para columna aleatoria
void setup()
{
int contador;
for (int contador = 1; contador < 10; contador++){
pinMode(Columnas[contador], OUTPUT); }
for (int contador = 1; contador < 4; contador++){

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

pinMode(Filas[contador], OUTPUT); }
}
void loop()
{
RandLed();
}
void RandLed()
{
RandFila = random(0,3);
RandColumna = random(0,9);
digitalWrite(Filas[RandFila], HIGH);
digitalWrite(Columnas[RandColumna], HIGH);
delay(75);
digitalWrite(Filas[RandFila], LOW);
digitalWrite(Columnas[RandColumna], LOW);
delay(50);
}

Otro cdigo

int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};


int Filas[] = {12, 11, 10};
int RandFila;
int RandColumna;
int tiempo;
int barrera = 0;
void setup()
{
int contador;
for (int contador = 0; contador < 10; contador++)
{
pinMode(Columnas[contador], OUTPUT);
}

for (int contador = 0; contador < 4; contador++)


{
pinMode(Filas[contador], OUTPUT);
}
Serial.begin(9600);
}
void loop()
{
RandLed();
}
void RandLed()
{
RandFila = random(0,3);
RandColumna = random(0,9);
digitalWrite(Filas[RandFila], HIGH);
digitalWrite(Columnas[RandColumna], HIGH);
delay(75);
digitalWrite(Filas[RandFila], LOW);
digitalWrite(Columnas[RandColumna], LOW);
delay(50);
}