[Aporte] Cubo LED 5x5x5, con PIC16F877A.

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

Código:
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:

Código:
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í:

Código:
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
 
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???
 
Última edición:
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.
 
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 :LOL:

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??
 
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 :LOL:

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

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



con ese pic no necesito compra el crystal ya tiene un oscilador interno y pues es el pic que consegui
 
Última edición:
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 :D



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

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.
 
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.
 
Última edición:
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.
 
la resolucion es mala:rolleyes:
20rnqc4.jpg

2n86fq8.jpg

1zyy5us.jpg

161bwg3.jpg


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.
 
la resolucion es mala:rolleyes:

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
 
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
 
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
 
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.
 
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.
 
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 ???
 
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.
 
Atrás
Arriba