# Matriz de Leds con PIC y PBP



## torres.electronico (Nov 8, 2011)

Buenas, tengo una consulta... Me puse a jugar un poco en proteus para armar una matriz de led... Bien, hasta aca y gracias a muchos ejemplos del topico, pude realizarlo... me arme una tabla con todas las letras y puedo hacer correr las letras con el efecto de desplazamiento...El tema esta en como puedo hacer para escribir en la pantalla mediante una comunicacion serial? alguien  tiene alguna orientacion? Igualmente, creo que voy a tener que ver de armar la tabla de otra manera, ya que no me queda mucho espacio en el 16f877 en el caso que quiera anexar mas lineas de programacion...
Saludos


----------



## reyvilla (Nov 8, 2011)

Hola torres para hacer lo que quieres puedes colocar una memoria externa que te sirva para guardar las letras y efectos y el pic para la interface serial y manejo de la matrix fijate en:

http://www.ucontrol.com.ar/wiki/index.php?title=Funcionamiento_de_una_matriz_de_LEDs

Utiliza una memoria externa y con un 16F628A, ahora con un 16F877 mas que de sobra para hacer la comunicación serial con un pc y enviar desde allí la información a escribir...saludoss


----------



## torres.electronico (Nov 8, 2011)

reyvilla dijo:


> Hola torres para hacer lo que quieres puedes colocar una memoria externa que te sirva para guardar las letras y efectos y el pic para la interface serial y manejo de la matrix fijate en:
> 
> http://www.ucontrol.com.ar/wiki/index.php?title=Funcionamiento_de_una_matriz_de_LEDs
> 
> Utiliza una memoria externa y con un 16F628A, ahora con un 16F877 mas que de sobra para hacer la comunicación serial con un pc y enviar desde allí la información a escribir...saludoss



Hola amigo, como andas... ya conocia ese proyecto ya que soy moderador en Ucontrol 
Igualmente gracias amigazo... 
En realidad, lo que estoy tratando de hacer, es una sencilla matriz de led, que por intermedio de un mensaje serial, pueda imprimirlo en la matriz...
una vez que tenga una orientacion de como hacer esta parte, osea, la de traducir el mensaje serial y convertirlo en los bitsmap necesarios, voy a ver si le puedo meter un teclado para no precindir de una PC...
hasta el momento, lo que tengo funcionando en proteus, es la animacion controlada de todos los caracteres en una matriz de led chiquita... pero me ahogue en un vaso de agua ahora que quiero ver la manera de traducir un mensaje serial e imprimirlo en la pantalla...
Implemente google, y me tope con una persona que realizo algo muy parecido a lo que tengo en mente, pero no citan fuentes ni nada, jajajaja, me sigo quedando con la espina y pensando que puedo y como lo puedo hacer.
Saludos y muchas gracias por tus apòrtes para con el foro y el resto de la comunidad


----------



## reyvilla (Nov 8, 2011)

Si quieres coloca la simulación con el codigo a ver si te puedo echar una mano con lo que tienes yo ya he trabajado la parte serial del PBP, seria cuestión ir probando y adaptarlo a lo que tu ya tienes.


----------



## torres.electronico (Nov 8, 2011)

reyvilla dijo:


> Si quieres coloca la simulación con el codigo a ver si te puedo echar una mano con lo que tienes yo ya he trabajado la parte serial del PBP, seria cuestión ir probando y adaptarlo a lo que tu ya tienes.


Dale, hacemos eso, te armo una carpeta comprimida y te meto el archivo proteus, hex y pbp asi lo miramos... Gracias por tu atencion


----------



## MAXTORCAMPOS (Nov 9, 2011)

Hola torres.electronico, no estoy muy claro en lo que quieres hacer sin embargo tengo una idea vaga si me explicas mejor que es lo que necesitas quizas yo pueda ayudarte saludos


----------



## torres.electronico (Nov 9, 2011)

Hola ReyVilla, MAXTOR gracias por unirte... Les comento... lo que quiera hacer, es algo similar a lo que subo aca como adjunto...
En uno de los ejemplos, mostre como correr en una matriz las letras y numeros con un efecto dado...hasta ahi una papa, pero me ahogue en un vaso de agua, cuando queria hacer algo similar a lo que subo en el segundo ejemplo dentro del mismo comprimido... Osea, una matriz serial, donde por intermedio de un software o de otro pic con un teclado, pudiera escribir mensajes en la pantalla...
En el ejemplo que se abre el hyper terminal virtual, coloquen el mensaje asi "-mensaje*" (sin las comillas con el guion medio al inicio, y el asterisco al final) y veran como aparece el mensaje...
El boton de introduccion, da un mensaje inicial... Obviamente, tengo que comentarles que el segundo ejemplo, no es mio, El autor es Esteban...Aclaro por que se merece todos mis respetos y consideraciones...

Me olvidaba comentar que primero arranque implementando selectcase, pero al parecer, no hice algo bien, por que no podia hacer que reconociera las tablas....
La otra mas sencilla que se me habia ocurrido, era crear las tablas en el software VB, y despues, que las mande serialmente y lo unico que hacia el microvcontrolador, era multipleaxr e impriomir.... No funciono tampoco,m pero para mayor sorpreza mia, es que cuando hoy fui a armar la carpeta para subir, me desaparecieron de la carpeta del microcode studio, el archivo pbp...
No es la 1era vez que me pasa esto, generalmente me pasa cuando cierro las ventanas del MCStudio....en fin, tendre que sentarme de nuevo


----------



## reyvilla (Nov 10, 2011)

torres.electronico dijo:


> Hola ReyVilla, MAXTOR gracias por unirte... Les comento... lo que quiera hacer, es algo similar a lo que subo aca como adjunto...
> En uno de los ejemplos, mostre como correr en una matriz las letras y numeros con un efecto dado...hasta ahi una papa, pero me ahogue en un vaso de agua, cuando queria hacer algo similar a lo que subo en el segundo ejemplo dentro del mismo comprimido... Osea, una matriz serial, donde por intermedio de un software o de otro pic con un teclado, pudiera escribir mensajes en la pantalla...
> En el ejemplo que se abre el hyper terminal virtual, coloquen el mensaje asi "-mensaje*" (sin las comillas con el guion medio al inicio, y el asterisco al final) y veran como aparece el mensaje...
> El boton de introduccion, da un mensaje inicial... Obviamente, tengo que comentarles que el segundo ejemplo, no es mio, El autor es Esteban...Aclaro por que se merece todos mis respetos y consideraciones...
> ...



Hola ya conseguí avanzar en algo, fue fácil pero largo el programa, eso por la cantidad de variables, solo utilice las primeras 56 para el ejemplo, te explico:

Adapte tu circuito a una memoria eeprom 24c08b puede ser una mas grande que esa, en caso de que se requiera.
Modifique tu programa casi todo menos las variables y el loop que va mostrando las letras,
coloque los fuses y definiciones que no tenias.
agregue unas variables auxiliares para la lectura de la eeprom.

Funcionamiento: Te dejo un vídeo que hice del funcionamiento del circuito.
Puede ser mejorado muchísimo mas con pequeñas modificaciones.
Te dejo los archivos para que los modifique y cuando termines de colocar los 206 o mas variables con su dirección en la eeprom me avises...jajajaja...eso si que va llevar algo de trabajo aunque creo se puede hacer de otra manera ya veremos.

Cualquier sugerencia o critica constructiva bienvenida sea.


----------



## torres.electronico (Nov 10, 2011)

Gracias reyvilla, ahi lo descargue y esta noche le voy a meter mano... Recien me tope con el ejemplo de lubeck, el del teclado con LCD.... lo voy a modificar y anexar a este proyecto... Creeria, por lo poco que pude leer del programa, me parece que me ahorro horas 
Pero vamos a ver... esta noche me pongo y mañana te cuento... Gracias por tu tiempo....


----------



## Chico3001 (Nov 11, 2011)

Separe este tema ya que considero que puede dar para mucho mas... si falta algo avisenme por favor..


----------



## torres.electronico (Nov 11, 2011)

Chico3001 dijo:


> Separe este tema ya que considero que puede dar para mucho mas... si falta algo avisenme por favor..



Gracias Amigo, la seguiremos por aca...
ReyVilla, ahi estuve mirando lo tuyo... Esta bueno, y logre hacver algunas modificqaciones para anexar el teclado de lubeck... Quedo medianamente funcionando pero desisti cuando me puse a pensar que escribir y sobre escribir fisicamente la eeprom, tiene un tiempo limitado dado la cantidad de veces que se escribiria, asi que ahi lo estoy modificando para meter dentro de un 16f877 directamente, y estoy peleando con SelectCase para poder dar con la letra... Osea, el teclado de lubeck, lo que anexe, fue que me mande el dato serial de la letra o tecla en formato HEX... lo guardo en un espacio temporal, comparacion, y sale para la matriz... hasta aca, es mitad teoria jajaja, asi que esta noche sigo y quizas mañana te tengo algo para mostrar...
QUe buenos videos che, con que software los haces? asi subo lo que voy haciendo con los archivos correspondientes


----------



## reyvilla (Nov 12, 2011)

Muchas gracias chico3001 por tomarlo en cuenta, amigo torres mi cerebreo esta que echa chizpas...jajaja
algo que te lo cuento y no lo crees, logre hacer la matriz serial con memoria eeprom externa, pero lo mejor no es eso, la cosa es con que la realice, con un 12F675 con las letras de la A a la Z y aun le quedo espacio para mas caracteres, me costo bastante lograrlo pero con ideas sencillas, bueno asi lo veo yo, el programa es sencillo, realice dos videos para que vean como estuve progresando hasta que llegue a la parte de la memoria eeprom y la entrada serial, alli fue donde se puso mas dificil ya que solo cuento con 5 pines que pueden configurarse como entrada y salida y uno que solo es entrada, en fin la cosa esta increible les dejo los dos videos y luego me comentan que les parece...saludosss

El principio del proyecto matriz serial...









La segunda parte la matriz recargada....







espero podamos mejorarla ya que no creo que exista y si existe no lo he visto.


----------



## SERGIOD (Nov 12, 2011)

reyvilla dijo:


> Muchas gracias chico3001 por tomarlo en cuenta, amigo torres mi cerebreo esta que echa chizpas...jajaja
> algo que te lo cuento y no lo crees, logre hacer la matriz serial con memoria eeprom externa, pero lo mejor no es eso, la cosa es con que la realice, con un 12F675 con las letras de la A a la Z y aun le quedo espacio para mas caracteres, me costo bastante lograrlo pero con ideas sencillas, bueno asi lo veo yo, el programa es sencillo, realice dos videos para que vean como estuve progresando hasta que llegue a la parte de la memoria eeprom y la entrada serial, alli fue donde se puso mas dificil ya que solo cuento con 5 pines que pueden configurarse como entrada y salida y uno que solo es entrada, en fin la cosa esta increible les dejo los dos videos y luego me comentan que les parece...saludosss
> 
> El principio del proyecto matriz serial...
> ...



Se ven muy bien esos videos el software que usaste es complicado


----------



## IngFbar (Nov 12, 2011)

reyvilla, me encargaron exactamente lo que tu tienes en los videos bueno es lo que espero. Tengo que hacer  un mensaje utilizando una memoria eprom (de las que se borran con luz ultrabioleta) es la 2716, de 16k por 8 creo...reflejandolo en una matriz. como grabo mi memoria?  cuales son las conexiones? soy un novato en esto pero quiero aprender,.... me podrias o alguien me podria orientar?


----------



## lubeck (Nov 12, 2011)

> Tengo que hacer un mensaje utilizando una memoria eprom (de las que se borran con luz ultrabioleta) es la 2716, de 16k por 8 creo...reflejandolo en una matriz. como grabo mi memoria?



este proyecto no te sirve para esa memoria, el protocolo que aqui se utiliza es el i2c (serial sincrono) y esa memoria no tengo idea de como se programa pero no es compatible.... es mas facil que compres una memoria i2c...es mas facil y hay muchisima informacion...


----------



## IngFbar (Nov 12, 2011)

AAa ok lubeck, oye pasame el PROTEUS isis, que sea un link confiable libre de virus, estube bajando uno y tenia virus. ALguien pasame un link de donde descargar proteus PORFAVOr!!!


----------



## lubeck (Nov 12, 2011)

IngFbar dijo:


> AAa ok lubeck, oye pasame el PROTEUS isis, que sea un link confiable libre de virus, estube bajando uno y tenia virus. ALguien pasame un link de donde descargar proteus PORFAVOr!!!



busca la pagina oficial de proteus y baja el de demostracion (no se si hay)

no esta permitido pasar link de software pirata....
lee las normas de participacion...


----------



## IngFbar (Nov 12, 2011)

lubeck dijo:


> busca la pagina oficial de proteus y baja el de demostracion (no se si haya)
> 
> no esta permitido pasar link de software pirata....
> lee las normas de participacion...



Te digo que ando mal, bueno seguire buscando


----------



## torres.electronico (Nov 14, 2011)

lubeck, te hago una consulta... anexando el comando serout subsiguiente a la linea en la cual muestra el caracter ingresado en el LCD... teoricamente tendria que funcionar, pero ahi entro mi duda por uqe me parece que estoy enviando mal los caracteres... tendria que mandar la tecla en formato HEX o ASCII?, por que por ejemplo si mando serout TX,4800,("") no pasa nada... intente mandarlo en HEX, y no se en que parte me equivoco por que me tira errores... Para mandar un caracter en forma de HEX se anteponia el simbolo $..verdad?


----------



## reyvilla (Dic 8, 2011)

Hola que tal, estuve practicando un rato con tu matrix tanto que hasta logre hacer un pequeño programa para realizar los caracteres el programa en si no era mio así que lo modifique era un programa libre que realizaron con la misma finalidad, en fin luego te explico de que se trata. En que te puedo ayudar cual es tu duda al respecto de tu código?


----------



## Dario (Ene 13, 2012)

hola amigos, les cuento que estoy intentando hacer funcionar una matriz de 5x7 leds con un pic16f628A programando en pbp con microcode y sin registro de desplazamiento. googleando un poco, encontre algunos ejemplos como los anteriores que hay aqui pero se me hacen un poco dificil de entender, tambien encontre un codigo bastante sencillo pero claro esta que al simplificar el codigo, las prestaciones son menores jejeje tanto es asi que, en realidad funciona, pero tiene el defecto de que se ve la multiplexacion y se ve vastante bastante feo asi... me preguntaba si podrian darme una idea para modificarlo y hacer que funcione sin que se vea la multiplexacion, ya intente modificarlo pero sin exito.  pensaba que talvez si uso unos cuantos bucles for...next podria solucionar el problema, pero no se me ocurre como.   se como se hace la multiplexacion de la matriz y como presentar una imagen, pero no como desplazarla...  ¿me ayudan? aca les dejo el codigo y el rar que esta en el post de pbp.
saludosss

codigo:

```
@ DEVICE MCLR_OFF, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
DEFINE OSC 4 
CMCON = 7                     ' desactivo el convertidor AD del puerto A
TrisA=%00000000               'todo el port A como salida
TrisB=%00000000               'todo el port B como salida
PORTA = %00000000             'todo el port A en 0
PORTB = %00000000             'todo el port B en 0
 
k var word 
j var byte 
x var byte [30]
i var byte
y var byte [5]   
 
'columnas
'H
x[0]=%11000000
x[1]=%11110111
x[2]=%11110111
x[3]=%11000000
x[4]=%11111111
'O
x[5]=%11100001
x[6]=%11011110
x[7]=%11011110
x[8]=%11100001
x[9]=%11111111
'L
x[10]=%11000000
x[11]=%11011111
x[12]=%11011111
x[13]=%11011111
x[14]=%11111111
'A
x[15]=%11000001
x[16]=%11110110
x[17]=%11110100
x[18]=%11000001
x[19]=%11111111
'/
x[20]=%11111101
x[21]=%11111011
x[22]=%11110111
x[23]=%11101111
x[24]=%11011111
'/
x[25]=%11111101
x[26]=%11111011
x[27]=%11110111
x[28]=%11101111
x[29]=%11011111
 
 
'col
y[0]=%00000010
y[1]=%00000100
y[2]=%00001000
y[3]=%00010000
y[4]=%00100000
 
inicio: 
for k=0 to 100
for i=0 to 26
for j=0 to 4
portb=x[i+j]
porta=y[j]
pause 25
next j 
next i
next k
porta=0
portb=0
goto inicio
```

rar:
https://www.forosdeelectronica.com/posts/600424/


----------



## Dario (Ene 16, 2012)

hola amigos, les cuento que ya solucione mi problema, al final, fusione mi programa con el del profe torres electronico. ah, les recomiendo que enves de usar tantas variables, usen una sola variable en array, se achica el programa asi.
ahora estoy trabajando para adaptar unos pulsadores para cambiar las letras a voluntad.
saludossss y gracias


----------



## Yeey (Ene 16, 2012)

torres.electronico dijo:


> Buenas, tengo una consulta... Me puse a jugar un poco en proteus para armar una matriz de led... Bien, hasta aca y gracias a muchos ejemplos del topico, pude realizarlo... me arme una tabla con todas las letras y puedo hacer correr las letras con el efecto de desplazamiento...El tema esta en como puedo hacer para escribir en la pantalla mediante una comunicacion serial? alguien  tiene alguna orientacion? Igualmente, creo que voy a tener que ver de armar la tabla de otra manera, ya que no me queda mucho espacio en el 16f877 en el caso que quiera anexar mas lineas de programacion...
> Saludos



Que tal amigo. Me da gusto que busques manera de mejorar un proyecto ya iniciado, espero que estes teniendo éxito.
Te comento que yo ando trabajando en una matriz de 8x8, y me surge el detalle al armarlo en el protoboard de quedar completamente apagaa la matriz. No me desplaza nada de lo que tengo programado. Ya probe el registro de desplazamiento y funciona a la perfección al dejar independientes las señales del data y clock. Por lo que pense que fueran las señales del microcontrolador y no consigo que logren excitar al registro de desplazamiento. Espero puedan ayudarme. Este circuito estoy probando 
http://www.taringa.net/posts/ciencia-educacion/8653811/matriz-de-led-8x8.html


----------



## baterod3 (Ene 17, 2012)

Como quedó finalmente tu programa D@rio, si puedes compartirlo te agradezco


----------



## Dario (Ene 17, 2012)

Bue... aca lo comparto con simulacion en proteus y codigo pbp para que otro no se rompa la cabeza como yo...  las letras se ven asi porque arme una matriz con leds reciclados jeje y me faltaron 5  asi que solo utilizo 6 de las 7 filas disponibles - 
saludosss


----------



## baterod3 (Ene 18, 2012)

D@ario una consulta, mira yo he comprado una matriz de leds de 7x5 pero al parecer no tiene el mismo funcionamiento que una matriz simulada en proteus...sabes algo de eso


----------



## Dario (Ene 18, 2012)

baterod3 dijo:


> D@ario una consulta, mira yo he comprado una matriz de leds de 7x5 pero al parecer no tiene el mismo funcionamiento que una matriz simulada en proteus...sabes algo de eso


 mmm... la verdad que no, yo te diria que te fijes en el costado de la misma para ver el nombre y asi podes buscar el datasheet, entonces vas a saber si es anodo comun o catodo comun y tambien la posiscion de los pines.
saludosss


----------



## baterod3 (Ene 19, 2012)

No he encontrado el datasheet por eso te hacia esa consulta, si tienes un datasheet x ahi sería bacan de tu parte


----------



## reyvilla (Ene 19, 2012)

El que busca encuentra:

http://pdf1.alldatasheet.com/datasheet-pdf/view/165046/LITEON/LTP-1557AKR.html

Este es una hoja de datos de una matriz de 5x7 
creo que son standar la mayoría con respecto a sus pines
para ver el código de una matriz lo trae impreso al 
a un costado o en la parte inferior pero para ver el código
 si esta en la parte de atrás se necesita una lupa ya que los números son muy pequeños y están 
detrás de una laca o pintura transparente de color, en mi caso todas las matrices que he comprado empiezan con LTP seguido de un guion "-" y luego el código en si del tipo de matriz...saludosss


----------



## baterod3 (Ene 19, 2012)

Vale...gracias...


----------



## torres.electronico (Ene 27, 2012)

Buenas, veo que hicieron un poco de ruido y me despertaron jajaja... Saludos a todos, estoy sin internet en casa, asi que estoy medio desaparecido... Dario, muy bueno lo tuyo... Rey, capo, cuando pueda estoy en contacto con vos mostrandote lo que ya arme... Voy a ver como subo fotos y demases para compartir. 
Hasta la proxima conexion (lamentablemente desde un ciber).

Martin


----------



## kimer (Dic 13, 2015)

Hola*,* Dario*.* *¿*Podrías ayudarme*?* *S*oy nuevo en este tema*.

**P*oco conozco el microcode y he intentado colocar 10 diodos le*d* en el PIC16F84*, *tanto en el puerto A Y puerto B para poder hacerlo secuencial y darles varios efectos*, *pero no me sale*.*

*T*e  agradecer*í*a que me ayudes*.*
*¿Có*mo se pone  el microcode y los c*ó*digos que van*?*

*G*racias*.* *A*tte*.* kimer


----------

