Autor Tema: Matriz de leds 8X8.  (Leído 82477 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Matriz de leds 8X8.
« Respuesta #60 en: 22 de Enero de 2010, 00:37:34 »
Hola Amigos!, muy buena Antimason, yo estoy implementando una matriz de 10x15, y para generar las tablas, realicé este programita...
si quieres, lo adapto a 8x8  :mrgreen:
ANIMATRIX
Norberto
« Última modificación: 22 de Enero de 2010, 00:39:47 por todopic »
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #61 en: 22 de Enero de 2010, 01:37:39 »
Hola Amigos!, muy buena Antimason, yo estoy implementando una matriz de 10x15, y para generar las tablas, realicé este programita...
si quieres, lo adapto a 8x8  :mrgreen:
ANIMATRIX
Norberto




Perfecto si lo haces para caracteres 8x8, ¿no podrías hacer tambien que sacase el dato hexadecimal de filas y columnas para poder implementar los caracteres en un memoria externa?. Gracias.

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #62 en: 22 de Enero de 2010, 13:12:33 »
Resumiendo este hilo, se empezó colocando una animación, luego se creo un caracter que aparecía en la matriz, luego se consiguió desplazar el caracter por la matriz, mas tarde se usaron tablas para crear un texto largo que se desplazase por la matriz y quedaba pendiente el uso de una memoria externa para almacenar miles de caracteres y tener mas juego. Pues aquí os dejo el video de una animación creada con tres caracteres almacenados en memoria externa 24LC254, y que simulan el movimiento de un perrito.


Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #63 en: 22 de Enero de 2010, 13:16:51 »
Aquí os dejo el archivo .bin que hay que grabar en la memoria externa, el archivo asm con el código, y los archivos .INC, de las rutinas del protocolo I2C y de las rutinas de tiempo.
« Última modificación: 22 de Enero de 2010, 13:42:02 por antimason »

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #64 en: 28 de Enero de 2010, 11:31:33 »
Hola, he adaptado el código de Suky: http://www.ucontrol.com.ar/forosmf/programacion-en-asm/mis-primeros-programas-pic16f84a-y-pic16f628a/msg17048/#msg17048, hecho para un PIC 16F628A y matriz 8x32, a mi matriz 8x8 basada en un PIC 16F84A, el resultado no es todo lo bueno que debiera, debido a que Suky en su código hace uso del reset (Strobe) del registro de desplazamiento y yo tengo ese reset en mi circuito a Vcc, por lo que no hago uso de la función reset. Tendría que hacer un arreglo en las pistas para habilitarlo y por ejemplo poner la patita RA4 como salida de reset teniendo en cuenta que la entrada reset de mi registro está invertida, es decir, la ausencia de señal provoca el reset y la presencia anula el reset. Los caracteres usados por Suky que pone en la tabla los he invertido debido a las caracteristicas constructivas de mi matriz, es decir, para visualizar un dato debo envíar al registro un 0 y no un 1. Aquí el video y los códigos original y el adaptado para que los compareis y podais sacar vuestras conclusiones.

« Última modificación: 28 de Enero de 2010, 11:42:03 por antimason »

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #65 en: 30 de Enero de 2010, 12:48:19 »
Rectifico algo que dije en el post anterior, STROBE, no es RESET. STROBE es la función que poseen algunos registros que cuando se activa es cuando sacan por sus salidas paralelo los datos previamente cargados. Saludos.

Desconectado jmcs87

  • PIC10
  • *
  • Mensajes: 44
Re: Matriz de leds 8X8.
« Respuesta #66 en: 30 de Enero de 2010, 23:34:04 »
muy bueno antimason :mrgreen: lo que me pregunto es porque en el video no se ve bien definido las letras? ...al parecer hay leds que no deberian prender

Saludos

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #67 en: 31 de Enero de 2010, 05:59:03 »
muy bueno antimason :mrgreen: lo que me pregunto es porque en el video no se ve bien definido las letras? ...al parecer hay leds que no deberian prender

Saludos


Ese asunto es el que me ocupa actualmente y estoy detras de él, ¿tendrá que ver que en mi matriz la salida del portb para activar las filas debe ponerse a 0? ¿tendrá algo que ver que yo uso registros de desplazamiento sin función STROBE?.........en fin, a ver si alguien puede ayudar.

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Matriz de leds 8X8.
« Respuesta #68 en: 31 de Enero de 2010, 06:50:06 »
Rectifico algo que dije en el post anterior, STROBE, no es RESET. STROBE es la función que poseen algunos registros que cuando se activa es cuando sacan por sus salidas paralelo los datos previamente cargados. Saludos.
no uso los mismos registros pero puede darte alguna idea
lo que no entiendo es si no utilizas el strobe, como haces para sacar los datos del serie al paralelo :shock: yo utilizo los 74595 por que se pueden enlazar en cascada y lo que hago es tirar en serie la trama clock/dato, clock/dato....x64 y despues activar el estrobe, bueno yo lo llamo latch, para sacar los datos por el p. paralelo de los registros, pero si lo dejo fijo en un estado no salen hasta que no vuelve de alto a bajo el nivel del strobe/latch, podrias para no complicarte mucho en modificar el circuito, cortar la pista de la pcb del strobe, y tirar un modesto cablecillo hasta una salida del pic. por que si van saliendo los datos al paralelo segun los tiras en serie, es normal que se vean otros led encendidos aparte de los que deberian, menos por que es muy poco tiempo hasta que los pone en su sitio, pero algo se iluminan. tambien puedes intentar desactivar las filas hasta que esten las columnas colocadas, o desactivar las columnas hasta que esten colocadas las filas, no se si se me entiende :oops:. de esta forma "creo" no se encenderia ningun otro led mientras salen los datos en serie por el paralelo, aunque le veo mejor ponerle el cablecillo y usar el strobe. asi los tengo colocados para que las salidas de clock y data sean tambien el latch y clock de otros registros 74165 estos tambien se pueden poner en cascada, los uso para ampliar entradas, utilizan una entrada al pic para recibir los datos. usea con 4 pines del pic manejas todos los registros de entrada y salida que necesites

un saludo


Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #69 en: 31 de Enero de 2010, 18:14:11 »
Rectifico algo que dije en el post anterior, STROBE, no es RESET. STROBE es la función que poseen algunos registros que cuando se activa es cuando sacan por sus salidas paralelo los datos previamente cargados. Saludos.
no uso los mismos registros pero puede darte alguna idea
lo que no entiendo es si no utilizas el strobe, como haces para sacar los datos del serie al paralelo :shock: yo utilizo los 74595 por que se pueden enlazar en cascada y lo que hago es tirar en serie la trama clock/dato, clock/dato....x64 y despues activar el estrobe, bueno yo lo llamo latch, para sacar los datos por el p. paralelo de los registros, pero si lo dejo fijo en un estado no salen hasta que no vuelve de alto a bajo el nivel del strobe/latch, podrias para no complicarte mucho en modificar el circuito, cortar la pista de la pcb del strobe, y tirar un modesto cablecillo hasta una salida del pic. por que si van saliendo los datos al paralelo segun los tiras en serie, es normal que se vean otros led encendidos aparte de los que deberian, menos por que es muy poco tiempo hasta que los pone en su sitio, pero algo se iluminan. tambien puedes intentar desactivar las filas hasta que esten las columnas colocadas, o desactivar las columnas hasta que esten colocadas las filas, no se si se me entiende :oops:. de esta forma "creo" no se encenderia ningun otro led mientras salen los datos en serie por el paralelo, aunque le veo mejor ponerle el cablecillo y usar el strobe. asi los tengo colocados para que las salidas de clock y data sean tambien el latch y clock de otros registros 74165 estos tambien se pueden poner en cascada, los uso para ampliar entradas, utilizan una entrada al pic para recibir los datos. usea con 4 pines del pic manejas todos los registros de entrada y salida que necesites

un saludo




Yo uso el registro 74HC164 que solo tienen clock, data, y reset, y en los anteriores códigos enviaba la trama en serie de 8 bits a dicho registro y una vez hecho esto activaba la fila correspondiente así quedaba asegurado que sólo los leds correspondientes se encendieran. El problema es que el código de Suky que he adaptado a mi matriz está pensado para usar registros con esa función de STROBE, y claro, al usarlo con registros que no tienen STROBE da ese fallo de leds que debieran estar apagados estar parcialmente encendidos. A ver si puedo retocar mas el código para asegurar que la fila sólo se encienda cuando esten cargados la trama de bits en el registro. Saludos.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Matriz de leds 8X8.
« Respuesta #70 en: 31 de Enero de 2010, 20:24:32 »
Hola.

Con el 74hc164 hay que apagara todas las filas para enviar los datos, cuando hallas terminado de enviarlos, habilitas la fila correspondiente. Antes de la rutina de enviar los datos a los registros de desplazamiento, deberias poner a 0 el registro del puerto controlador de las filas.

Saludos
El papel lo aguanta todo

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #71 en: 02 de Febrero de 2010, 06:59:25 »
Solucionado, hay que ver lo que es usar unos registros u otros, lo que te puede cambiar el resultado, ya está adaptado el código para su uso con registros 74HC164, gracias MLO por tu colaboración y tambien a alogic.on  


« Última modificación: 02 de Febrero de 2010, 07:05:34 por antimason »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Matriz de leds 8X8.
« Respuesta #72 en: 02 de Febrero de 2010, 14:42:39 »
Excelente.

Muy bien trabajo antimason

Saludos
El papel lo aguanta todo

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #73 en: 02 de Febrero de 2010, 16:52:02 »
A ver si alguien me pasa una rutina para que caracteres almacenados en columnas en vez de en filas pueda pasarlos a un registro de desplazamiento, creo haber leido algo de que se coge el byte de la primera columna y se se hace AND con la primera fila, si el resultado es diferente a 0 se envíaba un 1 a DATA del registro, pero claro, ENVÍA UN SÓLO DATO, sea 1 ó 0, pero ¿como se envían los 7 bits restantes?, y los demás bytes de un caracter de 8x8. ¿O sea, como enviaría este caracter a un registro?:

00000000
00000000
11111100
00010010
00010010    ;letra A de 7x5
00010010
11111100
00000000

Desconectado antimason

  • PIC12
  • **
  • Mensajes: 81
Re: Matriz de leds 8X8.
« Respuesta #74 en: 10 de Febrero de 2010, 19:27:44 »
A ver si alguien me pasa una rutina para que caracteres almacenados en columnas en vez de en filas pueda pasarlos a un registro de desplazamiento, creo haber leido algo de que se coge el byte de la primera columna y se se hace AND con la primera fila, si el resultado es diferente a 0 se envíaba un 1 a DATA del registro, pero claro, ENVÍA UN SÓLO DATO, sea 1 ó 0, pero ¿como se envían los 7 bits restantes?, y los demás bytes de un caracter de 8x8. ¿O sea, como enviaría este caracter a un registro?:

00000000
00000000
11111100
00010010
00010010    ;letra A de 7x5
00010010
11111100
00000000


Bueno, como hasta ahora siempre había almacenado los datos a mostrar en la matriz en forma de FILAS, ahora quiero desarrollar desplazamientos de mensajes almacenados en forma de COLUMNAS. Ya he realizado una primera prueba con un dibujo estático y da un fallo, queda como efecto "ESPEJO", es decir, queda invertido el resultado respecto al dato almacenado, si esperaba esto en la matriz:

11111111
10000011
10000011
10000011
10000011
10000011
10000011
11111111

En cambio me da esto:

11111111
11000001
11000001
11000001
11000001
11000001
11000001
11111111

Ahí dejo el código y la foto de la simulación en PROTEUS por si alguien me puede ayudar y me dice donde está el fallo.
« Última modificación: 10 de Febrero de 2010, 19:36:21 por antimason »


 

anything