Cubo de leds 3x3x3 + Arduino

Hacia tiempo que había visto los cubos de leds en Youtube y algunos son realmente impresionantes, asi que me decidí a hacer uno, pero de los sencillos, de 3x3x3 leds.
(En Youtube los hay de hasta 16x16x16 leds)

Este ha sido el resultado de mi cubo 3x3x3 de leds:

Cubo de Leds 3x3x3

Cubo de Leds 3x3x3


Pero… ¿Cómo se hace?

Sigue leyendo para verlo

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 tamaño 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

Plantilla para cubo de leds 3x3x3

Una vez tengamos la plantilla terminada, colocamos los leds dentro de forma que queden los cátodos (patilla más corta) hacia adentro del cubo. Deben quedar los cátodos hacia adentro ya que son éstos los que conectaremos para formar el primer “nivel” del cubo, así que doblamos y conectamos los cátodos de los leds para que quede un “cátodo común” para todos los leds. Yo heché mano de unas pinzas de cocodrilo y procedemos a soldarlos.

Doblamos los cátodos y nos ayudamos de pinzas

Una vez soldados los cátodos retiramos la estructura que queda, y realizamos el mismo paso 3 veces, para obtener 3 estructuras de 9 leds conectados por sus cátodos, que serán 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 cátodos.

Si lo vieramos de un modo informático, es un array bidimensional de leds, tenemos “columnas” y “filas”, y así es como accederemos a cada uno de los leds con Arduino.

Cubo de Leds 3x3x3

Cubo de Leds 3x3x3

Terminado el cubo procedemos a la conexión con Arduino. Dado que son leds, necesitan de una pequeña 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 cátodos ó 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 conectaría a los pines digitales del Arduino, y el emisor a masa o GND.

Así utilizamos el transistor en conmutación, de modo que al enviar con Arduino un valor lógico HIGH a uno de los transistores, éste entrará en saturación, “conectando” el colector con el emisor, de forma que el cátodo del diodo led se “conectaría” a masa y encendería.

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 ;)

Debido a las altas peticiones de código para encender el cubo, dejo aquí el código correspondiente al momento en que se encienden los leds aleatoriamente:


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++){
    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);
}

En funcionamiento:

:D

About these ads

381 pensamientos en “Cubo de leds 3x3x3 + Arduino

  1. Estimado
    Muy bueno tu tutorial, pero haría un alcance en el código
    Al crear la numeración tanto de filas como de columnas, haces un for desde 0 a 9 columnas, lo que te da un total de 10 columnas, por lo que debes hacerlo desde 0 a 8, lo mismo para las filas, debes hacerlo desde 0 a 3, ya que así tienes el arreglo [0 1 2] y no [0 1 2 3]
    Saludos

    • Yo creo que va de 0 a 9 porque los debe inicializar todos led y utiliza el contador como indice. Pero el pin0 no lo está usando. Se puede optimizar los “for” desde 1 a <10 y 1 a <4.

      Lo mismo para con el aleatorio, se puede hacer aleatorio de 1,9 y 1,3.

    • Empieza de 0 a 9 por que tiene que inicializar los leds!! si no al encender el arduino o inicializar el programa iniciarian los leds de la columna 1 encendidos!! tambien por que no utiliza el pin0 Saludos!!

    • PipeChela, gracias por la corrección, estoy de acuerdo. Como bien indican por ahí en otros comentarios, el pin 0 no se utiliza, por lo que se corrige este problema inicializando los “for” de 1 a < 10 (y el otro "for" de 1 a < 4).

      Saludos!

  2. Tengo un problemota, lo que pasa es que al momento de comprar todo y ensamblarlo me termine dando cuenta de que mi arduino no sirve, me han dicho que con un circuito integrado puedo suplir al arduino, quisiera saber que circuito integrado es, me puedes ayudar?? gracias :D PD: Excelente publicacion

    • Enrike Maldonado, un solo circuito integrado no puede suplir al Arduino ya que necesita de componentes extra como un cristal de cuarzo, fuente de alimentacion, etc.

      Te recomiendo que compres un Arduino para realizar este y otros proyectos más facilmente.
      Saludos

  3. Me podrías ayudar tengo que hacer un cubo de ocho por ,ocho ,por ocho o una idea de como poner los leds solo eso el código lo puedo hacer pero acomodar los leds no puedo gracias

    • Javier, las conexiones están correctas igual que en el video, pero el código que ves en el blog, es solamante el código correspondiente a la parte de encendido aleatorio de los leds.
      Me pareció que era la parte más “complicada” dentro de las animaciones y el resto del código no lo guardé.
      Saludos

  4. Hola! He terminado de construir el cubo y acabo de cargar el código en el Arduino. Muchas gracias!!!
    Un detalle es que durante la explicación no se hace referencia a las resistencias entre base de cada transistor y Arduino, que luego en el esquema del circuito si aparecen.
    Mañana empiezo a trabajar en crear mi propio patrón de encendido en lugar de usar tu código.
    Y gracias otra vez!

  5. HOLA iPadnano YO HICE EL CUBO PERO NO PUEDO HACER QUE TRABAJE CON EL ARDUINO QUE HAGO O COMO LE HAGO YA ESTA TODO BIEN CONECTADO YA EST ALA PROGRAMACION PERO NO PUEDO HACER QUE PRENDAN Y APAGUEN LOS LEDS ESPERO RESPUESTA Y GRACIAS

    • Aristeo Vera, así sin más no puedo saber que es lo que ocurre. Necesitaría fotos, descripción del proyecto, etc.

      Comprueba que llega tensión a los leds con un polimetro y que éstos no estén quemados.

      Saludos!

  6. Buenas! Una pregunta, cual es la utilidad de los transistores? Me urge saber ya lo tengo armado pero me pregunta el profe

    • Jorge Estañol, el transistor está colocado para asegurar que los leds se conectan a masa, utilizando el transistor en modo corte/saturacion, excitamos la base y el transistor conducirá, cerrando el circuito de los leds.

      Saludos

  7. disculpa, yo estoy haciendo este proyecto, pero no entiendo si este codigo es para C o C++, es que yo lo ocupo para LabView, no se si me podes ayudar…

Deja un comentario!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s