[Aporte] Cubo led 3x3x3 con PIC 16F648A.

#1
Hola, compañeros de FdeE:

Bueno escribo este tema porque quiero compartir con ustedes mi cubo de led de 3x3x3, si bien es cierto que los hay mas grandes y mejores estos tienden a ser mas caros y no todos tenemos tanto dinero(presupuesto de estudiante), por esa razon se los estoy compartiendo, para no quedarnos con las ganas de un juguetito de estos y ademas aprender y divertinos mientras lo construimos.

Este cubo led utiliza un microcontrolador PIC 16F648A ( o 16F628A, que tiene menos memoria), que es el encargado de comandar el cubo, en lo que esta incluida la matriz de 27 leds, el led de estado y los 3 botones. (reset, <,>)

El control del los leds que conforman el cubo se logro mediante multiplexacion, en la que al final se obtuvieron 12 pines de control, de los cuales 9 son los que corresponden a las columnas( son +) y 3 corresponden a los niveles ( son -). Una vez dicho esto es posible realizar cualquier figura gracias a un efecto de la vision, el efecto POV (persistencia de la vision) el cual se logra encendiendo y apagando rapidamente los pixeles (leds de la matriz).

Ademas gracias al led de estado es posible indicar varias cosas, una de ellas es el numero de secuencia( el led parpadeara ciertas veces dependiendo del # de secuencia) y el estado del cubo, si parpadea lentamente esta en estanby y si esta apagado el cubo esta en una secuencia.

Ahora los botones, el cubo posee 3 botones, que son RESET, <,>. El reset al ser pulsado pone al cubo en estanby, el < y el > sirven para cambiar entre las secuencias y si se presionan al mismo tiempo el cubo salta directamente al modo psudo-aleatorio.

Las secuencias estan el siguiente orden:
0- stanby
1-parapadeando
2-medio a superior e inferior
3-medio a izquierda y derecha
4-mezcla 2 y 3
5-niveles ascendente
6-niveles descendentes
7-arriba y abajo
8-izquierda a derecha
9-derecha a izquiera
10-mezcla 8 y 9
11-mezcla del 4,5,8,9
12-led individual corriendo
13-columna corriendo
14-giro anti reloj
15-giro reloj
16-giros alternados
17-snake
18-cubo moviendose
19-cubo progresico
20-fuegos artificiales
21-cubo de esquina a esquina.
22-Repeticiones pseudo-aleatorias.

Y aqui les dejo un video:
Y aca esta el album:
https://www.forosdeelectronica.com/gallery/browseimages.php?c=632&userid=
Espero les haya gustado mi aporte, para cualquier duda o sugerencia estoy a sus ordenes.

PD: Adjunto algunas imagenes, el diseño, el programa, la lista de materiales y el PCB.
Proximante subo el tutorial para construir la matriz led del cubo y el nuevo programa.

Saludos,
 

Adjuntos

#2
felicitaciones!
te quedo de 10!
espero que algun dia puedas hacer uno como el mio, o tal vez y porque no uno como el que estoy desarrollando de 10x10x10 RGB.

buen trabajo.
salu2
 
#4
Felicitaciones por ese buen trabajo y agradecimientos por toda la información que dejastes. Aunque no se cuando, pero intentaré un cubo como el suyo (aunque creo que le aumentaré el número de leds).

Hasta otra.
 
#6
Gracias por las felicitaciones, aunque yo debo dar las gracias al foro porque es de donde yo he aprendido muchas cosas que desconocia.

PD: Ya pedi unos led azules para hacer el tutorial, espero tenerlo listo pronto.

Saludos,
 
#8
el otro dia me arme uno para el arduino pero me quede sin estaño cuando estaba por soldar las borneras y los transistores :enfadado: espero que me quede asi de bueno!
 
#9
el otro dia me arme uno para el arduino pero me quede sin estaño cuando estaba por soldar las borneras y los transistores :enfadado: espero que me quede asi de bueno!
O eso es bastante molesto, tambien me ha llegado a pasar, pero todavia peor cuando te faltan componentes o se te rompen. :cabezon:

Espero te quede lindo tu cubo (y)

Saludos,
 
#11
Bueno guillecasilda los leds del cubo estan acomodados por niveles y columnas, las columnas corresponden a los anodos (+),los cuales son comunes a cada columna y los niveles corresponden a los catodos (-),los cuales son comunes a cada nivel, dando un total de 9 columnas y 3 niveles. Esto significa que el cubo esta multiplexado para ahorrar pines de control del PIC, usando unicamente 12 pines para su control.

2012-06-19 13.58.28.jpg

Saludos,
 
#13
lo hice y no me funciono!me podrias decir en que oscilador va (en el icprog)
tengo las siguientes opciones
LP
XT
HS
ExtClk
IntRC I/O PROBÉ CON ESTA
IntRC CLKOUT Y CON ESTA
RC I/O
RC CLKOUT
gracias!
 
#15
lo hice y no me funciono!me podrias decir en que oscilador va (en el icprog)
tengo las siguientes opciones
LP
XT
HS
ExtClk
IntRC I/O PROBÉ CON ESTA
IntRC CLKOUT Y CON ESTA
RC I/O
RC CLKOUT
gracias!
Hola guillecasilda,

la configuracion correcta es la IntRC I/O, ( creo que le ic-prog carga el programa con todo y la configuracion) ahora una vez que programaste el PIC y lo pusiste en el cubo por primera vez el led verde(status) parpadeara al encenderlo y el cubo no hara nada, para ponerlo a funcionar tienes que presionar el boton reset y el led verde comenzara a parpaderar y despues con < > seleccionas la secuencia deseada. Esto ocurre solo la primera vez que lo prendas ,lo puse asi ya que como tambien vendo el kit con el pic programado es como mi sello de garantia.

Saludos, cualquier otra cosa me preguntas.
 
Última edición:
#16
Yo tambien lo hice y no me funciona, me podes ayudar a encontrar el problema? Lo conecto y los leds no prenden o prende cualquier cosa. En el circuito no encontre ningun problema, y el 7805 me entrega los 5v. Uso el pic 16f628a, lo mas probable es que sea un error de programacion o grabacion.

Gracias
 
#17
Hola crislash,

Como comentaba anteriormente la primera vez que enciandas el cubo el led marcado como STATUS debe parpadear brevemente y despues el cubo no hara nada hasta que presiones el boton RESET, una vez presionado el led STATUS comenzara a parpadear indefinidamente hasta que selecciones otras secuencias con ayuda de los botones < y >, esto solo ocurrira la primera vez, despues cuando lo vuelvas a encender reanudara en la ultima secuencia seleccionada.

Ahora en cuanto al programa asegurate de usar el .hex correcto de acuerdo al pic seleccionado, como tu estas usando el pic 16f628a entonces deberas cargar el archivo llamado: "Led Cube con pic 16f628a.hex" y los fuses deben estar configurados de la siguiente manera: (caso de ic-prog)

ic-prog.jpg

Espero haberte ayudado y por si las dudas subo un archivo .hex que acabo de compilar en caso de que exista un conflicto con el anterior, prueba y nos cuentas como te fue.

Saludos,
 

Adjuntos

#18
Hola crislash,

Como comentaba anteriormente la primera vez que enciandas el cubo el led marcado como STATUS debe parpadear brevemente y despues el cubo no hara nada hasta que presiones el boton RESET, una vez presionado el led STATUS comenzara a parpadear indefinidamente hasta que selecciones otras secuencias con ayuda de los botones < y >, esto solo ocurrira la primera vez, despues cuando lo vuelvas a encender reanudara en la ultima secuencia seleccionada.

Ahora en cuanto al programa asegurate de usar el .hex correcto de acuerdo al pic seleccionado, como tu estas usando el pic 16f628a entonces deberas cargar el archivo llamado: "Led Cube con pic 16f628a.hex" y los fuses deben estar configurados de la siguiente manera: (caso de ic-prog)

Ver el archivo adjunto 76422

Espero haberte ayudado y por si las dudas subo un archivo .hex que acabo de compilar en caso de que exista un conflicto con el anterior, prueba y nos cuentas como te fue.

Saludos,
Gracias Excelente trabajo :apreton:(y) :):buenpost::buenpost::buenpost::eek:
 
#19
Hola crislash,

Como comentaba anteriormente la primera vez que enciandas el cubo el led marcado como STATUS debe parpadear brevemente y despues el cubo no hara nada hasta que presiones el boton RESET, una vez presionado el led STATUS comenzara a parpadear indefinidamente hasta que selecciones otras secuencias con ayuda de los botones < y >, esto solo ocurrira la primera vez, despues cuando lo vuelvas a encender reanudara en la ultima secuencia seleccionada.

Ahora en cuanto al programa asegurate de usar el .hex correcto de acuerdo al pic seleccionado, como tu estas usando el pic 16f628a entonces deberas cargar el archivo llamado: "Led Cube con pic 16f628a.hex" y los fuses deben estar configurados de la siguiente manera: (caso de ic-prog)

Ver el archivo adjunto 76422

Espero haberte ayudado y por si las dudas subo un archivo .hex que acabo de compilar en caso de que exista un conflicto con el anterior, prueba y nos cuentas como te fue.

Saludos,

Termino de grabar el pic con el pickit2 el .hex que me pasas aca. Y funciona... una parte. Lo encendi y empezo a hacer todas las secuencias seguidas, y cuando aprieto alguno de los pulsadores (cualquiera) se apaga el cubo, parapadea el led indicador 5 segundos aproximadamente y despues continúa desde el mismo lugar que estaba.

Otra cosa aparte, tengo un led que en algunas secuencias prende bien, pero en la mayoria prende muy poco, sabes cual puede ser el problema? es el led de la punta donde estan los transistores, en el piso de abajo. A lo mejor tuviste el mismo problema.


Te agradezco la ayuda. Gracias
 
#20
Hola crislash,

Como decia mi amigo Jack, vayamos por partes:

Termino de grabar el pic con el pickit2 el .hex que me pasas aca. Y funciona... una parte. Lo encendi y empezo a hacer todas las secuencias seguidas, y cuando aprieto alguno de los pulsadores (cualquiera) se apaga el cubo, parapadea el led indicador 5 segundos aproximadamente y despues continúa desde el mismo lugar que estaba.
El led parpadea segun el numero de secuencia selecccionado, por ejemplo si esta en la dos, parpadea 2 veces o si esta en la 15 parpadea 15 veces. Y si una vez terminado el conteo del led (STATUS) el cubo continua desde donde estaba y cambia hasta que termina la subrutina para evitar que la memoria del Stack se llene y cause un desbordamiento y el fallo del sistema.( en algun rato libre solucionare este problema)
Pero si quieres saltartelo simplemente apaga y vuelve a encender el cubo para reiniciar el pic.

Ahora en cuanto a lo sigiente:

Otra cosa aparte, tengo un led que en algunas secuencias prende bien, pero en la mayoria prende muy poco, sabes cual puede ser el problema? es el led de la punta donde estan los transistores, en el piso de abajo. A lo mejor tuviste el mismo problema.
La verdad yo no experimente ese problema ,aunque puede deberse a la multiplexacion ya que en algunas secuencias para lograr ciertos efectos fue nesesario conmutar el encendido de los leds a muy alta velocidad, lo que significa que estos solo encienden una parte del tiempo y puede causar que se atenuen. Podrias poner el numero de secuencia en la que observas esto para confirmarlo??

Saludos,
 
Última edición:

Temas similares

Arriba