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



## Justiciero24 (May 27, 2012)

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,


----------



## Ericktronik (May 27, 2012)

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


----------



## rascueso (May 27, 2012)

lindo lindo che! mis felicitaciones


----------



## Pelelalo (May 28, 2012)

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.


----------



## Fogonazo (May 28, 2012)

*! Gracias por el aporte ¡*


----------



## Justiciero24 (May 30, 2012)

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,


----------



## bydiego (Jun 4, 2012)

Increible tu proyecto felicidades ! Me encanta


----------



## maezca (Jun 4, 2012)

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!


----------



## Justiciero24 (Jun 9, 2012)

maezca dijo:


> 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 

Saludos,


----------



## guillecasilda (Jun 17, 2012)

me podes explicar como se conectan los led entre si? si tenes un diagrama mejor. gracias


----------



## Justiciero24 (Jun 19, 2012)

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. 



Saludos,


----------



## guillecasilda (Jun 20, 2012)

gracias, ya me quedó claro...voy a tratar de hacerlo


----------



## guillecasilda (Jul 14, 2012)

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!


----------



## cmdreamer (Jul 14, 2012)

Muy bueno el cubo, estoy apenas empezando en esto de los MCUs y esta clase de proyectos son muy atractivos.

Gracias por compartirnos el proyecto.


----------



## Justiciero24 (Jul 15, 2012)

guillecasilda dijo:


> lo hice y no me funciono!me podrias decir en que oscilador va (en el icprog)
> tengo las siguientes opciones
> LP
> XT
> ...


 
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.


----------



## crislash (Jul 17, 2012)

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


----------



## Justiciero24 (Jul 17, 2012)

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)



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,


----------



## SERGIOD (Jul 17, 2012)

Justiciero24 dijo:


> 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.
> 
> ...



Gracias Excelente trabajo  :buenpost::buenpost::buenpost:


----------



## crislash (Jul 17, 2012)

Justiciero24 dijo:


> 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.
> 
> ...




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


----------



## Justiciero24 (Jul 18, 2012)

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,


----------



## guillecasilda (Jul 19, 2012)

SIIIII, me funciono!!!!!!
gracias muchachos por toda la ayuda. use el archivo led cube.hex que subiste hace poco
de nuevo muchas gracias


----------



## Justiciero24 (Jul 19, 2012)

Ok, Que bueno que te funciono. Si puedes subes unas fotos para ver como te quedo y si encuentras algun desperfecto me lo haces saber para corregirlo. 
Pronto subire un nuevo programa con algunas correcciones y mas secuencias.  

Saludos,


----------



## crislash (Jul 20, 2012)

Asi me quedo a mi: te mustro:


----------



## Justiciero24 (Jul 29, 2012)

Te quedo muy bien amigo, Felicitaciones !!!
Excelente idea la de alimentarlo por usb, quizas algun dia podamos hacer uno que se controle desde el PC.

Saludos,


----------



## pepi600 (Ago 1, 2012)

justiciero24 esta muy bueno tu cubo yo estoy haciendo uno para la escuela..me podes pasar el programa


----------



## guillecasilda (Ago 6, 2012)

ya lo pasó el programa. buscá más arriba.
saludos


----------



## ANTOREZ (Ago 10, 2012)

justiciero24 Muchas gracias por tu aporte soy nuevo en el foro hacia ya tiempo que queria hacer un cubo de este tipo, solo unas preguntas veo que en los archivos vienen un .HEX para PIC16F648A y otro para PIC16F628A cual es la diferencia? y el codigo en si para compilarlo lo tienes? saludos y espero contar con tu respuesta.


----------



## Ericktronik (Ago 10, 2012)

ANTOREZ dijo:


> justiciero24 Muchas gracias por tu aporte soy nuevo en el foro hacia ya tiempo que queria hacer un cubo de este tipo, solo unas preguntas veo que en los archivos vienen un .HEX para PIC16F648A y otro para PIC16F628A cual es la diferencia? y el codigo en si para compilarlo lo tienes? saludos y espero contar con tu respuesta.



Las diferencias de los PICs puedes encontralas en la hoja de datos.


----------



## Justiciero24 (Ago 10, 2012)

Hola Antorez, bienvenido al foro.

La diferencia de los .hex es el pic para el cual estan hechos , por el momento son iguales pero la idea es que como el pic 16f648 tiene mas memoria agregarle mas secuencias.  En cuanto al codigo fuente si pienso compartirlo, pero sera despues ya que estoy desde el celular.

Saludos,


----------



## ANTOREZ (Ago 10, 2012)

O muy bien ahora entiendo y una pregunta mas.... que tipo de oscildor estas usando ya que no veo el Cristal en el diseño del PCB???


----------



## Ericktronik (Ago 10, 2012)

ANTOREZ dijo:


> O muy bien ahora entiendo y una pregunta mas.... que tipo de oscildor estas usando ya que no veo el Cristal en el diseño del PCB???



Oscilador interno.


----------



## ANTOREZ (Ago 10, 2012)

Muy bien gracias.


----------



## ANTOREZ (Ago 12, 2012)

Bueno ya quedo listo mas adelante les comparto un video , cosa curiosa solo me funciono con el archivo .HEX del PIC16f648 con un pic16f628

Saludos.

PD: Justiciero24 ojala pronto puedas compartir el codigo.



Por ahora solo lo simule en protoboard ya que por el momento no cuento con herramienta necesaria para el PCB saludos.


----------



## Justiciero24 (Ago 14, 2012)

Hola,

Te quedo muy bien ANTOREZ, espero que despues puedas hacer el PCB. Ya que pronto actualizare el programa del cubo, pero mientras tanto he aqui lo prometido:

(El codigo esta en basic, pero es facil pasarlo a otros lenguajes y/o hacer adaptaciones)


```
''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''
''Pic 16F628A @ 4Mhz                            ''
''Programa para controlar cubo led de 3x3x3     ''
''Autor: Daniel Arturo Fernandez Raygoza        ''
''Fecha: 2 de abril de 2012                     ''
''Version 1.0                                   ''
''DAFR Electronics                              ''
''Todos los derechos reservados                 ''
''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''
AllDigital
TRISA = %00111000
TRISB = %00000000
Dim secuencia As Byte
Dim rep As Byte
Dim ran As Byte
Dim boto As Byte
Dim other As Byte
PORTA = %00000000
PORTB = %00000000
PORTA.2 = 1
WaitMs 500
Read 0, secuencia
WaitMs 500
PORTA.2 = 0
inicio:
Select Case secuencia
Gosub botones
Case 0
Gosub secuencia0
Case 1
Gosub secuencia1
Case 2
Gosub secuencia2
Case 3
Gosub secuencia3
Case 4
Gosub secuencia4
Case 5
Gosub secuencia5
Case 6
Gosub secuencia6
Case 7
Gosub secuencia7
Case 8
Gosub secuencia8
Case 9
Gosub secuencia9
Case 10
Gosub secuencia10
Case 11
Gosub secuencia11
Case 12
Gosub secuencia12
Case 13
Gosub secuencia13
Case 14
Gosub secuencia14
Case 15
Gosub secuencia15
Case 16
Gosub secuencia16
Case 17
Gosub secuencia17
Case 18
Gosub secuencia18
Case 19
Gosub secuencia19
Case 20
Gosub secuencia20
Case 21
Gosub secuencia21
Case 22
Gosub secuencia22
EndSelect
Goto inicio
End                                               
secuencia0:  'stanby
PORTA = %00000100
PORTB = %00000000
WaitMs 100
PORTA = %00000000
PORTB = %00000000
WaitMs 1500
Return                                            
secuencia1:  'parpadeando
PORTA = %11000011
PORTB = %11111111
WaitMs 300
Gosub botones
PORTB = %00000000
PORTA = %00000000
WaitMs 300
Return                                            
secuencia2:  'centro a superior e inferior
PORTA = %01000001
PORTB = %11111111
WaitMs 350
Gosub botones
PORTA = %11000010
PORTB = %11111111
WaitMs 350
Return                                            
secuencia3:  'centro a izquierda y derecha
PORTA = %10000011
PORTB = %00111000
WaitMs 350
Gosub botones
PORTA = %11000011
PORTB = %11000111
WaitMs 350
Return                                            
secuencia4:  'mezcla del 2 y 3
Gosub secuencia2
Gosub secuencia3
Return                                            
secuencia5:  'niveles ascendentes
PORTA = %01000010
PORTB = %11111111
WaitMs 250
Gosub botones
PORTA = %01000001
PORTB = %11111111
WaitMs 250
Gosub botones
PORTA = %11000000
PORTB = %11111111
WaitMs 250
Return                                            
secuencia6:  'niveles descendentes
PORTA = %11000000
PORTB = %11111111
WaitMs 250
Gosub botones
PORTA = %01000001
PORTB = %11111111
WaitMs 250
Gosub botones
PORTA = %01000010
PORTB = %11111111
WaitMs 250
Return                                            
secuencia7:  'arriba a abajo
PORTA = %01000010
PORTB = %11111111
WaitMs 150
Gosub botones
PORTA = %01000001
PORTB = %11111111
WaitMs 150
Gosub botones
PORTA = %11000000
PORTB = %11111111
WaitMs 150
Gosub botones
PORTA = %01000001
PORTB = %11111111
WaitMs 150
Gosub botones
Return                                            
secuencia8:  'izquierda a derecha
PORTA = %11000011
PORTB = %11000000
WaitMs 250
Gosub botones
PORTA = %10000011
PORTB = %00111000
WaitMs 250
Gosub botones
PORTA = %10000011
PORTB = %00000111
WaitMs 250
Return                                            
secuencia9:  'derecha a izquierda
PORTA = %10000011
PORTB = %00000111
WaitMs 250
Gosub botones
PORTA = %10000011
PORTB = %00111000
WaitMs 250
Gosub botones
PORTA = %11000011
PORTB = %11000000
WaitMs 250
Return                                            
secuencia10:  'mezcla del 8 y 9
PORTA = %11000011
PORTB = %11000000
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %00111000
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %00000111
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %00111000
WaitMs 150
Return                                            
secuencia11:  'mezcla del 4,8,5,9
Gosub secuencia5
Gosub diagonal
Gosub secuencia8
Gosub diagonal
Gosub secuencia6
Gosub diagonal
Gosub secuencia9
Gosub diagonal
Return                                            
diagonal:
For other = 1 To 42
PORTA = %00000010
PORTB = %00000111
WaitMs 2
PORTA = %00000001
PORTB = %00111000
WaitMs 2
PORTA = %11000000
PORTB = %11000000
WaitMs 2
Next other
Return                                            
secuencia12:  'led individual corriendo
PORTA = %00000010
PORTB = %00000001
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %00000010
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %00000100
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %00001000
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %00010000
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %00100000
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %01000000
WaitMs 100
Gosub botones
PORTA = %00000010
PORTB = %10000000
WaitMs 100
Gosub botones
PORTA = %01000010
PORTB = %00000000
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %00000001
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %00000010
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %00000100
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %00001000
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %00010000
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %00100000
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %01000000
WaitMs 100
Gosub botones
PORTA = %00000001
PORTB = %10000000
WaitMs 100
Gosub botones
PORTA = %01000001
PORTB = %00000000
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %00000001
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %00000010
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %00000100
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %00001000
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %00010000
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %00100000
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %01000000
WaitMs 100
Gosub botones
PORTA = %10000000
PORTB = %10000000
WaitMs 100
Gosub botones
PORTA = %11000000
PORTB = %00000000
WaitMs 100
Return                                            
secuencia13:  'columna corriendo
PORTA = %10000011
PORTB = %00000001
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %00000010
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %00000100
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %00001000
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %00010000
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %00100000
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %01000000
WaitMs 125
Gosub botones
PORTA = %10000011
PORTB = %10000000
WaitMs 125
Gosub botones
PORTA = %11000011
PORTB = %00000000
WaitMs 125
Return                                            
secuencia14:  'giro anti-reloj
PORTA = %11000011
PORTB = %00010001
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %00111000
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %01010100
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %10010010
WaitMs 150
Return                                            
secuencia15:  'giro reloj
PORTA = %11000011
PORTB = %00010001
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %10010010
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %01010100
WaitMs 150
Gosub botones
PORTA = %10000011
PORTB = %00111000
WaitMs 150
Return                                            
secuencia16:  'giros alternados
For rep = 1 To 4
Gosub secuencia14
Next rep
For rep = 1 To 4
Gosub secuencia15
Next rep
Return                                            
secuencia17:  'snake
PORTA = %00000011
PORTB = %00000100
WaitMs 150
Gosub botones
PORTA = %00000001
PORTB = %00100100
WaitMs 150
Gosub botones
PORTA = %00000001
PORTB = %00110000
WaitMs 150
Gosub botones
PORTA = %00000001
PORTB = %00010010
WaitMs 150
Gosub botones
PORTA = %10000001
PORTB = %00000010
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %00000110
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %00100100
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %00110000
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %00011000
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %00001001
WaitMs 150
Gosub botones
PORTA = %10000001
PORTB = %00000001
WaitMs 150
Gosub botones
PORTA = %00000001
PORTB = %00001001
WaitMs 150
Gosub botones
PORTA = %00000011
PORTB = %00001000
WaitMs 150
Gosub botones
PORTA = %00000010
PORTB = %00001001
WaitMs 150
Gosub botones
PORTA = %00000010
PORTB = %00000011
WaitMs 150
Gosub botones
PORTA = %00000010
PORTB = %00010010
WaitMs 150
Gosub botones
PORTA = %00000010
PORTB = %10010000
WaitMs 150
Gosub botones
PORTA = %00000010
PORTB = %11000000
WaitMs 150
Gosub botones
PORTA = %00000011
PORTB = %01000000
WaitMs 150
Gosub botones
PORTA = %10000001
PORTB = %01000000
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %11000000
WaitMs 150
Gosub botones
PORTA = %11000000
PORTB = %10000000
WaitMs 150
Gosub botones
PORTA = %11000001
PORTB = %00000000
WaitMs 150
Gosub botones
PORTA = %01000001
PORTB = %10000000
WaitMs 150
Gosub botones
PORTA = %00000011
PORTB = %10000000
WaitMs 150
Gosub botones
PORTA = %01000010
PORTB = %10000000
WaitMs 150
Gosub botones
PORTA = %01000010
PORTB = %00100000
WaitMs 150
Gosub botones
PORTA = %00000010
PORTB = %00100100
WaitMs 150
Return                                            
secuencia18:  'cubo moviendose
PORTA = %01000011
PORTB = %10110000
WaitMs 250
Gosub botones
PORTA = %00000011
PORTB = %00110110
WaitMs 250
Gosub botones
PORTA = %10000001
PORTB = %00110110
WaitMs 250
Gosub botones
PORTA = %10000001
PORTB = %00011011
WaitMs 250
Gosub botones
PORTA = %00000011
PORTB = %00011011
WaitMs 250
Gosub botones
PORTA = %00000011
PORTB = %11011000
WaitMs 250
Gosub botones
PORTA = %10000001
PORTB = %11011000
WaitMs 250
Gosub botones
PORTA = %11000001
PORTB = %10110000
WaitMs 250
Return                                            
secuencia19:  'cubo progresivo
PORTA = %00000000
PORTB = %00000000
WaitMs 500
Gosub botones
PORTA = %00000001
PORTB = %00010000
WaitMs 500
Gosub botones
For rep = 1 To 125
PORTA = %00000001
PORTB = %00010000
WaitMs 2
Gosub botones
PORTA = %11000010
PORTB = %01000101
WaitMs 2
Next rep
Gosub botones
For rep = 1 To 125
PORTA = %01000001
PORTB = %01010101
WaitMs 2
Gosub botones
PORTA = %11000010
PORTB = %11101111
WaitMs 2
Next rep
PORTA = %11000011
PORTB = %11111111
WaitMs 600
Gosub botones
For rep = 1 To 125
PORTA = %01000001
PORTB = %01010101
WaitMs 2
Gosub botones
PORTA = %11000010
PORTB = %11101111
WaitMs 2
Next rep
For rep = 1 To 125
PORTA = %00000001
PORTB = %00010000
WaitMs 2
Gosub botones
PORTA = %11000010
PORTB = %01000101
WaitMs 2
Next rep
PORTA = %00000001
PORTB = %00010000
WaitMs 500
Return                                            
secuencia20:  'fuegos artificiales
PORTA = %00000010
PORTB = %00010000
WaitMs 150
Gosub botones
PORTA = %00000001
PORTB = %00010000
WaitMs 150
Gosub botones
PORTA = %10000000
PORTB = %00010000
WaitMs 150
Gosub botones
PORTA = %11000000
PORTB = %01000101
WaitMs 150
Gosub botones
PORTA = %01000001
PORTB = %01000101
WaitMs 150
Gosub botones
PORTA = %01000010
PORTB = %01000101
WaitMs 150
Gosub botones
PORTA = %00000000
PORTB = %00000000
WaitMs 150
Return                                            
secuencia21:  'cubo de esquina a esquina
PORTA = %00000010
PORTB = %00000100
WaitMs 250
Gosub botones
PORTA = %00000011
PORTB = %00110110
WaitMs 250
Gosub botones
PORTA = %11000011
PORTB = %11111111
WaitMs 250
Gosub botones
PORTA = %10000001
PORTB = %11011000
WaitMs 250
Gosub botones
PORTA = %10000000
PORTB = %01000000
WaitMs 250
Gosub botones
PORTA = %10000001
PORTB = %11011000
WaitMs 250
Gosub botones
PORTA = %11000011
PORTB = %11111111
WaitMs 250
Gosub botones
PORTA = %00000011
PORTB = %00110110
WaitMs 250
Return                                            
secuencia22:  'pseudo-aleatorio
Gosub secuencia5
For ran = 1 To 6
Gosub secuencia1
Next ran
For ran = 1 To 5
Gosub secuencia2
Next ran
For ran = 1 To 5
Gosub secuencia3
Next ran
For ran = 1 To 5
Gosub secuencia4
Next ran
For ran = 1 To 5
Gosub secuencia7
Next ran
Gosub diagonal
For ran = 1 To 5
Gosub secuencia10
Next ran
For ran = 1 To 5
Gosub secuencia11
Next ran
Gosub secuencia6
For ran = 1 To 8
Gosub secuencia12
Next ran
For ran = 1 To 9
Gosub secuencia13
Next ran
Gosub secuencia20
For ran = 1 To 4
Gosub secuencia16
Next ran
For ran = 1 To 6
Gosub secuencia17
Next ran
For ran = 1 To 6
Gosub secuencia18
Next ran
For ran = 1 To 3
Gosub secuencia19
Next ran
Gosub secuencia6
For ran = 1 To 6
Gosub secuencia20
Next ran
Gosub secuencia5
For ran = 1 To 8
Gosub secuencia21
Next ran
PORTA = %00000000
PORTB = %00000000
WaitMs 1000
Return                                            
End                                               
 
botones:
If PORTA.3 = 1 Then
PORTA = %00000000
PORTB = %00000000
PORTA.2 = 1
WaitMs 1000
secuencia = 0
Write 0, secuencia
PORTA.2 = 0
Endif
If PORTA.4 = 1 And PORTA.5 = 1 Then
PORTA = %00000000
PORTB = %00000000
secuencia = 22
Write 0, secuencia
PORTA.2 = 1
WaitMs 600
PORTA.2 = 0
Endif
If PORTA.5 = 1 Then
PORTA = %00000000
PORTB = %00000000
secuencia = secuencia + 1
If secuencia = 23 Then secuencia = 0
Write 0, secuencia
For boto = 1 To secuencia
PORTA.2 = 1
WaitMs 200
PORTA.2 = 0
WaitMs 300
Next boto
Endif
If PORTA.4 = 1 Then
PORTA = %00000000
PORTB = %00000000
secuencia = secuencia - 1
If secuencia = 255 Then secuencia = 22
Write 0, secuencia
For boto = 1 To secuencia
PORTA.2 = 1
WaitMs 200
PORTA.2 = 0
WaitMs 300
Next boto
Endif
Return                                            
End
```
 
Si es un poco grande y tiene sus defectos, pero es de mis primeros programas.

En cuanto a los problemas con los.hex del pic , supongo que se generaron cuando los compile ya que experimento ciertos problemas con el PIC Simulator IDE, los voy a volver a compilar y los vuelvo a subir.

Saludos,


----------



## Edwar09 (Sep 28, 2012)

Hola , muy buen proyecto te felicito 
yo me anime a armarlo , ya lo simule  solo que como el procesador de mi pc es lento no lo veo muy bien, 
quisiera que me ayudaras, simulo el circuito en el proteus usando el Pic 16f628A y le meto el .hex que compartiste para ese pic pero no hace nada , y si se lo cambio por el del pic 16f648A (tambien el que nos compartiste) si funciona,


----------



## Justiciero24 (Sep 29, 2012)

Gracias,
Mmmm.... eso es raro. Dejame recompilar y probar los programas y lo vuelvo a subir.


----------



## OneErick (Nov 1, 2012)

Hey yo estoy haciendo uno de 5x5x5 por el aporte de ericktronik pero usare tu diseño para hacerle uno a mi novia que se antojo de uno..  Gracias por el aporte.. cualquier duda te contacto.. aunque despues que termine el mio, el 3x3x3 se me hara mas facil pero uno nuca sabe! >.< GRACIAS GRACIAS...


----------



## OneErick (Nov 21, 2012)

Hola justiciero.. tengo una pequeña duda con respecto a tu cubo de leds.. la primera cual es el voltaje necesario para que el cubo trabaje con normalidad...

ya que vemos que ANTOREZ tubo una excelente idea al alimentarlo con un puerto usb.. pero muy bien se sabe o sabemos que el voltaje maximo que entrega este puerto es de 5v y la corriente maxima es de 500 ma...(esto es suficiente?)  pero vemos que a a ANTOREZ le funciono con el usb.. pero creo el voltaje del pic para que funcione son 5v y si me equivoco conrriganme.. de donde obtuvo el voltaje para los leds.. lo que quiero esa usar esa idea maravillosa del usb..

pero me preocupa que al tratar de sacar mas voltajer con respecto al que necesita el cubo pueda dañar la pc.. por es pregunto cuanto voltaje y cuanta coriente se necesita para alimentar el cubo..

no tengo muchos conocimientos de electronica solo los basico (obtenidos por un curso) y me nutro mas a traves de este medio..

espero que alguno con mas conocimientos me saque de mi ignorancia y pueda ayudarme GRACIAS...

SAludos..


----------



## crislash (Nov 22, 2012)

Yo tuve la idea de alimentarlo por usb. Antes de hacerlo medí la corriente que consumía todo el circuito, y es bastante menos que 500mA (no recuerdo con exactitud). Aunque depende de los leds que hayas utilizado.

Lo que hay que tener en cuenta que si lo alimentas con el USB, hay que conectarlo después del 7805, porque este es el integrado que entrega los 5v, y para que funcione se tiene que alimentar con mas de 5, por ejempo 12.


----------



## OneErick (Nov 22, 2012)

Muchas gracias y pues use leds difusos que usan menos corriente creo.. y pej si es asi todo deberia marchar bien ya que no supera el limite de la corriente y asi evitaria dañar el puerto usb o la tarjeta madre completa.. tambien me explicaron que los 5 voltios los saca del 7805 para el pic,  pero que lo demas lo saca directo de la fuente..

pregunto podria usarse este metodo para un cubo un poco mas grande que use mas corriente usando algunas bobinas?

por ejemplo yo hice un programador pic pero USB que despues pienso compartir.. y este usa 5 voltios para el circuito pero cuando va a realizar el quemado saca 13 voltios del puerto usb pero esto es posible usando una bobima de 600 Khenrios (creo que se escribe asi).. entonces podria usarse el mismo metodo para un cubo de mayor amperaje..?


----------



## Justiciero24 (Nov 22, 2012)

Hola, segun yo es posible aumentar el votaje o disminuirlo, como tu dices pero jamas podras exigirle al USB mas de 500ma. Es muy distinto voltaje a amperaje. Una solucion mas viable podria ser conectar varios puertos USB en paralelo para obtener mas corriente pero consultando el manual de la tarjeta madre ya que en algunas los 500ma son para varios puertos a la ves.

PD: el cubo no pasa los 500ma a todo lo que da, en un rato lo mido y te digo con exactitud.


----------



## Finskey (Nov 22, 2012)

Exelente el proyecto! la verdad muy b ueno porsupuesto uno mas grande quedaria mejor ,  y te pregunto una cosa tenes idea si con un 16f84a puedo correr este proyecto?


----------



## Justiciero24 (Nov 22, 2012)

Hola, acabo de medir el consumo del cubo alimentandolo a 5v ( despues del 7805 por supuesto) y no paso de 120ma, aunque esto depende de los leds empleados y el valor de las resistencias que hayas usado.



Finskey dijo:


> Exelente el proyecto! la verdad muy b ueno porsupuesto uno mas grande quedaria mejor , y te pregunto una cosa tenes idea si con un 16f84a puedo correr este proyecto?


 
Gracias, si ya tengo en mente uno mas grande usando un pic 18f2550  (para algunos experimentos macabros con el USB jejeje) pero volviendo a la pregunta lamentablemente no es posible usar el 16f84a ya que no posee oscilador interno y algunos pines creo que no funcionan igual, por estos motivos los pines nesesarios para controlar el cubo simplemente no son suficientes para ese pic.


----------



## OneErick (Nov 23, 2012)

Muchas gracias justiciero.. gracias por responder ya tengo la matriz y estoy armando la interfaz en cuando lo termino lo subo y cualquier duda te consulto.. una ultima pregunta antes de terminar de armarlo.. entre las columnas no se unirian con un cable.. por ejemplo en el que hice de 5x5x5 los anodos de las columnas se unen con una cable que le puse es necesario en este tambien ya que en el video no pude si lo tienes de esa manera..


----------



## Justiciero24 (Nov 25, 2012)

Justiciero24 dijo:


> 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.
> 
> Ver el archivo adjunto 74717
> Saludos,


 
Creo que eso es lo que quieres saber. Si era otra cosa me lo dices y con gusto te contesto.


----------



## carloswolf (Nov 26, 2012)

hola amigo mi nombre es carlos y soy de venezuela... yo apenas me inicio en el mundo de la electronica como estudiante de la materia y como hobby y aunque no poseo sino los conocimientos muy basicos y no domino la programacion podran imaginarse lo perdido que ando pero aun asi me gustaria armar uno de estos cubos y aprender su funcionamiento perfectamente asi que me hago algunas preguntas:
1-) ¿conoces alguna forma de hacer un cubo en el que pueda realizar secuencias de manera mecanica? lo menciono porque buscando en google aparecen proyectos para encender display de 7 segmentos de manera binaria con combinacion introducidas mediante switch y me preguntaba si podia encender los led del cubo de manera mecanica (switch o pulsadores) y si es posible te agradesco la ayuda y
2-) existe algunn plano de un cubo led que no requiera programacion? ya que he buscado y el mas "sencillo" que he encontrado es este de resto la mayoria funcionan en arduino.
sin mas de antemano muchas gracias y de verdad que son muy brillantes ( y no lo digo porque anden alumbrados con leds jejeje) y espero poder aprender y publicar algunas ideas que me andan navegando en mi mente
si mas gracias


----------



## OneErick (Nov 26, 2012)

justiciero tengo uns problemas con el cubo.. :/

ya esta listo pero al conectarlo el led no titila solo enciende y se apaga luego de eso le doy al pulsador de reset y se vuelve a encender y se apaga pero no ocurre nada.. 

porque crees que pase?

otro es que el archivo .hex que es para el pic 16f628a solo tiene unas pocas lineas de programacion sera que por ello el cubo no hace nada? porque en realidad no hay nada programado en ese archivo hex?

con lo del puerto usb tube problemas porque el voltaje se cae y no le llegan los 5v al pic lo volvi al estado original con un voltaje de 10 voltios pero aun asi el cubo no enciende..

y en algunas ocaciones el led del status se queda encendido y no vuelve a apagar amenos que apage el circuito por completo..

(yo uni los anodos de los pisos con un cable.. crees que esto podria darme problemas?)

y otra cosa el voltaje del pic se me cae asi le meta los 12 voltios me da 4.94 creo que si no le llegan los 5 voltios no funciona pero no entiendo porque no llegan los 5 voltios si para eso esta el 7805 para asegurar el voltaje del pic.. 

porfa justiciero ayudame a encontrar el problema..

Gracias..


----------



## Justiciero24 (Dic 16, 2012)

OneErick dijo:


> justiciero tengo uns problemas con el cubo.. :/
> 
> ya esta listo pero al conectarlo el led no titila solo enciende y se apaga luego de eso le doy al pulsador de reset y se vuelve a encender y se apaga pero no ocurre nada..
> 
> ...


 
Perdon por tardarme tanto.... bueno aqui van las respuestas

1.- En cuanto a lo del led status que se queda parpadeando aun despues de presionar reset es porque esta en modo stanby debes presionar < o > para sacarlo de ahi. el modo de funcionamiento esta en el primer mensaje de este post.

2.- En cuanto al .hex se me hace raro porque sigue persistiendo ese problema ya estoy en ello. 

3.- Con lo que dices del usb se me hace raro ya que el consumo del cubo es poco verifica las conexiones y posicion del pic en el socket. Si puedes reprograma el pic asegurantote que los fuses sean los indicados, el problema puede radicar alli.

4.- En cuanto a las conexiones del cubo no debe haber incoveniente en como lo uniste, siempre y cuando respetes las conexiones.

En serio lamento haberme tardado tanto, no fue por mala onda solo tenia mucho trabajo. Te pido una disculpa, si se me paso algo por alto o quieres mas ayuda me lo haces saber y prometo contestarte lo antes posible.

Saludos,


----------



## OneErick (Dic 20, 2012)

Justiciero24 dijo:


> Perdon por tardarme tanto.... bueno aqui van las respuestas
> 
> 1.- En cuanto a lo del led status que se queda parpadeando aun despues de presionar reset es porque esta en modo stanby debes presionar < o > para sacarlo de ahi. el modo de funcionamiento esta en el primer mensaje de este post.
> 
> ...




Bueno Gracias por la respuesta y no te preocupes todos estamos ocupados y lo entendemos.. y pues cuando pueda verifico con lo que me aclarastes y cualquier cosa te posteo..


----------



## tazma (Ene 8, 2013)

hola a ver si me podeis ayudar monte el cubo ( gracias por el trabajo realizado ) pero no funciona muy bien el caso es que si lo conecto con 12v funcionan los led pero la secuencia la hace muy lenta 
con 5v practicamente ni funciona en que e podido fallar 
alguna sugerencia para ver por donde va el fallo


----------



## Justiciero24 (Ene 8, 2013)

¿Por donde metiste los 5v? Si lo hiciste por la terminal verde de tornillos es logico ya que el CI en encapsulado TO-220 es un regulador de voltaje a 5v y para que funcione bien nesesita ser alimentado con por lo menos 8v.
Ahora lo segundo ¿a que te refieres con lento?, Deberia tener la misma velocidad que en el video,de no ser asi me avisas y buscamos el problema 

Saludos, espero tu respuesta.


----------



## tazma (Ene 9, 2013)

hola bueno ya encontre el problema es el siguiente el zocalo que puse para el pic es reciclado jeje
como quedaro las patillas muy cortas pues a la hora de soldar hay algunas que no hacen buen contacto mirar a ver si soy capaz de repararlo 
lo que no me funciona es el led verde y no veo el fallo 
salu2


----------



## tazma (Ene 15, 2013)

hola bueno pues ya esta funcionando  mil gracias 
https://www.youtube.com/watch?v=YVQCE6j9YiY&feature=youtu.be
 ahora me gustaria como aficionado ya que estudios no tengo es aprender a programar 
para torpes si es que se puede por donde puedo empezar
salu2


----------



## Justiciero24 (Ene 24, 2013)

tazma dijo:


> hola bueno pues ya esta funcionando mil gracias
> https://www.youtube.com/watch?v=YVQCE6j9YiY&feature=youtu.be
> ahora me gustaria como aficionado ya que estudios no tengo es aprender a programar
> para torpes si es que se puede por donde puedo empezar
> salu2


 
 Muy bien, felicitaciones compañero. 
Si quieres aprender a programar te recomiendo el pic simulator ide, busca tutoriales con lo basico como encender leds, controlar motores, interrupciones, UART, timers, ADC y PWM.
Incluso creo haber puesto el codigo fuente del cubo mas atras, puedes intentar a modificarlo y asi ya tienes con que experimentar. 
Luego ya que lo domines te pasas a un compilador de C y veras que es pan comido una ves sabiendo lo anterior en Basic y ya de ahi podras hacer cualquier cosa que se te ocurra.


Saludos,



PD: sabia que ya lo habia publicado, aqui te dejo el codigo fuente original https://www.forosdeelectronica.com/posts/696984/


----------



## pralcal (Mar 17, 2014)

Saludos amigos del foro, recientemente inicie y lleve a feliz termino la realizacion de un cubo led de 3x3x3 controlando con un pic16f84a trabajando a 4mhz y usando PORTB para controlar (8) ocho columnas y PORTA para contralar una columna y los tres pisos. 
 Hasta los momentos he realizado algo asi como 11 ó 12 secuencias de movimientos, "la verdad tengo muchas mas pensadas" pero me ha surgido un atasco, muchas de las secuencias de movimientos que tengo pensadas necesitan multiplexacion.  
Por ejemplo para encender un costado del cubo en forma diagonal entiendo que se debe encender por ejemplo (columna 9 con piso1) (columna 8 con piso2) (columna 7 con piso3)

Esta es la parte del codigo que programe:


```
on9        ;enciende la columna9
onp1      ;enciende el piso1
retardo   ;hace un delay de unos cuantos milisegundo
off9        ;apaga columna9
offp1       ;apaga el piso1

on8        ;enciende la columna8
onp2      ;enciende el piso2
retardo   ;hace un retardo de unos cuantos milisegundos
off8       ;apaga columna8
offp2     ;apaga piso2

on7       ;enciende la columna7
onp3     ;enciende el piso3
retardo  ;hace un retardo de unos cuantos milisegundo
off7       ;apaga columna7
offp3     ;apaga piso3
```

Esto sería suficiente para prender la diagonal, de hecho asi lo hace (si lo pongo en un bucle infinito), lo que me gustaria que me ayudaran a encerrar todo este trozo de codigo en un ciclo que me dure entre medio segundo o un segundo.

Quiza me estoy ahogando en una gota de agua...

Gracias por su atencion y la ayuda que me puedan brindar al respecto


----------



## pralcal (Mar 26, 2014)

Aqui paso a dejarles mi proyecto del Cubo led 3x3x3 con las secuencias que programé en assembler, espero que les guste y puedan emitir algun comentario al respecto.






Agradecido de antemano por su atencion y críticas


----------



## Arsenic (Abr 12, 2015)

¿Algún HEX para el 628 que haga todas esas rutinas en un ciclo infinito?


----------



## pralcal (Abr 12, 2015)

Saludos amigo, precisamente y casi que creo que es coincidencia  Hace un par de dias empece a migrar algunos de mis proyectos desde el pic16f84a al pic16f628, este es uno de ellos, Asi que si tengo el .HEX para el cubo led 3x3x3 con todas esas secuncias y en un bucle infinito.  Aqui se los dejo para quienes deseen probar dicho código, a la espera de que les guste.

Agradeceria mucho sus comentarios una vez que carguen el archivo, asi mismo si exist alguna duda estoy a la orden para aclararla.

Pedro Alcala


----------



## Arsenic (Abr 12, 2015)

pralcal dijo:


> Saludos amigo, precisamente y casi que creo que es coincidencia  Hace un par de dias empece a migrar algunos de mis proyectos desde el pic16f84a al pic16f628, este es uno de ellos, Asi que si tengo el .HEX para el cubo led 3x3x3 con todas esas secuncias y en un bucle infinito.  Aqui se los dejo para quienes deseen probar dicho código, a la espera de que les guste.
> 
> Agradeceria mucho sus comentarios una vez que carguen el archivo, asi mismo si exist alguna duda estoy a la orden para aclararla.
> 
> Pedro Alcala



Te agreadezco un montonazo!!! Justamente estaba buscando eso porque la verdad que esperar los 22 intermitencias del led se hace INTERMINABLE!!!!

Y si tuvieras algún esquema para el F84 junto con el HEX la completas. Tengo algunos y la verdad no tengo pensado utilizarlos en el futuro, así que quiero dejarlos fijos en una placa con ese cubo. De paso le regalo uno a mi amigo.


----------



## pralcal (Abr 12, 2015)

Saludos amigo, me alegra que te haya gustado y te haya servido, aqui te dejo lo que solicitaste.  Espero te sirva y logres sacarle el mayor provecho posible...

Seguimos a la orden por cualquier duda.


Pedro Alcala.

P.D. Los archivos estan en formato "PCB Wizard"


----------



## Arsenic (Abr 13, 2015)

He visto que el esquema es diferente. Voy a intentarlo con ese. Me faltaría saber si el esquema es el mismo para el 628 y si tengo que colocarle un cristal o si se utiliza el oscilador interno. Resumiendo, agradecería el hex para el 16F84 ya que el que me pasaste era para el 16F628 y si ambos esquemas son iguales y de no ser así en qué difieren.


----------



## pralcal (Abr 13, 2015)

Saludos Amigo,  si exactamente el esquema usado es el mismo, lo que cambié fué la programación, realmente fueron cambios muy mínimos, colocar los fuses que faltaban para el 628, mover las variables a las posiciones correctas de la memoria, ya que el 628 inicia en la 0x20 y desactivar los comparadores...  De resto el codigo es exactamente igual.  Ya que era eso lo que estaba probando, me gustaria poder meter mas secuencias ya que tengo pensadas algunas otras pero como usan el efecto (POV) ocupan mucho espacio de la programacion del pic.

  Bueno no te distraigo con tanto bla, bla, en resumen es el mismo esquema para los dos pic's 16f84a y 16f628.

En un rato te envio el HEX del 16f84A

Pedro Alcala



Aqui esta el archivo HEX para el PIC16f84A del esquema que te envie antes.

   Espero que sirva y cubra tus expectativas.  Sigo a la orden para cualquier consulta y/o duda referente al cubo


Pedro Alcala


----------



## Arsenic (Abr 13, 2015)

pralcal dijo:


> Saludos Amigo,  si exactamente el esquema usado es el mismo, lo que cambié fué la programación, realmente fueron cambios muy mínimos, colocar los fuses que faltaban para el 628, mover las variables a las posiciones correctas de la memoria, ya que el 628 inicia en la 0x20 y desactivar los comparadores...  De resto el codigo es exactamente igual.  Ya que era eso lo que estaba probando, me gustaria poder meter mas secuencias ya que tengo pensadas algunas otras pero como usan el efecto (POV) ocupan mucho espacio de la programacion del pic.
> 
> Bueno no te distraigo con tanto bla, bla, en resumen es el mismo esquema para los dos pic's 16f84a y 16f628.
> 
> ...



Gracias. Estuve en otros foros donde hicieron otro con el 628A y unas rutinas bastante interesantes. Ahora te paso por si queres probarlo.
Última pregunta: ¿El esquema del 16F628A por casualidad no lleva cristal, o sí?
Aquí los tienes:


----------

