Cubo de leds4 x 4 x 4

Hola, ¿alguien puede explicarme como realizar esto? http://www.instructables.com/id/LED-Cube-4x4x4/

No acabo de entenderlo.

Gracias,

tendrás que especificar más lo que no entiendes porque yo he seguido los pasos de ese manual y he hecho uno de 3x3x3.

esquema electrónico

Te dejo el esquema electrónico de 3x3x3. Yo lo hice con led normales y el problema es que cuando los enciendes todos sale muy apagado. Ojo no los enciendo todos a la vez hay que encenderlos capa a capa, haciendo el cambio muy rapido para que parezca que todos están encendidos. Despues de montarlo y ver que se iluminaban poco descubrí que tenía que haber usado leds "de gran luminosidad". Salu2

Gracias por la respuesta, pero viendo el esquema me doy cuenta de que no estiendo nada, ja ja ja. Lo que encuento mas dificil es la conexion de patillas. De nuevo gracias.

Un led tiene dos patas una es el anodo y la otra el cadoto. La pata mas larga es el anodo y la corta el catodo. El truco esta que cada columna de 3 leds (en tu caso de 4 leds) tienes que conectar el anodo entre si. En cada planta (en mi caso tengo tres plantas) se puentean todos los catodos entre si y luego se saca un cable que va al transistor del esquema electronico.

De esta manera para activar algún led, hay que activar la columna que se quiera y luego la planta (activando alguno de los transistores). Pero bueno esto sería cosa de programación. En el documento que comentas esta muy claro los pasos a dar, si no lo entiendo te recomiendo que lo traduzcas con google. Pero la madre del cordero era este punto:

All the LEDs aligned in a vertical column share a common anode (+). (Anodo=largo) All the LEDs on a horizontal layer share a common cathode (-).(Catodo=corto)

Yo tengo dos alumnas de cuarto de ESO que han hecho el 3x3x3, ahora toca conectarlo al Arduino. ionhs, tu conectas todos los leds directamente al Arduino? Yo les haré conectar con un bitsifhter max7219 o similar para no estresar al Arduino.

Si yo los he conectado a huevo a los pines (como en el esquema). No le he hecho trabajar mucho tiempo ya que lo que quería ver era como funcionaba. Una vez que veo como funciona suelo perder interés, así que no le dado tiempo para que se estrese. Respecto al bitsifhter max7219 ni idea, no lo conozco, he mirado lo que es y parece recibe los datos en serie y los trasforma a bcd 7 segmentos.

con ese chip hice funcionar 64 leds independientemente.

ok,por lo que entiendo he de soldar en "columna" 4 leds la pata mas larga de uno a la mas larga del siguiente y lo mismo con los negativos por planta.

Gracias

yo me uno a que en ingles resulta bastante dificil en algunos putnos saber si lo que interpretas es realmente lo que pone realmente ya que el traductor de google y nada es todo uno por que enreversa todas las palabras y es casi tan malo como leerlo en ingles xq de lo malo las palabras estan ordenadas...

Ionhs seria posible que subiese la foto de como seria segun como tu los as conectado pero con 4 filas? he estado mirando tu esquema para aprovecharlo para el de 4x4 pero no encuentro la manera de conectar la fila de leds... el npn pues siguiendo tu esquema a un pin cualkiera de los que nos kedan en el arduino pero claro la fila de leds me ha perdido totalmente.

gracias.

bueno despues de comparar el esquema de ionhs y el del autor del brico me he dado cuenta que creo que el problema esta en a que solo queda 1 pata libre digital no? kiero decir esa es la pata que nos serviria para el 4 npn? (d13) la pata de arriva claro peor lo que veo problematico es el tema de la pata que nos falta para la pata del medio del npn es decir como la pata d0 d1 y d2 del resto de npn la podemos conectar a los pines analogicos que nos quedan o como hacemos?

un saludo de nuevo y gracias espero ser capaz de haberlo explicado de manera que se entienda

Según el esquema que yo he hecho para hacerlo con 4 se necesitan 16 pines para las columnas y 4 pines más para cada planta una. Osea que hace falta 20 pines. El arduino tiene 14 pines digitales y 6 analógicos. Si me confundo que alguien me corrija pero como los analógicos se pueden usar como digitales se necesitarían los 20 pines para poder hacer una matriz de 4x4x4.

Nayma ha comentado que usa el chip max7219 para poder hacer la matriz. No se como va hacer la conexión, ni el programa, haber si comenta algo más Nayama. Salu2

En el siguiente link hay un artúculo muy completo sobre el 7219 y arduino

El 7219 puede controlar hasta 64 (=4*4*4).

Para el tema 3D simplemente tendreis que tunear un poquillo la distribución de diagonales y segmentos.

http://www.arduino.cc/playground/Main/MAX72XXHardware#WiringLedMatrix

muchas gracias ionhs eso mismo pensaba yo que en el brico usan un atmega 16 que tiene 40 patillas y no nuestro humilde atmega del arduino que tiene 24 20 para nosotros...

hechare un vistazo a ese tuto que dices yOPERO.

aver si Nayama nos cuenta un poko mas del tema

Madre mia eso es para un ingeniero lo menos.... ese chip max hara maravillas pero tb ser capaz de entenderlo conectarlo y usarlo es una obra de ingeneria... por no hablar de que no me entero de gran cosa al estar en ingles el tuto.

de todas maneras muchas gracias yOPERO al menos la forma de hacerlo esta hay sea mas o menos complicada...

un saludo

@Alex asturias

Según mi entender lo menos complicado es seguir el tutorial y usar un atmega16.

Si lees con detenimiento el setup es muy parecido a nuestro humilde 328.

yOPERO: En el siguiente link hay un artúculo muy completo sobre el 7219 y arduino

El 7219 puede controlar hasta 64 (=4*4*4).

Para el tema 3D simplemente tendreis que tunear un poquillo la distribución de diagonales y segmentos.

http://www.arduino.cc/playground/Main/MAX72XXHardware#WiringLedMatrix

Me lo apunto haber si cuando tenga tiempo :roll_eyes: lo miro con más calma. Gracias yOPERO

Yo todavía el cubo no lo he hecho, pero los 64 leds en fila si. el cubo debería ser más sencillo. el max 72XX digamos que tiene 8 salidas y 8 entradas, si miras el datasheet, creo que los veras, unos son para los ánodos y los otros para los cátodos. Después es ir jugando. Como el cubo tienes 4 plantas y 16 "leds base" tendrás que hacer combinaciones. Seguro que se pueden conectar 2 max 72XX en paralelo. Cuando tenga tiempo haré pruebas, pero ahora me es imposible, estamos a final de curso.

se me olvidaba, como la alimentación del max 72XX es independiente del arduino, no hay peligro de tostar el Arduino. Usas el arduino para controlar, y no para alimentar los leds. Cuando conectas todos a la vez, son demasiados leds para el arduino.

gracias por el consejo nayma(y por una explicacion que se entiende del 72XX onque todavia se escapa a mis conocimientos)

PD: no te sobrara algun cupo en tu clase para otro alumno verdad? jajajajaj.

un saludo

Solo por que haya hecho funcionar unos leds, no quiere decir nada. :slight_smile:

Por si os hace falta

22,14,16,20,23,21,15y 17. Estas líneas estarán conectados al ánodo ( positivo del led)
Los cátodos estarán unidos a las entradas del max7219: 2,11,6,7,3,10,5 y 8 respectivamente.

Necesitareis instalar la librería LedControl.h.

Aquí tenéis el código usado en la siguiente animación

//We always have to include the library
#include "LedControl.h"

*
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 
 ***** Please set the number of devices you have *****
 But the maximum default of 8 MAX72XX wil also work.
 */
LedControl lc=LedControl(12,11,10,8);

/* we always wait a bit between updates of the display */
unsigned long delaytime=1;

/* 
 This time we have more than one device. 
 But all of them have to be initialized 
 individually.
 */
void setup() {
  //we have already set the number of devices when we created the LedControl
  int devices=lc.getDeviceCount();
  //we have to init all devices in a loop
  for(int address=0;address<devices;address++) {
    /*The MAX72XX is in power-saving mode on startup*/
    lc.shutdown(address,false);
    /* Set the brightness to a medium values */
    lc.setIntensity(address,8);
    /* and clear the display */
    lc.clearDisplay(address);

  }
}

void loop() { 
  //read the number cascaded devices
  int devices=lc.getDeviceCount();
  
  //we have to init all devices in a loop
  for(int row=0;row<8;row++) {
    for(int col=0;col<8;col++) {
      for(int address=0;address<devices;address++) {
        delay(delaytime);
        lc.setLed(address,row,col,true);
        lc.setLed(address,row,col+1,true);
        lc.setLed(address,row,col+2,true);
        delay(delaytime);
        lc.setLed(address,row,col,false);
      }
    }
  }
  
  //ahora alreves
  for(int row=7;row>=0;row--) {
    for(int col=7;col>0;col--) {
      for(int address=0;address<devices;address++) {
        delay(del/aytime);
        lc.setLed(address,row,col,true);
        delay(delaytime);
        lc.setLed(address,row,col,false);
      }
    }
  }
  
}


Aquí teneis el resultado. Espero que os guste.