Autor Tema: De matriz de leds, a letrero electronico  (Leído 295234 veces)

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

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: De matriz de leds, a letrero electronico
« Respuesta #210 en: 20 de Diciembre de 2009, 16:12:37 »
Muy buen publik te quedó MLO__ es de 16filas? modificaste o te creaste las matrices en el proteus?

AKENA, en algún momento dije que el uso que hice de una matriz o arreglo bidimensional un poco más grande en tamaño a la matriz real; era una manera no muy buena de solucionarlo, porque los algoritmos algo complejos que se llegan a tener para distintos efectos. Pero BrunoF me dio una mejor manera de manejar los datos con la misma cantidad de datos en RAM, usando solamente arreglos unidimensionales. una explicación corta está en el link que ya estuviste viendo anteriormente.

Aunque de la manera que lo hice sirve para aprender :mrgreen:

Espero te sirva, saludos.

Pues mi mensaje es unidimensional.  
Código: [Seleccionar]
char mensaje[10]={" MENSAJE "}luego tomo cada BYTE del mensaje y decodifico,después cargo mi buffer con sus 5 BYTES correspondientes
Código: [Seleccionar]
letras[27][5]={

//M
{
0x04,034,0x54,0xfe,0x3c
},
....letra N....O
}

Código: [Seleccionar]
char buffer[80];    //añmacena 80 columnas

Y en buffer tengo todo el mensaje por columnas.

Despues solo voy llamando de columna en columa

como solo tengo 5 columnas

voy apuntando al buffer.

Pero todavia estoy tierno >_<

A ver que sale xD :D
 
« Última modificación: 20 de Diciembre de 2009, 16:15:35 por AKENAFAB »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: De matriz de leds, a letrero electronico
« Respuesta #211 en: 20 de Diciembre de 2009, 20:52:44 »
Ah, ya.

Yo lo hago por filas, ya que de aumentar el numero de columnas el tiempo de visualización se vería afectado.

Saludos
El papel lo aguanta todo

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #212 en: 20 de Diciembre de 2009, 21:01:53 »
Si el mensaje que yo usaba también era unidimensional, no me refería a eso

Sino que use un arreglo bidimensional para representar a cada led físico del cartel donde decodificaba el mensaje, y esa forma no es muy correcta, sino usar un arreglo unidimensional para decodificar también.

Saludos.
.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #213 en: 24 de Diciembre de 2009, 03:01:27 »
Que tal?

Cryn, como podrias aumentar el numero de filas? Es algo facil? Porque para aumentar el numero de columnas solo es colocar el ultimo pin de los 74HC164 con otros y asi sucesivamente verdad? Pero para las filas lo veo algo dificil o no se me ocurre algo rapido.


Bueno, gracias.
Salu2.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #214 en: 24 de Diciembre de 2009, 11:37:07 »
Tendrías que tener más pines extra del micro, para manejar cada fila extra

O podes también manejarlo con un registro de desplazamiento, con 2 registros ya tenes para 16 filas.

Después tendrías que modificar los caracteres para que sean de 15, 16 ó la cantidad que uses de filas.

Y listo, la idea para cargar, mostrar y desplazar seguiría siendo la misma

Aunque quizá el arreglo bidimensional ya no sería muy adaptable... habría que pensar en ello, o quizá modificar un poco la forma de guardar las letras decodificadas y la forma de tratarlo, y usar directamente un arreglo unidimensional de int16.

Que estas planeando jeremylf?
.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #215 en: 24 de Diciembre de 2009, 15:57:07 »
Si, lo que mas me tiene pensando es en q tanto habria q modificar el programa, porque lo de usar registros de desplazamiento para las filas es de echo, ya que pienso hacer una matriz de masomenos 24x24 o mayor.

No estoy seguro todavia si lo hare, pues antes quiero asegurarme bien de ello antes decomenzar a soldar y todo... ya saben.


Gracias cryn, seguire viendo haber que tanto ay q hacer, salu2.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: De matriz de leds, a letrero electronico
« Respuesta #216 en: 24 de Diciembre de 2009, 16:11:18 »
Hay que tener en cuenta el tiempo de refresco para las filas. Lo que habría que hacer es generar la tabla de valores y enviar el valor hexa correspondiente a los registros, no se ve complicado hacerlo.

El papel lo aguanta todo

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #217 en: 24 de Diciembre de 2009, 21:18:51 »
Si, bueno e estado intenado cambiar el uso de todo el puerto B por un registro de desplazamiento para el control de las filas pero sin conseguir bueno resultados. Haber si le pueden dar una revisada, dejo todo adjuntado (c, hex, sim en proteus)

Gracias.
Salu2.
« Última modificación: 24 de Diciembre de 2009, 21:44:00 por jeremylf »

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #218 en: 24 de Diciembre de 2009, 22:42:11 »
Bueno, basicamente ese cambio se encuentra en la rutina ShowFila(). Hasta ahora lo tengo asi:

Código: [Seleccionar]
void ShowFila(void)
{
   int i;

   //output_b(0x0);
   for (i = 0; i < 5; i++) // 5 = numero de matrices usado
   {
      cargar(matriz[i][Fila]);
   }   
   //bit_set(portb,fila);
   
   output_low(clock2);
   delay_cycles(2);
   
   if (Fila == 0)
   {
      output_bit(dato2, 1);
   }
   else
   {
      output_bit(dato2, 0);
   }
     
   output_high(clock2);
   delay_cycles(1);
   output_low(clock2); 
   
}

Que me muestra con algunos fallos el mensaje, nose que estara mal... Dejo la simulacion con lo demas para que me entiendan, almenos ya me estoy acercando =D


Salu2.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #219 en: 24 de Diciembre de 2009, 23:01:10 »
Ya, ya me salio =D

Dejo de nuevo todo  :-/

Aclarar que esto es lo mismo que hizo Cryn pero con la modificacion del uso de registros de dezplazamiento para las filas, para que se pueda hacer mas de las tipicas 8 filas... haber que sale  :mrgreen:

Salu2.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #220 en: 25 de Diciembre de 2009, 14:46:19 »
Bueno, he aumentado a 16 filas haciendo los cambios necesarios, tanto en la interrupcion del timer como en ShowFila() y me muestra lo mismo solo que un poco adelantado por decirlo de alguna manera. Pense que mientras el tamaño de las letras no sobrepasaria las 8 filas, en estas 8 nuevas no deberia verse nada, pero nose que pueda estar pasando...  a esto temia, creo que se debe de modificar mas el programa en cuanto a la carga de las matrices y eso para que se muestre bieen. De todas formas dejo la simulacion otra ves (pero esta ves mas ordenado =D) trabajando a 16 filas x 24 columnas.


Salu2.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: De matriz de leds, a letrero electronico
« Respuesta #221 en: 25 de Diciembre de 2009, 15:54:04 »
Lo que esta pasando es que tenes conectados los registros de desplazamiento en cascada,y si no cargas adecuadamente los registros, los datos "viejos" se van pasando al registro de abajo, generando una imagen igual, pero segun mis calculos, atrasada en 8 columnas con respecto a la original.

Un saludo.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: De matriz de leds, a letrero electronico
« Respuesta #222 en: 25 de Diciembre de 2009, 16:03:39 »
La mejor forma de cargar las filas(y la mas rapida) es haciendo lo siguiente:

(supongo que la fila a encender se conecta a los anodos de los LEDs. Es decir, un 1 "conecta", un 0 "desconecta" la fila).

Cargar inicialmente el valor 00000000 00000000 en los registros por unica vez.
En el primer refresco, cargar solo un 1. Esto produce que en los registros se refleje el valor: 10000000 00000000
En el segundo, cargar un 0. Esto produce: 01000000 00000000
En el tercero, cargar otro 0. Esto produce: 00100000 00000000
Continuar inyectando ceros, hasta que sea turno de la primera fila nuevamente. En aquel momento debera inyectarse nuevamente otro 1.

Algoritmicamente:

Si fila es una variable que se incrementa cada vez que es momento de refrescar la proxima fila:

Cuando el programa inicia, cargar el valor 0x0000 en los registros de las filas para apagar todo e inicializar el estado logico de la matriz.

Dentro de la rutina de refresco de fila:
Si fila=0 inyecto un 1; sino inyecto un 0.
Si fila es menor a 16, incremento fila. Sino fila=0

Deberia funcionar y creo que es lo mas eficaz.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #223 en: 25 de Diciembre de 2009, 17:11:46 »
Eso lo hice en un principio pero es necesario apagar todas las filas antes de cargar los valores de las columnas, entonces no se podria hacer eso... por eso uso el pin de reset para setear todas las filas y luego con un for poner en 1 la fila a la que corresponda, pero siempre en cada refresco de columna, antes apago todas las filas. Sino, la imagen se muestra un tanto mal echa.. ni idea de porque. Pero ese no es el problema, pues creo que aun debo de agrandar el tamaño de las matrices de los fonts para que en la segunda fila no muestra nada verdad?


Bueno, gracias Bruno, seguire n esto.
Salu2.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: De matriz de leds, a letrero electronico
« Respuesta #224 en: 25 de Diciembre de 2009, 19:17:12 »
Estoy intenado poner correctamente el uso de solo 24 columnas y no de 48, ocea disminuyendo la matriz y todo eso, pero no me funciona del todo. He modicado unas variables tambien en el funcion desplazar_izq() pero sigo con lo mismo, este codigo es tuyo verdad Bruno? Sabes cuales son las modificaciones correctas para que trabaje a 8x24 ??

Dejo adjunto si sirve de algo.

Gracias, salu2.


 

anything