# [Aporte] Cubo LED 5x5x5, con PIC16F877A.



## Ericktronik (Mar 22, 2012)

Les comparto el diseño de un cubo de leds hecho en su totalidad por mi, usando un PIC 16F877,
La placa de circuito esta diseñada para ser alimentada con un adaptador DC maximo de 12v y una corriente minima de 500mA, de ser posible usar un adaptador de 5v y 750mA.

Para el cubo recomiendo leds difusos(no importa el color).

En el archivo Cubo Led.pdf encontraran el principio de funcionamiento del cubo y los archivos necesarios para la construccion del PCB, la mascara de componentes tiene unas lineas delgadas, las cuales seran puentes hechos con alambre estañado o de cobre, tambien se encontraran tips de construccion y el listado de materiales.(porfavor lea todo el pdf).

El archivo .hex esta compilado para 4Mhz y solo es una demostracion del cubo que puede ser apreciada en el video.(archivo .rar)
para todos aquellos que deseen crear nuevas animaciones, la distribucion de pines esta explicada en el .pdf, todos los nuevos codigos seran bienvenidos.

Adjunto tambien una tabla de codigos con la cual logre hacer las letras.

En el archivo .txt esta el codigo fuente que use para la programacion(aunque esta muy mal hecho).

Aca hay algunas fotos y un video del Cubo funcionando.

Terminado


 

Mi logo ED(Ericktronik Desings)


 

Una de cerca(mi actual wallpaper)




Video:





Agradeceria a quien pueda crear una libreria para poder usar el cubo, y nos pueda enseñar a usarla.


Actualmente estoy trabajando en un cubo de leds RGB 10x10x10. espero terminar pronto el diseño, aunque el montaje tendra que esperar debido a razones de presupuesto.


----------



## Rigeliano (Mar 22, 2012)

Muy bueno al aporte yo tenia hecho uno de 3x3x3 aunque por el numero de leds siempre me desanimo armar el de 5x5x5 pero creo que are uno con difusos que son mas barato, creo que llenaste la memoria del PIC.


----------



## Ericktronik (Mar 22, 2012)

Rigeliano dijo:


> creo que llenaste la memoria del PIC.



En realidad solo use el 16% de la memoria con el codigo que vez hay.
solo que ya no se que mas hacer, entonces por eso entregue el codigo fuente para que lo puedan usar y quienes quieran compartir mas animaciones puedan hacerlo.


----------



## Rigeliano (Mar 22, 2012)

lo decía por que cuando hice el mio llene la memoria del pic con un programa similar y aun no lo cambio , creo que ya me anime a hacer el de 5x5x5 y con que PIC aras el de 10x10x10.


----------



## Ericktronik (Mar 22, 2012)

Rigeliano dijo:


> con que PIC aras el de 10x10x10.



Tambien con el 16F877


----------



## Ericktronik (Mar 22, 2012)

Rigeliano dijo:
			
		

> De 10x10x10 y RGB, ese quiero verlo funcionando



tendras que esperar ya que necesito 1000 leds RGB, y para poder conseguirlos a bajo precio tengo que traerlos desde china.
y el envio dura minimo 2 meses ya que es por barco, pero tambien el diseño de la placa y todo, es un poco engorroso, y no mas le hechura de la matriz puede durar tambien sus semanas.
aunque si no puedo armarlo, publicare los diseños para que alguien mas lo pueda hacer(obviamente funciona, ya que es el mismo principio).


----------



## peep387 (Mar 22, 2012)

no esta nada mal para un chico tan joven.. lo bueno de eso seria acer despues un programa en visual para las animaciones. 
y con un matricial led solo seria cojerle el trankillo de manejarlo.  y lo peor. menuda pasta entre integrados y led, y quedava mejor 10x10x40..

jejeje.. un saludo


----------



## gustavo (Mar 22, 2012)

Con que programa escribiste el codigo?


----------



## Ericktronik (Mar 22, 2012)

peep387 dijo:


> no esta nada mal para un chico tan joven.. lo bueno de eso seria acer despues un programa en visual para las animaciones.


pues no soy tan joven, tengo 20; y lo de visual...
no se nada de visual...
aunque esa idea me suena mucho, tratare de mirar tutoriales para poder hacer algo con eso.



gustavo dijo:


> Con que programa escribiste el codigo?



con el compilador PIC-C.
lo he utilizado siempre, ¿por que, no te funciono el codigo?


----------



## gustavo (Mar 22, 2012)

No lo probe todavia, se muy poco de "C" estoy tratanto de entender las lineas de codigo a ver si puedo crear otros efectos


----------



## alejandrozama (Mar 23, 2012)

Ericktronik dijo:


> Actualmente estoy trabajando en un cubo de leds RGB 10x10x10. espero terminar pronto el diseño, aunque el montaje tendra que esperar debido a razones de presupuesto.



IMPRESIONANTE 10X10X10 RGB

te quedo muy bien el cubo led, solo tengo la duda de como se conectan los leds, si pudieras subir algunas imagenes estaria muy bien, de antemano esta muy completo tu aporte.


----------



## Ericktronik (Mar 23, 2012)

alejandrozama dijo:


> IMPRESIONANTE 10X10X10 RGB
> 
> te quedo muy bien el cubo led, solo tengo la duda de como se conectan los leds, si pudieras subir algunas imagenes estaria muy bien, de antemano esta muy completo tu aporte.



en el PDF esta el modo de construir la matriz de leds.


----------



## Ericktronik (Mar 23, 2012)

para armar los niveles:

By ericktronik at 2012-03-23

By ericktronik at 2012-03-23


----------



## Hyperion (Mar 28, 2012)

Ericktronik ... consulta, que largo dejaste los pines de los leds ??? ya que compre los de 5mm y viendo bien, el largo sera mucho y quizas sea mejor amputar un poco los terminales/pines/patas .... cosa que sea capaz de cargar


----------



## Ericktronik (Mar 28, 2012)

Hyperion dijo:


> Ericktronik ... consulta, que largo dejaste los pines de los leds ??? ya que compre los de 5mm y viendo bien, el largo sera mucho y quizas sea mejor amputar un poco los terminales/pines/patas .... cosa que sea capaz de cargar



No hay que cortar nada, solo los que sobresalen del nivel, de resto los deje todos intactos.
espero que puedas montarlo rapido, sube unas fotos!


----------



## Hyperion (Abr 4, 2012)

Ericktronik dijo:


> para armar los niveles:
> 
> By ericktronik at 2012-03-23
> 
> By ericktronik at 2012-03-23



Ericktronik ...

Ya tengo pedido los led, mientras tanto estoy comprando los componentes y revisando tambien la placa (la cual es lijeramente mas pequeña por lo que tendre que modificarla un poco) ... lo que si aun tengo dudas es como montaste los led ... las imagenes que colocaste me dicen que lo hiciste por niveles, y que quedan como mallas ... pero consulta, como lo haces en los pines de led ... en tu archivo pdf donde explicas como se hace, me resulto un poco complicado ... no se si le puedes sacar fotos a tu cubo de cerca cosa de poder distinguir ... apenas este haciendo unos niveles con otros leds que tengo, les sacare foto y subire cosa que me digas si va bien o no ... 


Saludos y aguante ! ! ! ! !


----------



## ilcapo (Abr 4, 2012)

ASIATICO!! genial el aporte amigo  

siempre tube ganas de hacer este proyecto pero nunca tube el tiempo:





te lo dejo en tus manos ! saludos


----------



## Ericktronik (Abr 4, 2012)

ilcapo dijo:


> ASIATICO!! genial el aporte amigo
> 
> siempre tube ganas de hacer este proyecto pero nunca tube el tiempo:
> http://www.youtube.com/watch?v=GmOIyRhFGbk&feature=related
> ...



En realidad la iluminacion propeller es muy facil, ya hice una para unos rines de bicicleta, aca hay un par de videos:










 a partir del minuto 4.

por el momento trabajo en uno pero de vista horizontal, donde se podran ver tanto imagenes como letras, numeros, codigos alfanumericos, etc...

lo unico dificil de este proyecto es la programacion, pero nada es imposible.






Hyperion dijo:


> Ericktronik ...
> 
> Ya tengo pedido los led, mientras tanto estoy comprando los componentes y revisando tambien la placa (la cual es lijeramente mas pequeña por lo que tendre que modificarla un poco) ... lo que si aun tengo dudas es como montaste los led ... las imagenes que colocaste me dicen que lo hiciste por niveles, y que quedan como mallas ... pero consulta, como lo haces en los pines de led ... en tu archivo pdf donde explicas como se hace, me resulto un poco complicado ... no se si le puedes sacar fotos a tu cubo de cerca cosa de poder distinguir ... apenas este haciendo unos niveles con otros leds que tengo, les sacare foto y subire cosa que me digas si va bien o no ...
> 
> ...



Claro Hyperion, aca hay algunas imagenes que pueden ayudarte.
para colocar un nivel sobre el otro, es mas facil primero soldar las 4 esquinas y luego seguir desde el centro hacia afuera, con eso la estabilidad y la distancia se no varia tanto en un nivel.


----------



## yamaga (Abr 4, 2012)

excelente trabajo..
solo que al igual que Hyperion me resulta dificil distinguir como estan conectados los leds con respecto al pic, y ademas como estan conectados los transistores
no tendras alguna simulación o esquema de como estan conectadas las salidas del pic y el cubo.

y otra gran duda que tengo es en saber cual es la funcion de los transistores

se te agradecería mucho si me contestaras esas preguntas


----------



## Hyperion (Abr 4, 2012)

La funcion de los transistores es poder proporcionar la potencia necesaria para que los leds puedan funcionar ... teniendo en cuenta que se alimenta con 5V y puedes perfectamente alimentarlo con 500mA ... 

Compre en una tienda electronica algunas de las tantas cosas que necesito, me falto el condensador de 15nF al igual que los conectores SLI individuales (ni siquiera los conocian con ese nombre, gente ignorante) ... lamentablemente tendre que conectarlos directo a la placa PCB ... ahora solo tengo que comenzar a armar y quizas modificar los tamaños de las piezas ... ademas de hacerme una plantilla en madera para montar los leds ... 

Consulta ... los orificios en la placa, para que estan ?? netamente estetica o alguna funcion especifica...

Las fotos igual me pueden ayudar bastante .... tengo que colocar atencion y intentare hacer un tutorial donde explicar claramente como realizarlo ...


Saludos y Aguante ! ! ! 1


----------



## Ericktronik (Abr 4, 2012)

Hyperion dijo:


> Consulta ... los orificios en la placa, para que estan ?? netamente estetica o alguna funcion especifica...



los orificios de la placa estan hay para no tener que hacer una plantilla en otro lado(como la que piensas hacer -si no la haz hecho ya- en madera...), si leiste bien el PDF hay esta explicado para que son los orificios.

como siempre hago, leo primero.(intenta releer para hacerte una buena imagen mental)



yamaga dijo:


> excelente trabajo..
> solo que al igual que Hyperion me resulta dificil distinguir como estan conectados los leds con respecto al pic, y ademas como estan conectados los transistores
> no tendras alguna simulación o esquema de como estan conectadas las salidas del pic y el cubo.
> 
> ...



1. obviamente tengo la simulacion y el esquema del circuito(lo hice desde cero), pero... ...no posteare el diseño esquematico, es solo para mi uso.
2. en el pdf (en la primera hoja), esta explicada la funcion de los transistores.
3. los transistores funcionan como llaves para las lineas de poder de los leds.

salu2


----------



## EDWARD HALLOWS (Abr 5, 2012)

Muchas gracias por tu aporte. Me salvaste de volver a gastar todo, ya que esta haciendo las conexiones al revés, es decir, los leds de los layers, conectaba todos los negativos, y los pisos dejaba los positivos de forma perpendicular... Muy buen trabajo, apenas estoy empezando con esto de la electrónica, y me fascina, gracias

En tus últimas fotos vi que los layers los hacías conectando todos los ánodos, mientras que los cátodos los dejabas libres para hacer las debidas conexiones en los pisos, ¿No?


----------



## Ericktronik (Abr 5, 2012)

EDWARD HALLOWS dijo:


> En tus últimas fotos vi que los layers los hacías conectando todos los ánodos, mientras que los cátodos los dejabas libres para hacer las debidas conexiones en los pisos, ¿No?



tienes razon, los catodos se conectan verticalmente, estos funcionan como columnas.


----------



## balamb (Abr 11, 2012)

hola, felicidades por tu matriz un gran desarrollo, y me han dado ganas de hacerlo, acabo de pedir 150 led por internet los cuales son blancos de alto brillo y fueron algo economicos, lo que me falta y estoy buscan es el programador de pic´s y el pic, al ver tus diagramas indentifico la conexión de los catodos y anodos solo una pregunta usaste algun soporte o que tipo de cable usas para unir los catodos en general aparte del mismo led, y nuevamente felicidades


----------



## Ericktronik (Abr 11, 2012)

balamb dijo:


> usaste algun soporte o que tipo de cable usas para unir los catodos en general aparte del mismo led, y nuevamente felicidades



la matriz no tiene ningun soporte, solo los leds.
para crear cada nivel use la placa(tal como dice en el pdf)
los catados se unen verticalmente(perpendicular a la placa), no hay que usar otro tipo de cable ni nada parecido.

en el pdf esta todo muy bien explicado.
otra cosa, en lo personal no te recomiendo que hagas el proyecto si no tienes idea alguna de microcontroladores o programacion de estos, ya que la idea de hacer el proyecto es seguir desarrollando animaciones y mirar que tanto "jugo" se le puede llegar a sacar al mismo, solo es una sugerencia obviamente puedes hacerlo(por eso lo subi a la red).


----------



## balamb (Abr 11, 2012)

Hoo ya veo todo con el mismo led me parece perfecto, y me referia del programador de pic´s ha que no lo tengo puesto solo lo use en practicas y ahora me dieron ganas de comprarlo y hacer varias cosas que he estado viendo, y electronico no soy, sólo soy aficionado y unos cuantas classs que tuve en la uni me ayudaron a comprender muchas cosas, cuales me gusta seguir investigando,aun cuando yo me  dedico a la programación puesto que soy de sistemas.

y de nuevo excelete aporte, ha decir verdad tu matriz es la primera que habia visto, y busque por internet y veo que existen más, pero me gusto mas tu matriz ya que se ve algo mas claral y mas estructurado


----------



## Ericktronik (Abr 11, 2012)

balamb dijo:


> a decir verdad tu matriz es la primera que habia visto, y busque por internet y veo que existen más, pero me gusto mas tu matriz ya que se ve algo mas claral y mas estructurado



Pues esta fue solo un "borrador", ya que actualmente trabajo en una de 10x10x10 RGB.
con el mismo PIC, tal vez intente hacer una con USB pero mas adelante.


----------



## Hyperion (Abr 11, 2012)

Ericktronik ...

Consulta ... usas la aplicacion Icprog para poder mandar el .hex al PIC ??? 

Esta aplicacion la usaba hace muchos años atras y olvide como se usaba ... no se si nos pudieras guiar sobre su correcto uso.

Otra cosa, hasta ahora tengo casi todo listo, la placa, perforaciones y componentes los tengo ... los leds estan en camino (me salio mucho mas barato comprarla en otro lugar) y estoy sacandole fotos a los avances cosa de poder hacer un pdf con todo lo del proyecto ... con cada avance, me entusiasma mas el cubo ...

Saludos.


----------



## Ericktronik (Abr 11, 2012)

Hyperion dijo:


> Ericktronik ...
> 
> Consulta ... usas la aplicacion Icprog para poder mandar el .hex al PIC ???
> 
> ...



Yo uso el PICkit2 porque me hize un clon con base zif(pronto subire el aporte).
jamas he usado el Icprog.

espero que la proxima sigas las instrucciones del pdf(la matriz de agujeros era para hacer los niveles de leds!, y habia que primero hacer el cubo antes de soldar los componentes.), pero bueno con tal que sirva todo esta bien.


----------



## Ericktronik (Abr 19, 2012)

Bueno gente,
aca hay un adelanto de la placa controladora de mi CUBO LED 10x10x10 RGB.
ya casi acabo el PCB.
esta solo es la controladora, para esta gran cantidad de leds(1000) habra que ponerlos sobre una plataforma de madera o acrilico transparente u opaco, ademas de delgadas barras de acero o cobre para que tenga una buena estabilidad y el peso no dañe la estructura.
espero que les guste.


----------



## Ericktronik (Abr 21, 2012)

Acabo de terminar la tarjeta controladora para le CUBO LED RGB 10x10x10.

espero que les guste.
intentare comenzar con ella lo mas pronto posible.


----------



## inspector gadget (Abr 22, 2012)

hola de nuevo, has pensado en el desarrollo de una matriz de leds pasamensajes? gracias por tus aportes.


----------



## Ericktronik (Abr 22, 2012)

inspector gadget dijo:


> hola de nuevo, has pensado en el desarrollo de una matriz de leds pasamensajes? gracias por tus aportes.



2D o 3D?
intentare crear una libreria para el cubo de 10x10x10 RGB, para poder pasar mensajes y letras que giren sobre los 3 ejes.


----------



## Ericktronik (Abr 24, 2012)

Buenos dias a todos.
estoy mirando la posibilidad de cambiar el 877 de la nueva placa por un 4550 o un 4553 con usb, y crear un soft para poder manejar el cubo; pero...
necesito 33 pines de salida y en realidad el 4550 y el 4553 tiene solo 32 para poderlos trabajar, alguien sabe como hacer para habilitar un pin mas para trabajarlo como salida?, o si me pueden recomendar un microcontrolador que tenga usb y tenga minimo 33 pines para trabajarlos como salida.
espero que me ayuden.
aca dejo una imagen de los pines de estos microcontroladores.


----------



## Hyperion (Abr 27, 2012)

Erick ... 

Disculpa el tiempo sin subir informacion ... tuve una semana pesada en la pega y recien el miercoles llegaron los led que pedi, ya el sabado armare la estructura del cubo siguiendo tus indicaciones ... 

Tambien encontre algo de informacion sobre algun tipo de programilla para controlar y crear secuencias para un cubo, dejo link de youtube:






Lo que si tengo que revisar muy bien como programar el PIC ya que estuve viendo que usamos programas distintos .... ocupo un programador que compre en Olimex.cl, dejo el link:

http://articulo.mercadolibre.cl/MLC-402592540-programador-de-pic-jdm-serial-v2-con-socket-de-40-pines-_JM

Y utilizo el mismo programa que aparece en esa venta, el ICProg ... al principio me dio problemas por los drivers, ya que tengo win xp sp3 en mi laptop ... 

Ahora si bien te habia dicho que monte los puentes primero antes de colocar la estructura del cubo, considere que es mas facil soldar esos componentes en la placa ya que no usan tanto espacio y despues me puedo complicar al colocar cables por entre medio de los pines del cubo (ya que no encontre los conectores SLI individuales, aqui en Santiago de Chile pregunte por ellos pero nadie sabia su nombre o que es lo que eran) .... 

Bueno, espero que sirvan en algo el video que coloque para algun futuro cubo controlado por algun programa ...

Saludos y apenas tenga mas info, lo escribire sin problemas.

Hyperion



... algo mas para crear animaciones con un entorno grafico ... lo unico malo que esta en aleman ....


http://www.qube-solutions.de/qube-5/downloads


----------



## Ericktronik (Abr 27, 2012)

ese programa fue hecho en visual basic, yo ando haciendo lo mismo pero desde labview aunque ya es para mi cubo de 10 RGB.


----------



## Ericktronik (May 7, 2012)

Bueno gente, aca el diseño total y final de la version numero 1 de la controladora del cubo de leds 10x10x10 RGB.

Caracteristicas:
PIC 16F877 (soldado a placa).
Reloj 4MHz a 20MHz.
Frecuencia de trabajo maxima 20MHz.
Seleccion de columnas mediante logica combinacional.
1000(mil) LEDs RGB.
9 Colores basicos.
Maximo 256 Colores.
Conector ICSP(In Circuit Serial Programing).
Comunicacion Serial (RS-232).
Programacion por ISCP o BootLoader.
Switch ON/OFF.
Boton Reset.
Alimentacion por JACK DC.
Entrada de AC entre 6v y 9v.
Regulacion a 5v mediante 3 LM7805.
Proteccion de corrientes inversas mediante diodo.
Filtracion de ruidos en alimentacion con condensadores.
Extremos fijables a base.
Posibilidad de PCB doble capa o puenteado mediante alambre de cobre.
LED indicador de encendido.
Coneccion de LEDs totalmente externa.

y como siempre...
diseño totalmente PROPIO!

ERICKTRONIK DESINGS


----------



## Hyperion (May 7, 2012)

Erick ... 

Has podido ver alguna aplicacion que sirva para crear las rutinas del cubo de 5x5x5 ??

Saludos.



Señores ...

Creen que sera de utilidad esta aplicacion de control para el cubo led 5x5x5 ...

http://www.qube-solutions.de/qube-5/downloads


Saludos.


----------



## Ericktronik (May 7, 2012)

en realidad, para este cubo es diferente pues la dispocicion de pines es diferente a cualquier otro.
para este cubo habria que crear el programa.


----------



## Ericktronik (May 8, 2012)

hola gente, aca hay un nuevo codigo fuente que pueden probar.
ahora es mas facil programar si lo leen bien.

la mejora es que defini las columnas y niveles por medio de bits individuales.

espero les ayude.


```
#INCLUDE <16F877A.H>//USAMOS EL PIC 16F877A
#FUSES XT,NOWDT,NOPROTECT,NOLVP//FUSIBLES QUE VAMOS A USAR
#USE DELAY(CLOCK=4Mhz)//USAMOS UNA FRECUENCIA DE RELOJ DE 4MHZ
#include <STDLIB.H>
//Codigo Hecho en su totalidad por Erick Arias Devia
//Bogota D.C. Marzo de 2012

//Puertos mediante definicion de Bytes//
#Byte Porta=0x05
#Byte portb=0x06
#Byte portc=0x07
#Byte portd=0x08
#Byte porte=0x09
//Final de la declaracion de puertos//

//Columnas y niveles, mediante definicion de bits//
#bit col1=0x05.0
#bit col2=0x05.1
#bit col3=0x05.2
#bit col4=0x05.3
#bit col5=0x05.4
#bit col6=0x05.5
#bit col7=0x06.0
#bit col8=0x06.1
#bit col9=0x06.2
#bit col10=0x06.3
#bit col11=0x06.4
#bit col12=0x06.5
#bit col13=0x06.6
#bit col14=0x06.7
#bit col15=0x07.0
#bit col16=0x07.1
#bit col17=0x07.2
#bit col18=0x07.3
#bit col19=0x07.4
#bit col20=0x07.5
#bit col21=0x07.6
#bit col22=0x07.7
#bit col23=0x09.0
#bit col24=0x09.1
#bit col25=0x09.2

#bit niv1=0x08.0
#bit niv2=0x08.1
#bit niv3=0x08.2
#bit niv4=0x08.3
#bit niv5=0x08.4
//Final de la declaracion de columnas y niveles//

int i=0,a=0,n=0,c=0;
//funciones extra
void nivel1on(int){
output_d(0b00000001);
}
void nivel2on(int){
output_d(0b00000010);
}
void nivel3on(int){
output_d(0b00000100);
}
void nivel4on(int){
output_d(0b00001000);
}
void nivel5on(int){
output_d(0b00010000);
}
//------Letras-----
void letra(int){     //traslacion de la letra por niveles
niv1=1;
delay_ms(150);
niv2=1;
delay_ms(150);
niv3=1;niv1=0;
delay_ms(150);
niv4=1;niv2=0;
delay_ms(150);
niv5=1;niv3=0;
delay_ms(150);
niv4=0;
delay_ms(150);
niv5=0;
}
void letraa(int){
Output_a(0b111110);
Output_b(0b01010010);
Output_c(0b10001010);
Output_e(0xff);
}
void letrab(int){
Output_a(0b111111);
Output_b(0b01011010);
Output_c(0b10101011);
Output_e(0b010);
}
void letrac(int){
Output_a(0b101110);
Output_b(0b00011000);
Output_c(0b01100011);
Output_e(0b100);
}
void letrad(int){
Output_a(0b111111);
Output_b(0b00011000);
Output_c(0b10100011);
Output_e(0b011);
}
void letrae(int){
Output_a(0b111111);
Output_b(0b01011010);
Output_c(0b01100011);
Output_e(0b100);
}
void letraf(int){
Output_a(0b111111);
Output_b(0b01010010);
Output_c(0b01000010);
Output_e(0x00);
}
void letrag(int){
Output_a(0b111111);
Output_b(0b01011000);
Output_c(0b01101011);
Output_e(0xff);
}
void letrah(int){
Output_a(0b011111);
Output_b(0b01000010);
Output_c(0b11001000);
Output_e(0xff);
}
void letrai(int){
Output_a(0b110001);
Output_b(0b11111000);
Output_c(0b01100011);
Output_e(0b100);
}
void letraj(int){
Output_a(0b110001);
Output_b(0b01010010);
Output_c(0b01000011);
Output_e(0x00);
}
void letrak(int){
Output_a(0b011111);
Output_b(0b01000100);
Output_c(0b01010100);
Output_e(0b100);
}
void letral(int){
Output_a(0b011111);
Output_b(0b00001000);
Output_c(0b00100001);
Output_e(0b100);
}
void letram(int){
Output_a(0b011111);
Output_b(0b01000001);
Output_c(0b11000100);
Output_e(0xff);
}
void letran(int){
Output_a(0b011111);
Output_b(0b01000001);
Output_c(0b11010000);
Output_e(0xff);
}
void letrao(int){
Output_a(0b101110);
Output_b(0b00011000);
Output_c(0b10100011);
Output_e(0b011);
}
void letrap(int){
Output_a(0b111111);
Output_b(0b01010010);
Output_c(0b10001010);
Output_e(0b001);
}
void letraq(int){
Output_a(0b101110);
Output_b(0b00011000);
Output_c(0b10010011);
Output_e(0b101);
}
void letrar(int){
Output_a(0b111111);
Output_b(0b11010010);
Output_c(0b10101010);
Output_e(0b100);
}
void letras(int){
Output_a(0b110010);
Output_b(0b01011010);
Output_c(0b01101011);
Output_e(0b010);
}
void letrat(int){
Output_a(0b100001);
Output_b(0b11110000);
Output_c(0b01000011);
Output_e(0b000);
}
void letrau(int){
Output_a(0b001111);
Output_b(0b00001000);
Output_c(0b11100001);
Output_e(0b011);
}
void letrav(int){
Output_a(0b000111);
Output_b(0b00000100);
Output_c(0b11010001);
Output_e(0b001);
}
void letraw(int){
Output_a(0b011111);
Output_b(0b01000100);
Output_c(0b11010000);
Output_e(0xff);
}
void letrax(int){
Output_a(0b010001);
Output_b(0b01000101);
Output_c(0b01010100);
Output_e(0b100);
}
void letray(int){
Output_a(0b000011);
Output_b(0b10000010);
Output_c(0b11001001);
Output_e(0x00);
}
void letraz(int){
Output_a(0b110001);
Output_b(0b01011100);
Output_c(0b01100111);
Output_e(0b100);
}
//-------Final Letras---
void upslowon(int){
output_d(0b00000001);//enciende el nivel 1
delay_ms(150);
output_d(0b00000011);//enciende los niveles 1 y 2
delay_ms(150);
output_d(0b00000111);//enciende los niveles 1, 2 y 3
delay_ms(150);
output_d(0b00001111);//enciende los niveles 1, 2, 3 y 4
delay_ms(150);
output_d(0xff);//enciende todos los niveles
delay_ms(150);
}
void upslowoff(int){
output_d(0b00011110);
delay_ms(150);
output_d(0b00011100);
delay_ms(150);
output_d(0b00011000);
delay_ms(150);
output_d(0b00010000);
delay_ms(150);
output_d(0x00);
delay_ms(150);
}
void allcolson(int){
output_a(0xff);//Enciende
output_b(0xff);//todas
output_c(0xff);//las
output_e(0xff);//columnas
delay_us(1);
}
void allcolsoff(int){
output_a(0x00);//Apaga
output_b(0x00);//todas
output_c(0x00);//las
output_e(0x00);//columnas
delay_us(1);
}
void espiralcuadro(int){
output_a(0b000001);
delay_ms(50);
output_a(0b000011);
delay_ms(50);
output_a(0b000111);
delay_ms(50);
output_a(0b001111);
delay_ms(50);
output_a(0b011111);
delay_ms(50);
output_b(0b00001000);
delay_ms(50);
output_c(0b00000001);
delay_ms(50);
output_c(0b00100001);
delay_ms(50);
output_e(0b100);
delay_ms(50);
output_e(0b110);
delay_ms(50);
output_e(0b111);
delay_ms(50);
output_c(0b10100001);
delay_ms(50);
output_c(0b11100001);
delay_ms(50);
output_c(0b11100011);
delay_ms(50);
output_b(0b00011000);
delay_ms(50);
output_a(0xff);
delay_ms(50);
output_b(0b00011001);
delay_ms(50);
output_b(0b00011011);
delay_ms(50);
output_b(0b00011111);
delay_ms(50);
output_b(0b10011111);
delay_ms(50);
output_c(0b11110011);
delay_ms(50);
output_c(0b11111011);
delay_ms(50);
output_c(0b11111111);
delay_ms(50);
output_c(0b11111111);
delay_ms(50);
output_b(0b10111111);
delay_ms(50);
output_b(0b11111111);
delay_ms(50);
//comienza apagado
output_a(0b111110);
delay_ms(50);
output_a(0b111100);
delay_ms(50);
output_a(0b111000);
delay_ms(50);
output_a(0b110000);
delay_ms(50);
output_a(0b100000);
delay_ms(50);
output_b(0b11110111);
delay_ms(50);
output_c(0b11111110);
delay_ms(50);
output_c(0b11011110);
delay_ms(50);
output_e(0b011);
delay_ms(50);
output_e(0b001);
delay_ms(50);
output_e(0x00);
delay_ms(50);
output_c(0b01011110);
delay_ms(50);
output_c(0b00011110);
delay_ms(50);
output_c(0b00011100);
delay_ms(50);
output_b(0b11100111);
delay_ms(50);
output_a(0x00);
delay_ms(50);
output_b(0b11100110);
delay_ms(50);
output_b(0b11100100);
delay_ms(50);
output_b(0b11100000);
delay_ms(50);
output_b(0b01100000);
delay_ms(50);
output_c(0b000001100);
delay_ms(50);
output_c(0b00000100);
delay_ms(50);
output_c(0x00);
delay_ms(50);
output_b(0b01000000);
delay_ms(50);
output_b(0x00);
}
void rotadordiagonales(int){
for(i=0;i<=40;i++){ //1/8
nivel5on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1);            
nivel4on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);                     
nivel3on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);                     
nivel2on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);                     
nivel1on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //2/8
nivel5on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1); 
nivel4on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1); 
nivel3on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1); 
nivel2on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1); 
nivel1on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1); 
}
for(i=0;i<=40;i++){ //3/8
nivel5on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1); 
nivel4on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1); 
nivel3on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1); 
nivel2on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1); 
nivel1on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1); 
}
for(i=0;i<=40;i++){ //4/8
nivel5on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1); 
nivel4on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1); 
nivel3on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1); 
nivel2on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1); 
nivel1on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1); 
}
for(i=0;i<=40;i++){ //5/8
nivel5on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1); 
nivel4on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1); 
nivel3on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1); 
nivel2on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1); 
nivel1on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1); 
}
for(i=0;i<=40;i++){ //6/8
nivel5on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);    
nivel4on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1); 
allcolsoff(1); 
nivel3on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1); 
nivel2on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1); 
nivel1on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1); 
}
for(i=0;i<=40;i++){ //7/8
nivel5on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //8/8
nivel5on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
}
}
void rotadordiagonales2(int){
for(i=0;i<=50;i++){ //1/4
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=50;i++){ //2/4
Output_a(0b101000);
Output_c(0b10100000);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=50;i++){ //3/4
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=50;i++){ //4/4
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
}
void cubos1(int){
col1=1;col2=1;col6=1;col7=1;niv1=1;niv2=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col1=0;col6=0;
col3=1;col8=1;
delay_ms(75);
col2=0;col7=0;
col4=1;col9=1;
delay_ms(75);
col3=0;col8=0;
col5=1;col10=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col4=0;col5=0;
col15=1;col14=1;
delay_ms(75);
col9=0;col10=0;
col20=1;col19=1;
delay_ms(75);
col15=0;col14=0;
col24=1;col25=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col20=0;col25=0;
col18=1;col23=1;
delay_ms(75);
col19=0;col24=0;
col17=1;col22=1;
delay_ms(75);
col18=0;col23=0;
col16=1;col21=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col21=0;col22=0;
col12=1;col11=1;
delay_ms(75);
col16=0;col17=0;
col6=1;col7=1;
delay_ms(75);
col12=0;col11=0;
col1=col2=1;
delay_ms(75);
}
void cubos2(int){
col1=1;col2=1;col6=1;col7=1;niv1=1;niv2=1;
delay_ms(200);
col3=1;col8=1;col13=1;col11=1;col12=1;niv3=1;
delay_ms(200);
col4=1;col9=1;col14=1;col19=1;col18=1;col17=1;col16=1;niv4=1;
delay_ms(200);
col5=1;col10=1;col15=1;col20=1;col25=1;col24=1;col23=1;col22=1;col21=1;niv5=1;
delay_ms(200);
col5=0;col10=0;col15=0;col20=0;col25=0;col24=0;col23=0;col22=0;col21=0;niv5=0;
delay_ms(200);
col4=0;col9=0;col14=0;col19=0;col18=0;col17=0;col16=0;niv4=0;
delay_ms(200);
col3=0;col8=0;col13=0;col11=0;col12=0;niv3=0;
delay_ms(200);
col3=1;col8=1;col13=1;col11=1;col12=1;niv3=1;
delay_ms(200);
col4=1;col9=1;col14=1;col19=1;col18=1;col17=1;col16=1;niv4=1;
delay_ms(200);
col5=1;col10=1;col15=1;col20=1;col25=1;col24=1;col23=1;col22=1;col21=1;niv5=1;
delay_ms(200);

col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=0;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=1;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=0;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=1;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=1;
delay_ms(200);

col1=col2=col3=col4=col5=col6=col10=col11=col15=col20=col16=col21=col22=col23=col24=col25=niv1=niv5=0;
delay_ms(200);
col7=col8=col9=col12=col14=col17=col18=col19=niv2=niv4=0;
delay_ms(200);
col13=niv3=0;
delay_ms(200);
}
Void caer(int){
nivel5on(1);
delay_ms(50);
nivel4on(1);
delay_ms(50);
nivel3on(1);
delay_ms(50);
nivel2on(1);
delay_ms(50);
nivel1on(1);
delay_ms(50);
}
Void subir(int){
nivel1on(1);
delay_ms(50);
nivel2on(1);
delay_ms(50);
nivel3on(1);
delay_ms(50);
nivel4on(1);
delay_ms(50);
nivel5on(1);
delay_ms(50);
}



void main(){      //PROGRAMA PRINCIPAL
set_tris_a(0xff);
set_tris_b(0xff);
set_tris_c(0xff);
set_tris_e(0xff);
set_tris_d(0b00011111);
delay_ms(100);

while (true){        //CICLO INFINITO
allcolson(1);
for(i=0;i<=1;i++){  //niveles uno por uno
allcolson(1);
upslowon(1);
upslowoff(1);
}
allcolsoff(1);
for(a=0;a<=254;a++){  //silueta del cubo
while(i<=254){  
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_a(0xff);
output_b(0b00011000);
output_c(0b11100011);
output_e(0b111);
output_d(0b00010001);
delay_ms(5);
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_a(0b010001);
output_c(0b01000000);
output_e(0b100);
output_d(0xff);
delay_ms(5);
i++;
}
}
a=0;
for(i=0;i<=254;i++){  //silueta del cubo pequeño
while(a<=254){  
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_b(0b10100111);
output_c(0b00011100);
output_d(0b00001010);
delay_ms(5);
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_b(0b00000101);
output_c(0b00010100);
output_d(0b00001110);
delay_ms(5);
a++;
}
}
{    //enciende el led del medio
allcolsoff(1);
col13=1;
nivel3on(1);
delay_ms(1500);
}
for(i=0;i<=20;i++){  //aspas giratorias(vista vertical)
output_d(0xff);//enciende todos los niveles
delay_us(1);
output_a(0b000100);
output_b(0b11110010);
output_c(0b00001001);
output_e(0b001);
delay_ms(200);
output_a(0b010001);
output_b(0b01000101);
output_c(0b01010100);
output_e(0b100);
delay_ms(250);
}
output_d(0x00);
delay_ms(500);
{   //Espiral cuadrado
allcolsoff(1);
output_d(0b00000001);
espiralcuadro(1);
output_d(0b00000011);
espiralcuadro(1);
output_d(0b00000111);
espiralcuadro(1);
output_d(0b00001111);
espiralcuadro(1);
output_d(0xff);
espiralcuadro(1);
delay_ms(300);
}
output_d(0x00);
for(a=0;a<=10;a++){  //rotador de diagonales
rotadordiagonales(1);
}
for(a=0;a<=15;a++){  //rotador de diagonales2
rotadordiagonales2(1);
}
for(i=0;i<=1;i++){   //360
output_b(0b01000000);
upslowon(1);
output_b(0b01100000);
delay_ms(50);
output_b(0b01110000);
delay_ms(200);
output_a(0b100000);
delay_ms(50);
output_b(0b01110001);
delay_ms(50);
output_a(0b100001);
delay_ms(50);
output_a(0b100011);
delay_ms(50);
output_a(0b100111);
output_b(0b01110011);
delay_ms(50);
output_a(0b101111);
delay_ms(50);
output_b(0b01110111);
delay_ms(50);
output_a(0xff);
output_b(0b01111111);
delay_ms(50);
output_b(0b01111111);
delay_ms(50);
output_b(0xff);
output_c(0b00000001);
delay_ms(50);
output_c(0b00100001);
delay_ms(50);
output_c(0b00110001);
output_e(0b100);
delay_ms(50);
output_e(0b110);
delay_ms(50);
output_c(0b00111001);
output_e(0xff);
delay_ms(50);
output_c(0b10111001);
delay_ms(50);
output_c(0b11111101);
delay_ms(50);
output_c(0xff);
delay_ms(150);
upslowoff(1);
allcolsoff(1);
delay_ms(500);
}

{allcolsoff(1);   //Caer y Subir
col1=1;
caer(1);
allcolsoff(1);
col2=1;
subir(1);
allcolsoff(1);
col3=1;
caer(1);
allcolsoff(1);
col4=1;
subir(1);
allcolsoff(1);
col5=1;
caer(1);
allcolsoff(1);
col10=1;
subir(1);
allcolsoff(1);
col9=1;
caer(1);
allcolsoff(1);
col8=1;
subir(1);
allcolsoff(1);
col7=1;
caer(1);
allcolsoff(1);
col6=1;
subir(1);
allcolsoff(1);
col11=1;
caer(1);
allcolsoff(1);
col12=1;
subir(1);
allcolsoff(1);
col13=1;
caer(1);
allcolsoff(1);
col14=1;
subir(1);
allcolsoff(1);
col15=1;
caer(1);
allcolsoff(1);
col20=1;
subir(1);
allcolsoff(1);
col19=1;
caer(1);
allcolsoff(1);
col18=1;
subir(1);
allcolsoff(1);
col17=1;
caer(1);
allcolsoff(1);
col16=1;
subir(1);
allcolsoff(1);
col21=1;
caer(1);
allcolsoff(1);
col22=1;
subir(1);
allcolsoff(1);
col23=1;
caer(1);
allcolsoff(1);
col24=1;
subir(1);
allcolsoff(1);
col25=1;
caer(1);
allcolsoff(1);
col4=1;
subir(1);
allcolsoff(1);
col13=1;
caer(1);
allcolsoff(1);
col15=1;
subir(1);
allcolsoff(1);
col1=1;
caer(1);
allcolsoff(1);
col16=1;
subir(1);
allcolsoff(1);
col21=1;
caer(1);
allcolsoff(1);
col25=1;
subir(1);
allcolsoff(1);
col11=1;
caer(1);
allcolsoff(1);
col19=1;
subir(1);
allcolsoff(1);
col3=1;
caer(1);
allcolsoff(1);
col8=1;
subir(1);
allcolsoff(1);
col20=1;
caer(1);
allcolsoff(1);
col7=1;
subir(1);
allcolsoff(1);
col2=1;
caer(1);
allcolsoff(1);
col22=1;
subir(1);
allcolsoff(1);
col12=1;
caer(1);
allcolsoff(1);
col16=1;
subir(1);
allcolsoff(1);
col3=1;
caer(1);
allcolsoff(1);
col24=1;
subir(1);
allcolsoff(1);
col7=1;
caer(1);
allcolsoff(1);
col11=1;
subir(1);
allcolsoff(1);
col5=1;
caer(1);
allcolsoff(1);
col23=1;
subir(1);
allcolsoff(1);
col15=1;
caer(1);
allcolsoff(1);
col6=1;
subir(1);
}

cubos1(1);
output_d(0x00);
cubos2(1);
output_d(0x00);

col1=col5=col21=col25=1;
upslowon(1);
col11=col15=col3=col23=1;
delay_ms(250);
col8=col18=col12=col14=1;
delay_ms(170);
allcolson(1);
for(i=0;i<=10;i++){
output_d(0xff);
delay_ms(50);
output_d(0x00);
delay_ms(50);
}
}
}
```


----------



## mnicolau (May 19, 2012)

Hola Elektronik, un consejo con la programación... veo que repetís muchas veces las mismas líneas de código, por ejemplo:


```
void letram(int){
Output_a(0b011111);
Output_b(0b01000001);
Output_c(0b11000100);
Output_e(0xff);
}
```

Podrías ahorrar muchas líneas si armás una función con ellas y de esa manera las escribís *sólo una vez.* Luego cada vez que la necesites usar, la llamás indicándole los datos a utilizar para cada caso. Siguiendo el ejemplo, la función sería:


```
void Letra(int w, int x, int y, int z)
{
Output_a(w);
Output_b(x);
Output_c(y);
Output_e(z);
}
```

Y si querés sacar una letra M la llamás así:


```
Letra(0b011111,0b01000001,0b11000100,0xff);
```

La misma técnica podés aplicar en cada caso donde repitas la misma operación en varias oportunidades y de esta manera vas a ahorrar una buena cantidad de memoria, además de optimizar el código y hacer más fácil su interpretación.

Saludos


----------



## ChuiTo (May 21, 2012)

hola me gustaria saber un poco mas sobre el diagrama es que la verdad no entiendo muy bien el PDF y necesito terminar este cubo en dos semanas :S



ohh y tmbn quiciera saber que onda con el puerto E -.- .....en el puerto D sobran 3 pines..esos pines los usas para las columnas???


----------



## Ericktronik (May 21, 2012)

ChuiTo dijo:


> hola me gustaria saber un poco mas sobre el diagrama es que la verdad no entiendo muy bien el PDF y necesito terminar este cubo en dos semanas :S
> 
> ohh y tmbn quiciera saber que onda con el puerto E -.- .....en el puerto D sobran 3 pines..esos pines los usas para las columnas???



Hola.
El diagrama es solo para mi uso, no lo publicare.(no insistir)
Hize este aporte con el animo que de pudieran hacerlo de una manera facil, aprendiendo el principio del cubo, no lo hice para solucionarles los problemas academicos y que tengan una buena nota a costa del conocimiento de otros(revisa las normas del foro).
En el PDF esta bien explicado todo lo que necesitas saber sobre el cubo, con respecto a los pines que sobran... ...solo son eso, pines sobrantes.
si lees el ultimo codigo fuente que publique, veras como estan distribuidos los puertos.

Por tu fecha de ingreso al foro dedusco que solo entraste para que te hiciera la tarea y sin animo de ofender, el foro no es para eso; porfavor lee las normas del foro.


----------



## ChuiTo (May 21, 2012)

muchas gracias por la sinceridad pero pues la verdad no vengo a que me hagan la tarea tengo una duda y pues por lo del diagrama no te preocupes  

por cierto esque el puerto E eso no entiendo nada 

lo que creo que hiciste fue tomar los pines sobrantes para las 3 columnas que restan es cierto o me equivoco??


----------



## Ericktronik (May 21, 2012)

ChuiTo dijo:


> muchas gracias por la sinceridad pero pues la verdad no vengo a que me hagan la tarea tengo una duda y pues por lo del diagrama no te preocupes
> 
> por cierto esque el puerto E eso no entiendo nada
> 
> lo que creo que hiciste fue tomar los pines sobrantes para las 3 columnas que restan es cierto o me equivoco??



del puerto D sobran 3 pines porque use el puerto E, si no hubiese usado el puerto E estarian ocupados esos 3 pines y el puerto E(que tambien son 3 pines) estarian sin usar, fue solo distrubucion para el manejo del PCB.


----------



## ChuiTo (May 23, 2012)

una pregunta mas como acomodaste los pines del puerto D yo los acomode pin D0 a nivel 1, D1 nivel 2 y asi sucesivamente pero no me funciona tu codigo en la simulacion :/ ya hice un codigo yo pero ps me sale que no hay suficiente room o que son demasiadas lineas

muchas gracias por lo del los pines ya consulte los PICs y y me di cuenta de eso


----------



## Ericktronik (May 23, 2012)

ChuiTo dijo:


> una pregunta mas como acomodaste los pines del puerto D yo los acomode pin D0 a nivel 1, D1 nivel 2 y asi sucesivamente pero no me funciona tu codigo en la simulacion :/ ya hice un codigo yo pero ps me sale que no hay suficiente room o que son demasiadas lineas
> 
> muchas gracias por lo del los pines ya consulte los PICs y y me di cuenta de eso



Los bits que se usan del puerto D son los 5 primeros en orden a los niveles.

Simulacion?
no necesitas simular nada, solo compilarlo y grabar el .hex en el pic.

el codigo funciona perfectamente, algo estas haciendo mal para que no te funcione.


----------



## ChuiTo (May 23, 2012)

ok muchas gracias erik entonces si tengo bien conectados los niveles...pues yo simule un nivel solamente no todos los niveles pero pues no me salen las letras no se que pasa a lo mejor conecte mal laas columnas :S

ohh y se me olvido mencionar yo estoy usando otro PIC el 16f887 



con ese pic no necesito compra el crystal ya tiene un oscilador interno y pues es el pic que consegui


----------



## Ericktronik (May 23, 2012)

ChuiTo dijo:


> ok muchas gracias erik entonces si tengo bien conectados los niveles...pues yo simule un nivel solamente no todos los niveles pero pues no me salen las letras no se que pasa a lo mejor conecte mal laas columnas :S
> 
> ohh y se me olvido mencionar yo estoy usando otro PIC el 16f887
> 
> ...



cualqueir tipo de programa diseñado para el 877 sirve para el 887 lo unico que hay que hacer es activar el reloj interno, si lo hiciste bien, deberia funcionar correctamente, yo tambien tengo varios 887 y los he utilizado para el cubo, ninguno me presento problema.


----------



## Ivette16 (May 24, 2012)

tengo el cubo de leds de 5x5x5,al comienzo funciono bien, decidi cambiar los cables que conectan los leds a la baquela y ahora resulta que alumbran algunos leds sin hacer animaciones y se recalienta el pic y no e encontrado el por que, si alguien me puede ayudar y decirme que pudo haber fallado, ya cambie el crystal, el condensador y sigue pasando lo mismo.


----------



## Ericktronik (May 24, 2012)

Ivette16 dijo:


> tengo el cubo de leds de 5x5x5,al comienzo funciono bien, decidi cambiar los cables que conectan los leds a la baquela y ahora resulta que alumbran algunos leds sin hacer animaciones y se recalienta el pic y no e encontrado el por que, si alguien me puede ayudar y decirme que pudo haber fallado, ya cambie el crystal, el condensador y sigue pasando lo mismo.



si pudieras subir unas fotos del cubo seria mas facil ayudarte, unas donde se vea que cables cambiaste y unas de la parte del cobre.


----------



## Ivette16 (May 24, 2012)

la resolucion es mala


















otra cosa que e notado con el circuito es que con el jumper del reset abierto o cerrado, a los 5 seg de encenderlo se iluminan algunos leds y se mantienen encedidos. de ahi se comienza a calentar el pic.


----------



## Ericktronik (May 24, 2012)

Ivette16 dijo:


> la resolucion es mala
> 
> otra cosa que e notado con el circuito es que con el jumper del reset abierto o cerrado, a los 5 seg de encenderlo se iluminan algunos leds y se mantienen encedidos. de ahi se comienza a calentar el pic.



tienes razon, la resolucion es exageradamente mala.
te recomendaria que miraras que no hayan partes caminos pedagos o excesos de soldadura.
y tambien pondria un electrolitico donde tienes el de polyester.

no se si viste las fotos de como quedo mi cubo y si leiste en realidad el PDF, pero por algo el cubo se pone sobre la placa, de esta forma no tienes problemas con las conecciones.

intenta subir unas fotos de mayor resolucion, tanto de la placa con del cubo.

de todas maneras ya sabes que funciona, ahora lo que queda es seguir mirando en que la estas embarrando


----------



## Ivette16 (May 24, 2012)

acabo de desconectar todos los leds,y obtengo el mismo resultado "pic se calienta",e mirado una y otras ves si es algun punto de  soldadura que esta haciendo corto y tampoco veo.

y lo de cambiar el polyester, no entiendo si al primer intento me funciono bien con el, y despues de que comenzo a fallar lo cambie junto con el crystal, para descartarlos de que se hubiesen quemados.

pero volvere a hechar un vistazo


----------



## Ericktronik (May 24, 2012)

Ivette16 dijo:


> acabo de desconectar todos los leds,y obtengo el mismo resultado "pic se calienta",e mirado una y otras ves si es algun punto de  soldadura que esta haciendo corto y tampoco veo.
> 
> y lo de cambiar el polyester, no entiendo si al primer intento me funciono bien con el, y despues de que comenzo a fallar lo cambie junto con el crystal, para descartarlos de que se hubiesen quemados.
> 
> pero volvere a hechar un vistazo



no me di cuenta, pero tienes puesto el cristal.
si tienes activado el reloj interno quitale el cristal(yo lo probe asi).

otra cosita que no aci en cuenta la primera vez, si el pic se calento es posible que se haya dañado, intenta con un pic nuevo; pero primero mira cada camino uno por uno para saber si hay problema con alguno


----------



## diegox07 (May 25, 2012)

Erick como va todo? Necesito que me despejes una duda en cuanto al circuito y es respecto a las resistencias R31 y R32. La R31 es la que funciona como anti-rebote para el jumper del master clear, no? Y la R32... no veo su funcionalidad, o mejor, no se para que la pones alli, por que según entiendo viene del positivo (Vcc) a la salida RA4 que va hacia el transistor Q10... Me podrías decir por favor cual es su función? Muchas gracias de antemano Erick.


----------



## Ericktronik (May 25, 2012)

diegox07 dijo:


> Erick como va todo? Necesito que me despejes una duda en cuanto al circuito y es respecto a las resistencias R31 y R32. La R31 es la que funciona como anti-rebote para el jumper del master clear, no? Y la R32... no veo su funcionalidad, o mejor, no se para que la pones alli, por que según entiendo viene del positivo (Vcc) a la salida RA4 que va hacia el transistor Q10... Me podrías decir por favor cual es su función? Muchas gracias de antemano Erick.



Hola.
la resistencia R31 es la resistencia de polarizacion para el MCLR(los antirrebotes estan hechos con condensadores), la resistencia R32 es la resistencia pull-up que necesita el pin A4 ya que por configuracion de hardware el T0CKI la necesita para poder enviar una señal TTL.
si has leido en datasheet del pic 16f877a, hay esta esplicada la funcion de la resistencia pull up.


----------



## ChuiTo (May 30, 2012)

eh erik las resistencias son de 1 watt o 1/2 watt y van a la base del transistor verdad?
tmbn quiciera saber si se le pone resistencia al uln2804a es un integrado de transistores ???


----------



## Ericktronik (May 30, 2012)

ChuiTo dijo:


> eh erik las resistencias son de 1 watt o 1/2 watt y van a la base del transistor verdad?
> tmbn quiciera saber si se le pone resistencia al uln2804a es un integrado de transistores ???



todas las resistencias son de 1/4, y van a la base del transistor.
en realidad tambien se puede utilizar el uln, pero la velocidad de respuesta baja demaciado; lo digo por que hice las pruebas con uno de estos y la multiplexacion no anda muy bien.


----------



## ChuiTo (Jun 1, 2012)

erick  el arreglo de transistores necesita aparte resistencias o no se le ponen resistencias estoy usando el ULN2804A


----------



## Ericktronik (Jun 2, 2012)

ChuiTo dijo:


> erick  el arreglo de transistores necesita aparte resistencias o no se le ponen resistencias estoy usando el ULN2804A



Por supuesto que necesitas resistencias, es para proteger el pic; o al menos eso me dijeron en la universidad.
^^


----------



## Rigeliano (Jun 2, 2012)

Según el datasheet del componente no es necesario poner resistencias ya que internamente tiene una de 10.5K por cada canal y protección hasta para manejar cargas inductivas sin problemas.


----------



## Ericktronik (Jun 3, 2012)

Hola a todos.
quisiera saber si alguien ha podido crear nuevos efectos, o si tienen ideas para intentar crearlos.
salu2


----------



## jehanandre (Jun 7, 2012)

hola mira tengo una pregunta y es sobre cuantas instrucciones le caben a la memoria del pic16f877a 
solo utilizaria estas
tris,port y waitms.


----------



## Ericktronik (Jun 7, 2012)

jehanandre dijo:


> hola mira tengo una pregunta y es sobre cuantas instrucciones le caben a la memoria del pic16f877a
> solo utilizaria estas
> tris,port y waitms.



a la memoria del 877a le caben 8mil palabras.
aunque todo depende del tipo de programa.

pero no entiendo tu pregunta, porfavor vuelve a formularla pero de otra manera.


----------



## jehanandre (Jun 8, 2012)

esta bien estoy usando el pbp y quiero saber cuantas palabras le puedo meter y si unas palabras consumen mas que otras por ejemplo:
un tris consume mas memoria que un waitms


----------



## Ericktronik (Jun 8, 2012)

jehanandre dijo:


> esta bien estoy usando el pbp y quiero saber cuantas palabras le puedo meter y si unas palabras consumen mas que otras por ejemplo:
> un tris consume mas memoria que un waitms



en realidad estas directrices ocupan casi nada de la memoria, creo que ocupan solo 4bits c/u.
pero no creo que el programa sea tan exageradamente inmenso como para preocuparse por la memoria.


----------



## bryanxx123 (Jun 12, 2012)

Soy nuevo en electronica, por favor me podrias dar info para un cubo de 6x6x6 ??
Basicamente es parecido al cubo de 5x5x5 pero con una distribucion de pines diferente en el PIC ??? y en cuanto a resistencias y condensadores, tambien los mismos verdad ???


----------



## Ericktronik (Jun 12, 2012)

bryanxx123 dijo:


> Soy nuevo en electronica, por favor me podrias dar info para un cubo de 6x6x6 ??
> Basicamente es parecido al cubo de 5x5x5 pero con una distribucion de pines diferente en el PIC ??? y en cuanto a resistencias y condensadores, tambien los mismos verdad ???



en realidad para el de 6x6x6, hay que hacer un arreglo de logica analoga para crear una matriz mas grande, con el 877(887) se puede hacer un cubo de 11x11x11 siguiendo este principio, pero la programacion se vuelve mas dificil, pues de esta forma tienes que manejar los 3 ejes para selecionar el led a encender, siendo una matriz individual para seleccionar las columnas y la seleccion del nivel por aparte.

es totalmente diferente al cubo de 5x5x5, y entre mas leds tienes que cambiar la velocidad, aumentar la corriente de alimentacion y con este pricipio tienes que hacer un diseño de placa totalmente distinto.

espero que te sirva.


----------



## bryanxx123 (Jun 13, 2012)

Buenas, aunque un poco tarde Gracias por tu aporte. 
Entonces en un cubo de 6x6x6 la logica sería una matriz de 6x6 solo para columnas y un arreglo de 6 solo para los niveles??...... Sería un total de 42 pines para columnas y niveles ???


----------



## Ericktronik (Jun 13, 2012)

bryanxx123 dijo:


> Buenas, aunque un poco tarde Gracias por tu aporte.
> Entonces en un cubo de 6x6x6 la logica sería una matriz de 6x6 solo para columnas y un arreglo de 6 solo para los niveles??...... Sería un total de 42 pines para columnas y niveles ???



creo que si, pero el 877 solo tiene 33 pines usables.


----------



## bryanxx123 (Jun 13, 2012)

Pero tu estas actualmente en un cubo de 10x10x10  con el 877 !:O
Entonces como haria encajar el cubo de 6x6x6 en el PIC 877 ?????


----------



## Ericktronik (Jun 13, 2012)

bryanxx123 dijo:


> Pero tu estas actualmente en un cubo de 10x10x10  con el 877 !:O
> Entonces como haria encajar el cubo de 6x6x6 en el PIC 877 ?????



hay varias maneras...
latches, demultiplexacion, corredores de bits, algebra booleana, RX-TX(dos micros), Maestro-esclavo(dos micros), etc, etc...

solo hay que saber escojer el metodo.

en la electronica el 99,9% esta en desarrollar y pensar, el otro 0,1% es sudor quemadas, lagrimas y montajes.


----------



## bryanxx123 (Jun 13, 2012)

Hola, estuve leyendo y me parece que lo mas facil es Demultiplexacion.
Como soy un poco nuevo, que me recomiendas ???


----------



## Ericktronik (Jun 13, 2012)

bryanxx123 dijo:


> Hola, estuve leyendo y me parece que lo mas facil es Demultiplexacion.
> Como soy un poco nuevo, que me recomiendas ???



la demultiplexacion es una buena manera, pero tienes que tener velocidades altas para poder crear figuras que de verdad tengan una silueta firme.


----------



## bryanxx123 (Jun 13, 2012)

Pero con el 877 887 me parece que si cumple a altas velocidades cierto ??



Por cierto, acabo de crear una tema sobre el cubo de 6x6x6, agradeceria tu ayuda!!https://www.forosdeelectronica.com/f27/cubo-6x6x6-consulta-77484/ 

https://www.forosdeelectronica.com/f27/cubo-6x6x6-consulta-77484/


----------



## freddycard (Jun 16, 2012)

saludos amigo tengo una duda acerca del cubo de leds es que en los materiales no esta el diodo2 que se usa en la placa osea en la placa si esta la coneccion para el diodod2 entonces quiero saber si se usa o no ese diodo


----------



## Ericktronik (Jun 16, 2012)

freddycard dijo:


> saludos amigo tengo una duda acerca del cubo de leds es que en los materiales no esta el diodo2 que se usa en la placa osea en la placa si esta la coneccion para el diodod2 entonces quiero saber si se usa o no ese diodo



el diodo es opcional, solo es una proteccion.
el circuito funciona con o sin el diodo.


----------



## nietzche (Jun 19, 2012)

entonces si enciendes un nivel y despues prendes un led, y otro led pero en otro nivel se prenderan los 2 vdd?, o incluso mas , como le hacen para prender uno individualmente o los que sea, sin afectar a otros ?.


----------



## Ericktronik (Jun 19, 2012)

nietzche dijo:


> entonces si enciendes un nivel y despues prendes un led, y otro led pero en otro nivel se prenderan los 2 vdd?, o incluso mas , como le hacen para prender uno individualmente o los que sea, sin afectar a otros ?.



si abres el transistor de un nivel llegara voltaje a todos los 25 leds de ese nivel, pero no se encenderan hasta que abras los transistores de tierra.

si decides encender un led en otro nivel tienes que abrir el transistor de ese nivel y luego abrir el transistor de tierra correspondiente al led.

entonces si quieres que dos leds se prendan, en diferentes niveles y diferentes columnas, tienes que hacer una multiplexacion; simplemente enciendes primero un led, luego lo apagas y luego enciendes el otro led, en un ciclo donde cada led dure encendido maximo 10 milisegundos y repetir ese ciclo unas 254 veces maximo(con un for) y si quieres prolongar el tiempo de encendido duplicas el for.

espero que puedas entender lo que trato de decir.

salu2


----------



## ChuiTo (Jun 23, 2012)

yo tengo una idea es hacer que enciendan los leds como si tuvieras musica puesta como quien dice un vumetro jajja y tambien tengo otra idea que es hacer que enciendan focos y avance en lineas rectas y que a la vez se vayan apagando no se si me explique bien jajaja

ya hice mi cubo me quedo" not bad " jajaja y puse los arreglos de transistores sin resistencias y al pic no le paso nada


----------



## alejandrozambrano90 (Jun 25, 2012)

Amigo te felicito por este gran aporte, de  verdad te botaste con tanta info.. tengo una pregunta con respecto al cubo de 10x10x10. ¿como haces para seleccionar las filas y columnas para poder encender los leds? ¿que integrado usas? en la imagen que pusiste ahi se logra ver un integrado pero no lo logro distinguir.. me gustaria hacerme uno de estos y por eso la pregunta... actualmente estoy haciendo una segunda versión de mi propeller display cuando lo termine lo comparto por aqui..


----------



## Ericktronik (Jun 25, 2012)

alejandrozambrano90 dijo:


> Amigo te felicito por este gran aporte, de  verdad te botaste con tanta info.. tengo una pregunta con respecto al cubo de 10x10x10. ¿como haces para seleccionar las filas y columnas para poder encender los leds? ¿que integrado usas? en la imagen que pusiste ahi se logra ver un integrado pero no lo logro distinguir.. me gustaria hacerme uno de estos y por eso la pregunta... actualmente estoy haciendo una segunda versión de mi propeller display cuando lo termine lo comparto por aqui..



hola.
el cubo de 10x10x10 RGB tambien lo estoy haciendo con el 877(887), pero este con cristal de 20MHz, la seleccion de columnas la hago mediante logica booleana.

yo tambien estoy haciendo un propeller RGB de 10 leds, apenas estoy empezando y solo tengo una matriz de 10x360, use el 18f2550, y tiene manejo por usb en tiempo real(mientras se mueve esta conectado a usb).


----------



## Ivancithow (Jul 31, 2012)

Muchas gracias por el aporte...
hace tres semanas vi este post y realmete me ayudo mucho...
claro tuve mis dudas al igual q*ue* la mayoria pero realmete con la informacion q*ue* diste y la explicacion del pdf bastaba para realizar este proyecto...
como lei en comentarios anteriores q*ue* no ibas a subir el esquematico *y*a ni*-*siquiera toque el tema asi q*ue* me puse a trabajar un poco y de la placa q*ue* subiste ya saque el esquematico y ya hice yo mi propia placa y en unos dias le tomare video para mostrarlo..
Gracias por el aporte y dar lo necesario para realizar este proyecto..


----------



## Ericktronik (Jul 31, 2012)

Ivancithow dijo:


> Muchas gracias por el aporte...
> hace tres semanas vi este post y realmete me ayudo mucho...
> claro tuve mis dudas al igual q*ue* la mayoria pero realmete con la informacion q*ue* diste y la explicacion del pdf bastaba para realizar este proyecto...
> como lei en comentarios anteriores q*ue* no ibas a subir el esquematico *y*a ni*-*siquiera toque el tema asi q*ue* me puse a trabajar un poco y de la placa q*ue* subiste ya saque el esquematico y ya hice yo mi propia placa y en unos dias le tomare video para mostrarlo..
> Gracias por el aporte y dar lo necesario para realizar este proyecto..



aplaudo este tipo de comentarios 
gente que valora realmente el trabajo de otros, hace que valga la pena seguir aportando con ganas al foro.
espero poder seguir siendo de ayuda para todo aquel que tenga dudas.


----------



## m68540534 (Ago 19, 2012)

Hola que tal, en principio muchas gracias por el aporte, esta todo muy bien explicado y das todo lo necesario para armarlo, yo lo tenía en vista este proyecto pero nunca lo concretaba por una cuestion de costo de los leds. Finalmente consegui para hacer el de 3x3x3 para probar, aunque no me fue muy bien porque un led se puso en corto y comenzo a quemar al resto lamentablemente. Ahora lo que queria preguntarte es lo unico que no me quedo claro, según veo las resistencias usadas fueron todas para conectar en la base de los transistores y ninguna de limitacion para los leds, por lo que los alimentas con 5V directos, y aqui viene mi duda, no es demasiada tension para estos leds? no les acortaria demasiado la vida? yo tenía entendido que no se debe de usar más de 4V para alimentarlos, o usar alguna resistencia limitadora, en mi caso tuve que usar dichas resistencias porque eran de baja intensidad, pero te pregunto porque estoy esperando 200 leds difusos de china como los que usas, y no quiero que me vuelva a ocurrir lo mismo. Vuelvo a darte las gracias por este aporte y otros que estuve viendo y me dieron algunas ideas, espero no molestar con mi pregunta. 
Ah y una cosa más, estuve trabajando en una funcion para encender los leds y hacer más fácil los efectos, y estoy trabajando ademas con visual studio y un 18F4550 para otro proyecto, tenía pensado hacer el programa para controlar los leds en tiempo real desde la pc por USB, en cuanto lo tenga listo y funcionando lo adjuntare en este post si me das permiso. Saludos!


----------



## Ericktronik (Ago 19, 2012)

m68540534 dijo:


> Hola que tal, en principio muchas gracias por el aporte, esta todo muy bien explicado y das todo lo necesario para armarlo, yo lo tenía en vista este proyecto pero nunca lo concretaba por una cuestion de costo de los leds. Finalmente consegui para hacer el de 3x3x3 para probar, aunque no me fue muy bien porque un led se puso en corto y comenzo a quemar al resto lamentablemente. Ahora lo que queria preguntarte es lo unico que no me quedo claro, según veo las resistencias usadas fueron todas para conectar en la base de los transistores y ninguna de limitacion para los leds, por lo que los alimentas con 5V directos, y aqui viene mi duda, no es demasiada tension para estos leds? no les acortaria demasiado la vida? yo tenía entendido que no se debe de usar más de 4V para alimentarlos, o usar alguna resistencia limitadora, en mi caso tuve que usar dichas resistencias porque eran de baja intensidad, pero te pregunto porque estoy esperando 200 leds difusos de china como los que usas, y no quiero que me vuelva a ocurrir lo mismo. Vuelvo a darte las gracias por este aporte y otros que estuve viendo y me dieron algunas ideas, espero no molestar con mi pregunta.
> Ah y una cosa más, estuve trabajando en una funcion para encender los leds y hacer más fácil los efectos, y estoy trabajando ademas con visual studio y un 18F4550 para otro proyecto, tenía pensado hacer el programa para controlar los leds en tiempo real desde la pc por USB, en cuanto lo tenga listo y funcionando lo adjuntare en este post si me das permiso. Saludos!



Hola.
Gracias por las flores.
un led tiene una vida util de aproximados 15 años en uso continuo, en realidad los leds funcionan sin problema hasta 6v, cuando los alimentas con un voltaje mayo a este ellos mismos hacen una regulacion del voltaje a 6v(segun lo que me han dicho en la U), pero si quieres se pueden poner las resisitencias en las salidas para los niveles y luego si conectarlas a los niveles del cubo, aunque el mio funciona casi las 24horas ya que esta en una tienda de electronica donde trabajo haciendo proyectos para universidades y hasta ahora esta funcionando sin problema.
Yo tambien ando diseñando un cubo de 10x10x10 rgb con usb y estoy tambien diseñando un soft para poder controlarlo en tiempo real(aunque lo tengo en pausa porque estoy haciendo mi proyecto de grado).
Yo creeria que seria mejor que crearas un nueo tema para tu cubo, porque tambien es un proyecto interezante y tiene mucho de diferente al mio.


----------



## SKYFALL (Ago 19, 2012)

Ericktronik dijo:


> un led tiene una vida util de aproximados 15 años en uso continuo, en realidad los leds funcionan sin problema hasta 6v, cuando los alimentas con un voltaje mayo a este ellos mismos hacen una regulacion del voltaje a 6v(segun lo que me han dicho en la U)



Estas hablando de un diodo led en particular o de diodos de 3,7V? Porque un led de ese tipo alimentado a 6V  no creo que dure mucho tratando de ''regular" su tension de alimentacion antes que se queme y ni hablar del mismo led trabajando a una tension superior a 6V.

Todos los led's necesitan estar conectados con una resistencia en serie cuando se alimentan con un voltaje superior al nominal para que la caida de voltaje en el led sea el adecuado para este.


----------



## m68540534 (Ago 19, 2012)

Gracias por las respuestas, evidentamente la resistencia es necesaria trabajando con tensiones mayores, en mi caso mayores a 2V porque son leds rojos de baja intensidad, lo que no estaba seguro era la tension nominal de los leds difusos azules como los de este cubo, supongo que no debe ser muy lejana a 5V si así te ha funcionado por tanto tiempo. En cuanto los tenga sacare mis propias conclusiones. Gracias por la ayuda!


----------



## Ericktronik (Ago 19, 2012)

m68540534 dijo:


> Gracias por las respuestas, evidentamente la resistencia es necesaria trabajando con tensiones mayores, en mi caso mayores a 2V porque son leds rojos de baja intensidad, lo que no estaba seguro era la tension nominal de los leds difusos azules como los de este cubo, supongo que no debe ser muy lejana a 5V si así te ha funcionado por tanto tiempo. En cuanto los tenga sacare mis propias conclusiones. Gracias por la ayuda!



en realidad los leds de mi cubo son transparentes claro de agua blancos, y no he tenido problema alguno con cualquiera de los 125 de la matriz.

y con respecto al voltaje de los leds es porque tengo en mi bici unos de estos mismos conectados a 9v y en 2 años no se ha quemado ninguno.

tal vez sea porque son de buena calidad, aunque son leds comunes y corrientes.


----------



## Maxi759 (Sep 1, 2012)

Muchas gracias por tu aporte! la verdad que este proyecto lo vengo postergando desde hace un buen tiempo, y gracias a tu post podre hacerlo realidad, quiero armarlo para presentar en una expo de mi clase, ahora mismo encargo los materiales y pondre manos a la obra! muchas gracias!


----------



## manntot (Oct 24, 2012)

Excelente aporte amigo, felicidades! estoy haciendo el mio pero tengo algunas fallas, pues solo parpadea el primer piso y nada mas, no se que ha de tener pero seguire buscando la solución.
tendrías alguna recomendacion???


----------



## Ericktronik (Oct 24, 2012)

manntot dijo:


> Excelente aporte amigo, felicidades! estoy haciendo el mio pero tengo algunas fallas, pues solo parpadea el primer piso y nada mas, no se que ha de tener pero seguire buscando la solución.
> tendrías alguna recomendacion???



revisar las pistas, las soldaduras de los leds y revisar si el micro quedo bien grabado


----------



## OneErick (Nov 2, 2012)

Erick ya tengo todo listo para armar el cubo pero necesito que me digas algo.. que tamaño tiene la baquela.. la imagen que tamaño debe tener?

nota: lo pregunto porque en el pdf no se encuentra esa especificacion.. y lo he imprimido directo del pdf y me ha salido muy pequeño...

Tambien estoy estudianto el codigo para agregar otras cosas y mas animaciones en cuanto lo termine lo subo para que lo veas y asi agregamos mas programacion y mejor visualizacion 



Gracias...

Saludos..


aca unas fotos del cubo.. pero no he podido cuadrar la imagen ademas creo que el cubo me salio un poco mas grande..


----------



## Ericktronik (Nov 2, 2012)

el pdf tiene el tamaño real de la baquela.
solo tienes que poner en las opciones de impresion "tamaño real"
y listo


----------



## Edwar09 (Nov 11, 2012)

"La placa de circuito esta diseñada para ser alimentada con un adaptador DC maximo de 12v y una corriente minima de 500mA, de ser posible usar un adaptador de 5v y 750mA."


Para los principiantes como yo:
Con un adaptador de 5v no funciona a menos que quiten el regulador y lo alimenten sin el, la alimentacion debe ser minimo de 7v si usan el regulador  y si no lo usan debe ser obligatoriamente 5v y la minima corriente que me parecio fue 750mA   experiencia propia

excelente aporte


----------



## dinoelectro (Ene 2, 2013)

gracias erik por tu genial aporte, estaba pensando de que pudieras adaptar tu cubo a un control DMX.. o talvez que las secuencias se programen mediante un computador, bueno es una sugerencia nada mas... ahora mismo me pongo a construir e cubo. gracias otra vez


----------



## lordaenema (Ene 6, 2013)

erik.. saludos! 

supongo que para la matiz 10x10x10 rgb usara solo los tres colores primarios o te vas con toda la gama de colores? mi enredo es el siguiente: 
1.- el 877 tiene 2 canales PWM el cual puedo usar para controlar la gama de colores, pero son por hardware me faltaría un canal para controlar. dado esto supongo que el PWM lo administrar por software?
2.- si se usa un registro de corrimiento el PWM se ve reflejado igual? 

P.D: yo no estoy trabajando en un cubo pero si en una matriz gigante! (usando el 16f877)


----------



## Ericktronik (Ene 7, 2013)

claro que usare toda la gama de colores.
Uso los dos PWM que trae el 877(887), y el tercero lo hago por soft.


----------



## lordaenema (Ene 8, 2013)

una ultima pregunta! en algún lado leí!  que tu traes los led`s  de china podrías decirme con que empresas haces eso?


----------



## mcfcai (Ene 24, 2013)

Hola Erick:
Excelente trabajo, yo ya lo arme y funciona.
Solo tengo algunas cunsultas:
1- me parece que el 7805 abria que reemplazarlo por algun regulador de mayor amperaje ya que con un disipador igual calienta mucho, me da l impresion que consume mas de un amper y este IC esta limitado maximo a 1 amper.
2- En la puesta en marcha note que la columna que maneja el Q22 queda encendida completa, cuando hace el cubo grande, cuando hacela rotación y cuando hace el cubo chuco no solo encienden las necesarias, cuando hace las letras tanbién queda  encendida pero tenue y al principio despues de los cubos paga todo que un punto y enciende 1 de esa columna hasta que comienza a rotar y esta dodo encendido, esto es una falla del código???
3- despues de haber montado todo a la hora de montar el zocalo para el pic veo que no va en el PCB, lo verifico con la impresion y no coincide, lo solucione con una placa muiltipropósitos y listo.

Bueno Erick te dejo estas inquietudes y nuevamente te felicito, excelente tu proyecto espero el de 10x10x10 RGB.
Saludos Cordiales Marcelo.


----------



## jairoelector (Feb 4, 2013)

Hola mcfcai

Cambia el 7805 e instala el LM317T que es de 3 Amperes, prueba con ese regulador, pero no llegues y lo instales, revisa este diagrama para que tengas una referencia. saludos


----------



## Ericktronik (Feb 4, 2013)

el 7805 es suficiente, el cubo no consume mas de 800ma
si se calienta un poco solo hay que poner un disipador de aluminio.


----------



## mcfcai (Feb 14, 2013)

Ok. Pero ya coloque un disipador e igual tiene mucha temperatura.
Con decirte que apo*y*e el dedo y el dibujo del disipador me quedo tatuado en el dedo, jajaja.
Pero con el LM317 armando el circuito cor*r*espondiente va, yo de esa forma tengo una fuente regulada.
Otro tema, en la con*s*ulta anterior te comente q*ue* una columna encendida, no se si es el código o q*ue*.
Ya q*ue* de-*r*repente cuando hace el cubo chico esta bien, y cuando hace la vivorita queda toda prendida.

Gracias por contestar.


----------



## tomasgalan44 (Feb 20, 2013)

Hola Erick la verdad que recien encuentro este hilo y te felicito por tu trabajo! hay que tener mucha capacidad para planear esto desde 0 y como en unas paginas anterior dijiste es todo pensar, planear y diseñar desp armar va solo. El proyecto del cubo de 10x10x10 RGB me sorprendio y esta genial! lo terminaste? porque me gustaria ver un video de esa belleza funcionando.
Ahora voy a lo que me compete jaja estoy empezando con estos de los cubos y mi idea es llegar a hacer el de 8x8x8 (cuando me de el presupuesto) trabajo con arduino y ahora mismo estoy terminando de probar el cubo de 4x4x4 que hice funciona bien pero me estoy volviendo loco para crear escenas! jaja encontraste alguna solucion para crear las escenas de forma visual? yo encontre un par de programas pero son todos para cubos de 5x5x5 (http://www.qube-solutions.de/qube-5/downloads) y de 8x8x8.

Saludos y de nuevo felicitaciones por el laburo!


----------



## Gustavin013 (Mar 26, 2013)

hola Ericktronik, me gustaria saber si tenes el circuito en livewire para poder simularlo y hacerle algunas modificaciones, asi lo hago yo mismo al diseño y tengo un mayor entendimiento del mismo por cualquier tipo de falla asi la puedo encontrar.


----------



## Ericktronik (Mar 26, 2013)

Gustavin013 dijo:


> hola Ericktronik, me gustaria saber si tenes el circuito en livewire para poder simularlo y hacerle algunas modificaciones, asi lo hago yo mismo al diseño y tengo un mayor entendimiento del mismo por cualquier tipo de falla asi la puedo encontrar.



Como dije en comentarios anteriores y de los cuales estoy seguro que leiste, pero por si las moscas vuelvo a aclarar...

Si tengo la simulacion ya que todo el diseño es mio, pero es de uso personal y no la difundire...

Con la explicacion es mas que suficiente para que puedas hacer tu propio diseño...

Espero que al entender el principio de funcionamiento del cubo puedas encaminarte a hacer tu propio diseño.

Saludos.


----------



## biisteamoo (Abr 30, 2013)

creo que ya hice una figura

```
{    //forma de corazon
allcolsoff(1);
col12=1;
nivel1on(1);
delay_ms(500);
col6=1;
nivel1on(1);
delay_ms(500);
col2=1;
nivel1on(1);
delay_ms(500);
col3=1;
nivel1on(1);
delay_ms(500);
col9=1;
nivel1on(1);
delay_ms(500);
col15=1;
nivel1on(1);
delay_ms(500);
col19=1;
nivel1on(1);
delay_ms(500);
col23=1;
nivel1on(1);
delay_ms(500);
col22=1;
nivel1on(1);
delay_ms(500);
col16=1;
nivel1on(1);
delay_ms(1500);
allcolsoff(1);
```


----------



## juancho (May 26, 2013)

Hola Erik, fantástico tu aporte!! me encantó!! Me voy a construir uno en cuando pueda terminar de entender el código del cual tengo algunas dudas. Para empezar, sino leí mal, usas el PIC-C para compilar el código, verdad? las funciones output_a, output_b, etc, ¿son propias de ese compilador? ¿o son funciones que hiciste vos? ¿Qué hacen exactamente? porque no las encontré declaradas en ningún lado del código.

Equivaldría a poner, por ejemplo:
TRISA = 0;    //puerto A como salida
PORTA = 0b00000001;

¿eso sería?

Muchas gracias!!


----------



## gonzaguerini (May 29, 2013)

Hola, voy a utilizar el PIC16F887... Mi mayor duda seria como hago para realizar mis propios efectos en el cubo... ví un programa de "QubeLED" pero dijeron que es distinta la disposicion de pines..GRACIAS por todo


----------



## gonzaguerini (Jun 7, 2013)

Me gustaria saber si es posible que en el pic vayan entrando datos y haci poder crear un vumetro con el Cubo d LED, tambien de que forma puedo crear un software para hacer mas faciles los efectos que uno quieree.. graciasss!


----------



## Ericktronik (Jun 8, 2013)

gonzaguerini dijo:


> Me gustaria saber si es posible que en el pic vayan entrando datos y haci poder crear un vumetro con el Cubo d LED, tambien de que forma puedo crear un software para hacer mas faciles los efectos que uno quieree.. graciasss!



Calro que es posible, solo que como veras las entradas analogicasya estan ocupadas, solo habria que cambiar la dispocicion de los pines, usar una entrada analogica y crear una funcion para que funcione como un vumetro.
Para crear el soft, hay que tener en cuenta que pines controlan las columnas o los niveles, creo que es posible hacerlo en labview creo que en ese sentido tendrias que averiguar un poco mas.


----------



## omex666 (Jun 18, 2013)

Ericktronik dijo:


> Les comparto el diseño de un cubo de leds hecho en su totalidad por mi, usando un PIC 16F877,
> La placa de circuito esta diseñada para ser alimentada con un adaptador DC maximo de 12v y una corriente minima de 500mA, de ser posible usar un adaptador de 5v y 750mA.
> 
> Para el cubo recomiendo leds difusos(no importa el color).
> ...



oye disculpa, cera que me podes pasar o subir el diseño esquemático por favor del cubo de 5x5x5x5x5. gracias


----------



## jlar68 (Jun 20, 2013)

Hola Ericktronic muchas felicidades por toda la buena informacion que publicas para la elaboracion del cubo de led.

Una pregunta, ¿que programa usas para la creacion de placas PCB?? estan padres las vistas 3d que has publicado


----------



## gonzaguerini (Jun 20, 2013)

Ericktronik dijo:


> Calro que es posible, solo que como veras las entradas analogicasya estan ocupadas, solo habria que cambiar la dispocicion de los pines, usar una entrada analogica y crear una funcion para que funcione como un vumetro.
> Para crear el soft, hay que tener en cuenta que pines controlan las columnas o los niveles, creo que es posible hacerlo en labview creo que en ese sentido tendrias que averiguar un poco mas.



De a poco que voy teniendo algo de tiempo y estoy juntando los materiales e información para hacerlo.
Con respecto a lo de las entradas analógicas, ¿con sólo 1 podré lograr el efecto como vumetro?
Gracias


----------



## gonzaguerini (Jun 20, 2013)

Que ventaja tiene tener las columnas y niveles con bit? o sea, lo activo con solo poner ej.: col1=1 aunque si quiero formar una letra me consume mas lineas, estoy en lo cierto?


----------



## ALopezDel (Jun 28, 2013)

Ericktronik dijo:


> En realidad solo use el 16% de la memoria con el codigo que vez hay.
> solo que ya no se que mas hacer, entonces por eso entregue el codigo fuente para que lo puedan usar y quienes quieran compartir mas animaciones puedan hacerlo.



Caballero
Cordial saludo

La presente es para hacerle una consulta, resulta y pasa que he descargado unas librerías de proteus pero sus extensiones están en .3ds, .LIB, .IDX...
Yo sé que el .LIB va en la carpetas de librerías en el proteus pero lo que no sé es donde van ubicados las otras extensiones...

Muy agradecido por tu ayuda, hasta pronto paisano...


----------



## Furiosodj (Jul 14, 2013)

Hola que tal, ya tengo mi cubo led 5x5x5 basado en el creado por ericktronik, pero tengo una duda: yo estoy usando el Pic 16f877a y me sucede que al cargar el codigo hex de erick no me funciona la columna 5 (RA4) del resto todo funciona al pelo, ya he revisado todo y a mi parecer es algo de la configuracion de los conversores analogicos-digitales. 

Aqui unas fotos como va quedando mi cubo 5x5x5


----------



## shadown (Jul 15, 2013)

Furiosodj dijo:


> ...al cargar el codigo hex de erick no me funciona la columna 5 (RA4) del resto todo funciona al pelo, ya he revisado todo....



Una sugerencia, ya revisaste las soldaduras de esa columna?  una mala soldadura o una pista dañada es dificil de detectar y te da problemas increibles, un proyecto de la universidad que llevaba micro y su pantalla lcd trabajaba de lo lindo... excepto cuando el maestro lo estaba revisando.... el problema era una pista floja en una protoboard. saludos.


----------



## gonzaguerini (Jul 27, 2013)

No seria recomendable colocar una resistencia antes de cada columna para que no se quemen los led ya que estan conectados a lo 5v (con las caida de tension qdan aprox. 1V dividio 30mA de los led da una resistencia de 33ohm), y un segundo transistor en los niveles para no exigir demasiada corriente al microcontrolador...
Con que programa realizas el PCB? Gracias.. Estoy trabajando en un cubo 5x5x5 con algunos cambios..


----------



## josemendoza (Ago 16, 2013)

Hola amigos del foro tengo problemas con el cubo ,lo estoy realizando con leds ultra brillantes color rojos .
Al momento de descargar e imprimir el circuito en pcb el tamaño no es real y esta reducido por lo  cual no me di cuenta hasta que lo había transferido en la placa y soldé por abajo de la placa  y cuando lo pruebo todo el cubo no me prende tengo que quitar algunos columnas ya les subiré algunas foto a otra consulta como lo grabo al pic tengo que configurar los fusibles o lo grabo de frente ayúdenme por favor con la imagen  en tamaño real ( la base para el pic nomas es lo reducido) y si se tiene que configurar algo


----------



## arturoro17 (Ago 17, 2013)

Señores buenas noches les comento que estoy termiando de armar mi cubo 5x5x5, el diseño esquematico y del pcb son hechos por mi mismo, gracias erick por tu aporte me ayudo mucho a entender la logica del cubo. estoy haciendo mi programita y esta quedando padre, pero tengo el siguiente problema:

cuando programo el micro este solo me hace una parte del programa, he revisado el programa y todo esta bn puesto que en proteus lo hace completo, descarte que fuera el oscilador puesto que entonces no pasara ni de la primera instruccion, me hace la primera secuencia que es encender el led del centro unas 5 o 7 veces aumentando la velocidad y luego la secuencia que sigue solo enciende los leds pero los apaga al instante y vuelve a reiniciarse, no es el pic puesto que he probado con dos pic diferentes y el mismo problema, no es el cubo porque verifique y todo esta ok, no son las pistas porque verifique continuidad entre todos los puntos de soldadura, probe tomando mi sencuencia dos y grabando al pic unicamente mi sencuencia dos que es encender medio cubo a 70 ms (osea osea mas o menos 14.4 ciclos por segundo) y no se ve el ciclo solo encienden y se apagan una sola vez, probe aumentando el delay entre los ciclos y nada..de verdad ya no se que puede ser.

uso el pic basic pro como software de programacion


----------



## Edwar09 (Ago 17, 2013)

Hola Arturoro17, a mi me pasaba eso cuando lo arme tambien se me reiniciaba.
Y el problema era que lo estaba alimentando con una fuente que me entregaba 500 ma
y era insuficiente para alimentar todo el circuito, si prendes solo unos 10 o 20 leds con esa 
corriente si funciona pero ala hora de prender medio cubo o el cubo completo que hablamos de unos 125 leds no es suficiente y se reinicia.
La solucion que le encontre fue alimentarlo con una fuente que me daba mas de 500 ma,
creo que arriba de 700 ma ya funciona bien no recuerdo XD 
Prueba con 700ma y si no subele a 1 ampere


----------



## arturoro17 (Ago 17, 2013)

Edwar09 dijo:


> Hola Arturoro17, a mi me pasaba eso cuando lo arme tambien se me reiniciaba.
> Y el problema era que lo estaba alimentando con una fuente que me entregaba 500 ma
> y era insuficiente para alimentar todo el circuito, si prendes solo unos 10 o 20 leds con esa
> corriente si funciona pero ala hora de prender medio cubo o el cubo completo que hablamos de unos 125 leds no es suficiente y se reinicia.
> ...



bueno ahora, lo curioso es que antes de montarloa al placa final lo tenia en protoboard y tenia mal conexionado algunas filas y no encendian entonces, programe el pic para que encieran todos los led's osea los 125 y que se apagaran, osea que titilaran infinitamente, lo curioso es que todos encendian luego lo que hice fue probar nivel por nivel, encendiendo los 25 de cada nivel todo para estar seguro que estaba bn conectado en la protoboard y funcionaba, ahora no estoy seguro pero la fuente que uso creo que es de 700 ma, conectado a un 7805 la fuente es de 22v el 7805 me da los 5v bn chevere, pero aun no resuelvo eso, voy a cambiar el oscilador a ver que pasa. aunque tengo la duda qe puede ser el programador


----------



## arturoro17 (Ago 18, 2013)

gonzaguerini dijo:


> No seria recomendable colocar una resistencia antes de cada columna para que no se quemen los led ya que estan conectados a lo 5v (con las caida de tension qdan aprox. 1V dividio 30mA de los led da una resistencia de 33ohm), y un segundo transistor en los niveles para no exigir demasiada corriente al microcontrolador...
> Con que programa realizas el PCB? Gracias.. Estoy trabajando en un cubo 5x5x5 con algunos cambios..




 compañero yo lo trabajo con transistores para los niveles y transistores para cada fila, yo tengo 25 filas y 5 niveles, y del transistor de la fila le mando los 5v sin resistencia ni nada y enciendo de a un led y todo funca bn, te recomiendo que pruebes solo con uno a ver si no se quema porque aja, uno nunca sabe, yo pense lo msimo, probe con uno solo y funciono bn



Erick una consulta, tengo problema con el pic, funciona loco.. no coge el programa completo, funciona cuando el da la gana, he cambiado de pic y nada el mismo problema, que sera?


----------



## Furiosodj (Ago 21, 2013)

tenia el post descuidado, aqui les muestro una imagen del cubo mio finalizado desde hace 1 mes (o mas)


----------



## Ericktronik (Ago 21, 2013)

Furiosodj dijo:


> tenia el post descuidado, aqui les muestro una imagen del cubo mio finalizado desde hace 1 mes (o mas)



Wow!
Uy bonito!
Que inftegrados usaste para el diseño?


----------



## arturoro17 (Ago 28, 2013)

Señores una consulta, tengo ya el cubo hecho, hice un programa en basic con el pic basic pro, lo simule en proteus y se ve re lindo, pero que pasa.. cuando programo el pic el programa no avanza si no hasta cierto punto, mi programa tiene mas de 600 lienas, y veo que nada mas hace secuencias hasta mas o menos las lienas 225 / 300 respectivamente, probe haciendo otro programa que no superara esa cantidad de lienas y funciona ok, comprobe en los stats del micro la cantidad de memoria disponible y descarte que fuera por falta de memoria del pic.. sera que el pic basis pro no me esta compilando completo el programa o algo asi? ese software lo saque de un CD de mikroelektronika que viene en una tarjeta la cual usamos en la U para trabajar. pero que piensan ustedes que puede ser?


----------



## Ericktronik (Ago 28, 2013)

arturoro17 dijo:


> Señores una consulta, tengo ya el cubo hecho, hice un programa en basic con el pic basic pro, lo simule en proteus y se ve re lindo, pero que pasa.. cuando programo el pic el programa no avanza si no hasta cierto punto, mi programa tiene mas de 600 lienas, y veo que nada mas hace secuencias hasta mas o menos las lienas 225 / 300 respectivamente, probe haciendo otro programa que no superara esa cantidad de lienas y funciona ok, comprobe en los stats del micro la cantidad de memoria disponible y descarte que fuera por falta de memoria del pic.. sera que el pic basis pro no me esta compilando completo el programa o algo asi? ese software lo saque de un CD de mikroelektronika que viene en una tarjeta la cual usamos en la U para trabajar. pero que piensan ustedes que puede ser?



Yo tambien tube el mismo problema cuando inicie, la solucion es crear rutinas separadas y luego llamarlas, asi como esta en el codigo fuente que comparti.


----------



## galaxy3 (Nov 4, 2013)

Ericktronik dijo:


> cualqueir tipo de programa diseñado para el 877 sirve para el 887 lo unico que hay que hacer es activar el reloj interno, si lo hiciste bien, deberia funcionar correctamente, yo tambien tengo varios 887 y los he utilizado para el cubo, ninguno me presento problema.



Buenos dias, antes que nada muy buen proyecto, mi pregunta es la siguiente.
Yo estoy trabajando con el 887 en la placa tengo un cristal de 4 MHz. ¿ Es necesario borrar el XT(clock interno) del programa? ya que estoy usando un oscilador externo que es mas preciso. 

Muchas gracias, espero tu respuesta.


----------



## ivercingo (Dic 3, 2013)

hola , necesito ayuda para agregar nuevas letras al  final del cubo.  pero el compilador no me da  el  archivo .HEX que  necesito en su caso me da errores . adjunto lo el codigo fuente de ericktronik mas el archivo error del compilador .        ericktronik como hizo para optener el .HEX  -si  el  codigo fuente  esta  con errores ,  porfavor   que alguien me enseñe !!


----------



## proteus7 (Dic 4, 2013)

ivercingo dijo:


> hola , necesito ayuda para agregar nuevas letras al  final del cubo.  pero el compilador no me da  el  archivo .HEX que  necesito en su caso me da errores . adjunto lo el codigo fuente de ericktronik mas el archivo error del compilador .        ericktronik como hizo para optener el .HEX  -si  el  codigo fuente  esta  con errores ,  porfavor   que alguien me enseñe !!



Oye tu codigo  tiene la extension.asm y no veo que este escrito en asembler , pues checando el LST todo el programa  lo marca como erroneo


----------



## ivercingo (Dic 4, 2013)

> Oye tu codigo tiene la extension.asm y no veo que este escrito en asembler , pues checando el LST todo el programa lo marca como erroneo


   O si amigo tenes razón , la fuente tiene que ser " .c  "  pero con el compilador MPASMWIN igual me sigue dando error . y no obtengo el .hex que necesito.  Estoy en cero en el lenguaje .c ,   con que  otro programa  me recomienda compilar archivos .c  .  gracias por sus ayudas.


----------



## proteus7 (Dic 5, 2013)

ivercingo dijo:


> O si amigo tenes razón , la fuente tiene que ser " .c  "  pero con el compilador MPASMWIN igual me sigue dando error . y no obtengo el .hex que necesito.  Estoy en cero en el lenguaje .c ,   con que  otro programa  me recomienda compilar archivos .c  .  gracias por sus ayudas.



mpasmwin no te genera el hex porque no tiene las librerias  que se usan en c, es mejor que uses un compilador c como elcompilador  CCS de hecho hay un libro de CCS con proteus


----------



## ivercingo (Dic 5, 2013)

> mpasmwin no te genera el hex porque no tiene las librerias que se usan en c, es mejor que uses un compilador c como elcompilador CCS de hecho hay un libro de CCS con proteus


   hola ya  lo conseguí , mi error fue compilarlo con mpasm.   ahora descargue PIC C compiler  y funciona correcto,   y  ahora como hago para cambiar las rutinas de letras al final del codigo fuente de ericktronik , el cual  subio "Tabla de codigos para letras.pdf  "  por donde comienzo a agregar las letras a las rutinas .   pronto subire fotos del cubo con las rutinas de letras nuevas , pues  el cubo hasta hoy funciona de maravilla,  necesitaría  mas rutinas para lucirse . me pueden ayudar en esta ultima ,    Grasias.


----------



## santiagovargas (Ene 16, 2014)

alguien me dice cuales son los conectores sli y que es un radiado para lm7805???


----------



## goyete (Feb 13, 2014)

hola,
gracias Ericktronik por tu aporte, acabo de terminar el cubo, despues de unos ajustes fuciona a la perfeccion, seria muy complicado que las letras en vez que se desplacen de abajo haia arriba, se desplacen lateralmente.

gracias


----------



## voscmart369 (Mar 29, 2014)

santiagovargas dijo:


> alguien me dice cuales son los conectores sli y que es un radiado para lm7805???




hola ma pare*c*e que el radiador se refiere a un disipador de calor para el lm espero te sirva


----------



## Hyperion (Abr 23, 2014)

goyete dijo:


> hola,
> gracias Ericktronik por tu aporte, acabo de terminar el cubo, despues de unos ajustes fuciona a la perfeccion, seria muy complicado que las letras en vez que se desplacen de abajo haia arriba, se desplacen lateralmente.
> 
> gracias





voscmart369 dijo:


> hola ma pare*c*e que el radiador se refiere a un disipador de calor para el lm espero te sirva



Estimado ... el zocalo para el CI, yo use uno de estos ...







Y un radiador que puede ser esto ...


----------



## Hyperion (Jun 25, 2014)

Estimados todos ... despues de tanto tiempo (mas o menos 2 años) estoy terminando el cubo LED, hice la matriz de 125 Led y espero poder soldar los componentes a la brevedad a la placa. Para realizar pruebas locas y subir avances ....
La falta de tiempo, tanto en el trabajo, mi novia (ahora ex) y para ser sincero, olvido; termino por relegar el proyecto pero ahora voy con todo para terminar el proyecto.

les dejo una foto.







Saludos a quienes sigan este post.


----------



## Darklycanz (Dic 16, 2014)

Primeramente gracias por tu aporte.. Me ha ayudado mucho a entender algunas cosas de electronica que tenia dudas... 
Solo necesito ayuda con el diseño(No es necesario que lo postees). Aca adjunto mi simulacion(en proteus 7.7) y codigo. :estudiando:
Programando en basic (pickbasic y proton ide) en el archivo adjuntado esta el .hex, .asm, .bas, .lst... Mi problema es que no entiendo el como hacer para por ejemplo encender el led de la 1era columna y 1era fila, y a su vez el de la ultima columna y ultima fila por asi decirlo. Ya que al simularlo se enciende 4 led's en lugar de los 2. Es decir, 1era columna ultima fila, 1era columna 1era fila, ultima columna ultima fila, ultima columna 1era fila.
*Tambien se que le falta un diodo, condensadores y el limitador, solo para efectos practicos necesito es saber como pudiera solucionar ese detalle... Gracias de antemano*


----------



## cesar lazo (Ene 16, 2015)

hola, buenas a todos, he estado leyendo este proyecto desde su inicio, hace un par de días me compre algunos componentes para poder elaborar dicho proyecto, al preguntar por el transistor bc337, en la tienda me dijeron que no lo poseían, pero dijeron que podía utilizar el bc548 por dicho transistor.

existe poca discrepancia al visualiza sus hojas técnicas, puedo utilizar ese reemplazo?

Cabe mencionar, que se poco de electrónica, pero si me he empapado de mucha información.





Darklycanz dijo:


> Primeramente gracias por tu aporte.. Me ha ayudado mucho a entender algunas cosas de electronica que tenia dudas...
> Solo necesito ayuda con el diseño(No es necesario que lo postees). Aca adjunto mi simulacion(en proteus 7.7) y codigo. :estudiando:
> Programando en basic (pickbasic y proton ide) en el archivo adjuntado esta el .hex, .asm, .bas, .lst... Mi problema es que no entiendo el como hacer para por ejemplo encender el led de la 1era columna y 1era fila, y a su vez el de la ultima columna y ultima fila por asi decirlo. Ya que al simularlo se enciende 4 led's en lugar de los 2. Es decir, 1era columna ultima fila, 1era columna 1era fila, ultima columna ultima fila, ultima columna 1era fila.
> *Tambien se que le falta un diodo, condensadores y el limitador, solo para efectos practicos necesito es saber como pudiera solucionar ese detalle... Gracias de antemano*



Con mi humilde aporte espero ayudarte amigo, para lograr el efecto que tu deseas, tienes que aplicar multiplexacion, consiste en encender un led en instantes muy cortos de tiempo, y luego apagarlo (10 milisegundos por ejemplo), en tu caso, primero enciendes el led de la primera columna y primera fila, luego lo apagas, procedes a encender el led de la ultima columna y ultima fila, y lo apagas, el efecto es tan rapido, que el ojo humano no es capaz de ver los cambios de apagado y encendido de los leds...!! 

Te recomiendo que leas sobre multiplexacion, hay mucha información.


----------



## Hyperion (Ene 19, 2015)

cesar lazo dijo:


> hola, buenas a todos, he estado leyendo este proyecto desde su inicio, hace un par de días me compre algunos componentes para poder elaborar dicho proyecto, al preguntar por el transistor bc337, en la tienda me dijeron que no lo poseían, pero dijeron que podía utilizar el bc548 por dicho transistor.
> 
> existe poca discrepancia al visualiza sus hojas técnicas, puedo utilizar ese reemplazo?
> 
> ...




Por lo que estuve viendo, el transistor BC548 te es útil para el proyecto del cubo de led. Acabo de terminar el cubo y funciona correctamente, ahora solo tengo que aprender a programar y crear nuevas secuencias.


----------



## cesar lazo (Ene 19, 2015)

Hyperion dijo:


> Por lo que estuve viendo, el transistor BC548 te es útil para el proyecto del cubo de led. Acabo de terminar el cubo y funciona correctamente, ahora solo tengo que aprender a programar y crear nuevas secuencias.



Gracias Hyperion, la siguiente semana empezare con el mio, solo me resta comprar los bc548, si no es mucha molestia, sube la foto de tu proyecto y si es posible un video


----------



## Hyperion (Ene 21, 2015)

Tal como lo habia dicho, he subido algunas fotos y videos .... les dejo el link:

https://www.youtube.com/watch?v=I5nLfb8lEqY&feature=youtu.be

https://www.youtube.com/watch?v=qPqddreL1xo&feature=youtu.be
































Espero que sirva.


Saludos.



http://www.subirimagenes.net/i/150121082007659482.jpg

http://www.subirimagenes.net/i/150121082023693273.jpg

http://www.subirimagenes.net/i/150121082041978123.jpg

http://www.subirimagenes.net/i/150121082059335015.jpg


----------



## kowart (Feb 4, 2015)

¡CUIDADO!
El diseño de la placa inicial del cubo  requiere si o si  modificaciones  entiendo que tuvieron problemas con el 7805 porque calentaba ,mucho y sera asi porque el amperaje de consumo es mucho para la caída se debe al consumo de cada led,tengan en cuenta cuanto consume cada led,la solución es añadirle una fuente extra para los led y otro para la placa con la tierra en común,espero analicen y consulten bien ese punto ,con sus, amigos o profesor Antes de empezar el proyecto.yo ya arme este cubo y también tuve este problema,pero pese ante ese punto es un gran aporte de quien decidió compartir su proyecto.


----------



## Moruyero (Feb 4, 2015)

Yo utilice una fuente de PC de 300w y le puse un generoso disipador al regulador, otra idea es utilizar un cargador de las viejas impresoras tienen entre 18 y 30 vatios y mas de 2 amp y usar un regulador para los leds y otro para el micro.


----------



## cesar lazo (Feb 8, 2015)

Realmente no entiendo lo de la parte de las 2 fuentes, si se hacen dichas modificaciones, la pcb pasteado, ya no es valida? No existe otro regulador de voltaje que caliente menos?


----------



## kowart (Feb 8, 2015)

no existe no para el diseño de placa ,se puede corregir el error,pero con una fuente de 2 amp y 7 de voltaje,creo recordar,de todas maneras saca tus cálculos de tensión y amperaje primero,si lo haces tal y como esta en el diseño principal y no utilizas fuente adecuada ,ten por seguro que aunque le coloques un buen disipador va igual  a calentar y no van a prender todos las columnas y filas,y no sera por programación o  mala soldadura sino por el consumo de cada led y cuanto le estas suministrando a la placa de amperaje y voltaje


----------



## Moruyero (Feb 8, 2015)

Cesar no son dos fuentes son dos reguladores uno para el micro  que puede ser to92 de 200 mah ese no calienta, y otro de 1.5 amp mod 220 con disipador, de todas formas calentara (utiliza disipador de una vieja fuente de PC )


----------



## kowart (Mar 1, 2015)

yo modifique la placa,para bootloader


----------



## Fogonazo (Mar 1, 2015)

kowart dijo:


> yo modifique la placa,para bootloader
> 
> http://www.youtube.com/watch?v=AGbIAGhNaXo



¿ Que opinas sobre completar la información ?


----------



## jeffryaldair (May 23, 2015)

hola ERICK  imprimir en tamaño real el circuito del cubo 5x5x5 con pic 16f877a que estaba en el pdf pero resulta que sale mas pequeño y no cabe los pines del pic a que se debe ayúdenme porfabor


----------



## Fogonazo (May 24, 2015)

jeffryaldair dijo:


> hola ERICK  imprimir en tamaño real el circuito del cubo 5x5x5 con pic 16f877a que estaba en el pdf pero resulta que sale mas pequeño y no cabe los pines del pic a que se debe ayúdenme porfabor



https://www.forosdeelectronica.com/f27/adaptar-tamano-pcb-tamano-real-nano-tutorial-28701/


----------



## Ericktronik (May 24, 2015)

jeffryaldair dijo:


> hola ERICK  imprimir en tamaño real el circuito del cubo 5x5x5 con pic 16f877a que estaba en el pdf pero resulta que sale mas pequeño y no cabe los pines del pic a que se debe ayúdenme porfabor



Solo debes seleccionar la opcion de tamaño real en el "adobe reader" al momento de imprimir.


----------



## Hyperion (May 25, 2015)

Ericktronik dijo:


> Solo debes seleccionar la opcion de tamaño real en el "adobe reader" al momento de imprimir.



Erick ... tanto tiempo, amigo ... quiero darte las gracias por tu aporte del cubo, aunque paso bastante tiempo, lo pude terminar sin problemas y me funciona impecable. 

Muchas gracias por tu ayuda.



Saludos.


----------



## jeffryaldair (May 30, 2015)

Bueno gracias  Ericktronik  lo llege a diseñar con la ayuda del pdf que dejaste y me funciono el cubo  , bueno no se si tendras libro d lenguaje ccompiler para darle mas efectos gracias de antemano


----------



## moi945 (Nov 27, 2015)

al momento de compilarlo me marca error esta libreria 

#include <STDLIB.H>

porque?


le quite esa libreria y compilo el programa afectaria en algo si lo dejo sin esa libreria?


----------



## Fogonazo (Nov 27, 2015)

moi945 dijo:


> al momento de compilarlo me marca error esta libreria
> 
> #include <STDLIB.H>
> 
> ...



No afecta para nada, solo  te funcionará 

¿ Que error da la librería ?


----------



## moi945 (Nov 27, 2015)

este mira


----------



## D@rkbytes (Nov 27, 2015)

moi945 dijo:


> Al momento de compilarlo, me marca error esta librería
> 
> #include <STDLIB.H>
> 
> ¿Por qué?


Seguramente tienes un problema con tu compilador, porque yo si pude compilar el programa sin problemas.


moi945 dijo:


> Le quité esa librería y compiló el programa. ¿Afectaría en algo si lo dejo sin esa librería?


Si puedes compilar el programa sin esa librería, es porque el programa no la necesita.
La incluyeron pero no la usaron. (Eso aumentará el uso de RAM por declaración de variables)

Cuando se usan funciones de alguna librería y si ésta no se encuentra o no está declarada, entonces sí se producen errores.


----------

