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

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

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #15 en: 27 de Octubre de 2007, 13:22:18 »
donde van los darlintong? esta bien todas las fila al micro? bueno en la realidad ahi les pusiera los transistores

como puedo comenzar con el desplazamiento, y el control en los 4094 para ello??
.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: De matriz de leds, a letrero electronico
« Respuesta #16 en: 27 de Octubre de 2007, 13:33:13 »
Hola Cryn!

Espero que no te enojes u ofendas por el comentario que viene a continuacion:  :(

Se me ocurre que QUIZAS te convendria comenzar con un cartel menos ambicioso y complicado hasta que logres comprender claramente como funciona ese hard y ese software. Si no vas a perder mucho mas tiempo, y seguramente los resultados no van a ser tan buenos. Esto es algo que a mi me ha pasado mas de una vez, y ahora he aprendido a ir paso a paso.

Si quieres, puedes mirar un poco un proyecto que tengo en mi pagina, donde puedes ver un "cartel" de solo 8x8, con registro de desplazamiento y unos transistores para el control de los LEDs. Este es el cartel:



Este es el circuito:



y este un video del cartelito funcionando:

En la pagina estan los fuentes de cada ejemplo en CCS, el PCB y el circuito con mas resolucion.

Cuando lo tengas bien claro, seguramente podras ampliarlo a la cantidad de filas y columnas que quieras.

¿Que te parece?  :lol:

Un abrazo.  :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #17 en: 27 de Octubre de 2007, 14:01:36 »
como ofenderme si me estas ayudadndo, y bastante, mas bein agradecerte.

miro lo que ya logre, jeje, me parece que solo tengo algun problema para desplazar, talvez me puedas guiar...



creo que voy por beun camino
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #18 en: 27 de Octubre de 2007, 14:41:17 »
ok, dare la mirada por los links de aitopes, ya los estaba viendo, recuerdo qeu los vi alguna vez, pero de pasada, ahroa los hare mas minuciosamente, tendre presente lo que mencionas micro_cadaver cuando este armando el circuito

un saludo y muchas gracias a todos
.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: De matriz de leds, a letrero electronico
« Respuesta #19 en: 27 de Octubre de 2007, 14:57:22 »
Si pensas hacer trabajar a los registros a altas velocidades(que seguro es asi) no uses la salida negada(estas usando la QS negada). Usa la QS.

Saludos.
"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 Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #20 en: 27 de Octubre de 2007, 15:13:48 »
ok ahora mismo lo cambio, vi mal, jeje, pensaba que esa era la no invertida, weno pequeño error, ya lo arregle.

tb he visto la matriz de aitopes, y pues la he comprendido, y es eso lo que hago para visualizar las letras, de forma similar doy los datos serialmente al 4094 y el puerto b me sirve para habilitar cada fila de las matrices, ahora, solo tenog cierto problema para desplazar el mensaje, pues todavia sigo trabajando en ello, os comentare mis avances, y pues cualquier consejo sera muy bueno, un saludo, muchas gracias por vuestra ayuda



pd.: este es mi post 500 :lol:, ya subi de nivel, jeje, que bueno, ya me falta poco para ser un ser supremo, jajaja (es broma) :-/
.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: De matriz de leds, a letrero electronico
« Respuesta #21 en: 27 de Octubre de 2007, 15:59:28 »
Cryn:

Lamentablemente no tengo a mano ningun video de los carteles electronicos y efectos que hacen. Justamente ahora estoy haciendo otro.

Te voy a intentar explicar cómo deberías encarar el programa.

Primero:

Definir los pines involucrados con los registros de desplazamiento:

Código: C
  1. #define  DATA    pin_a0
  2. #define  CLOCK   pin_a1
  3. #define  STROBE  pin_a2
Reservar espacio en memoria para almacenar los datos del cartel y poder manipularlos facilmente:

Código: C
  1. #DEFINE COLUMNAS 24       //Defino cantidad de columnas a usar
  2.  
  3. int8  Memoria[COLUMNAS];  //Almacena los datos a mostrar en el cartel
  4.  
  5. int8 Fila;  //Fila actual a refrescar
  6.  
  7. int8    Puntero;                   //Indica cual es la primer columna a mostrar del array Memoria.
  8.  
  9. int1    VSync;                    //Indica si es momento correcto de modificar lo que se esta mostrando...
  10.  
  11. int8   i,j;                           //Variables auxiliares
  12.  
  13. int8   Inhibit;                     //Impide que se produzcan cambios en el cartel.



Código: C
  1. //Rota a la izquierda el contenido del buffer
  2.  
  3. void rotar_izq(){
  4.     if(Puntero!=0) Puntero--; else Puntero=COLUMNAS-1;
  5. }



Código: C
  1. //Esta interrupcion debe suceder segun la cantidad de filas que tengas, y segun la cantidad de Hz a los que querés que tu cartel refresque...
  2.  
  3. #int_TIMER0
  4. void  TIMER0_isr(void)
  5. {
  6.    ShowFila();                  //Mostremos la fila actual...
  7.    Fila++;
  8.    if(Fila==8){
  9.       Fila=0;
  10.       VSync=1;
  11.       if(Inhibit!=0) Inhibit--; else rotar_izq();
  12.    }else VSync=0;
  13.  
  14. }





Código: C
  1. void main()
  2. {
  3.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32);
  4.    enable_interrupts(INT_TIMER0);
  5.    clear_interrupt(INT_TIMER0);
  6.    
  7.    enable_interrupts(GLOBAL);
  8.  
  9.    //Configuro los Puertos
  10.    set_tris_a(0);
  11.    set_tris_b(0);
  12.    
  13.    //Apago cartel
  14.    output_b(0xFF);
  15.    
  16.    //Aseguro inicialmente clock en bajo
  17.    output_low(CLOCK);
  18.    output_low(STROBE);
  19.    
  20.    //Comienzo por la 1er fila
  21.    Fila=0;
  22.    
  23.   Inhibit=20;
  24.  
  25.    //Indico que comienzo con sync.
  26.    VSync=1;
  27.  
  28.    //Esto es solamente para llenar con "algo" la matriz. Aqui deberian ir las cosas con sentido...:D
  29.    for(i=0;i<COLUMNAS;i++){
  30.       bit_set(Mensaje[i], i % 8);
  31.    }
  32.  
  33.    Puntero=0;
  34.  
  35. }





Código: C
  1. void ShowFila(){
  2.      
  3.      for(j=Puntero-1;j!=255;j--){
  4.          if(bit_test(Memoria[j],Fila)) output_high(DATA); else output_low(DATA);
  5.          output_high(CLOCK);
  6.          output_low(CLOCK);
  7.       }
  8.       for(j=COLUMNAS-1;j!=Puntero-1;j--){
  9.          if(bit_test(Memoria[j],Fila)) output_high(DATA); else output_low(DATA);
  10.          output_high(CLOCK);
  11.          output_low(CLOCK);
  12.       }
  13.    
  14.    bit_set(
  15.    output_b(0xFF);
  16.  
  17.    bit_clear(portb,Fila);
  18.  
  19.    output_high(STROBE);
  20.    output_low(STROBE);
  21. }

Bueno esta es, para mi, la forma óptima de establecer y rotar una matriz: con punteros. Algunos podrán desplazar todo el contenido del array un lugar a la derecha. Eso hace el código más simple,pero lleva muchísimo mas tiempo de procesado.

A esto lo tome del cartel que estoy haciendo yo, pero lo modifique un poco para tus necesidades. Espero se entienda algo...Ando medio apurado...Si llego te armo el .c  asi lo podes simular.

Saludos!

P.D. Felicitaciones x los 500.
« Última modificación: 27 de Octubre de 2007, 16:03:25 por BrunoF »
"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 Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #22 en: 28 de Octubre de 2007, 10:50:38 »
ok, intentare entenderlo, pues con una leida no esta muy claro, seguire veindo tu codigo

muchas garcais por la yuda, un saludo
.

Desconectado LABmouse

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: De matriz de leds, a letrero electronico
« Respuesta #23 en: 28 de Octubre de 2007, 11:07:20 »
Que linda matriz de 8x8 Aitopes!!!!  :-/

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: De matriz de leds, a letrero electronico
« Respuesta #24 en: 28 de Octubre de 2007, 16:10:11 »
Gracias Ernesto!
Esta semana pienso ponerle horas al proyecto y escribir algo mas de codigo para él. La idea es que sirva de ejemplo justamente para los que quieren hacer algun cartel del LEDs.

Saludos!  :mrgreen:

PD: Si gustas (o alguien mas!) escribir algun ejemplo, con gusto lo pruebo y pongo en la pagina!  :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #25 en: 28 de Octubre de 2007, 18:36:16 »
ok, seria buenisimo, yo aca esperando con ansias el algoritmo que prometiste aitopes, que no se te olvide, jejeje

y sigo intentando con lo del desplazamiento, como te mencione, he visto la matriz que hiciste y la he cmprendido, pero todavia no me ubico en el desplace

venga que esperamos vuestros aportes

un saludo mg
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #26 en: 20 de Diciembre de 2008, 20:06:49 »
Reviviendo nuevamente el tema que cree hace ya más de un año, porque no pude dedicarle tiempo lo tenía pendiente.

Ahora ya he avanzado algo, he comprendido el manejo y también el hardware viendo algunos otros hilos del foro. Logré realizar el desplazamiento de un texto, lo hice rotando los datos de un array, no me siento conforme con eso, pues como mencionó bruno no es la mejor forma, y he intentado simualr el código que dejo y no me da resultado, no he comprendido del todo las operaciones en la función ShowFila.

Nose si alguien ha desplazado un texto de cartel de LED's utilizando punteros

muchas gracias, un saludo
.

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: De matriz de leds, a letrero electronico
« Respuesta #27 en: 20 de Diciembre de 2008, 20:38:25 »
Hola Cryn!
Yo tengo un codigo por aca q hice hace tiempo ya, te lo adjunto asi le pegas una mirada. No lo hice con punteros, lo q hago es dibujar un arreglo en la matriz, y si quiero desplazarlo, trabajo sobre el arreglo. Quizas no sea lo mas eficiente, pero soluciona muchos problemas a la hora de querer hacer efectos, como un negativo, desplazar de forma vertical, o si queres hacer un juego.
Espero q lo entiendas porq no esta bien comentado, y estoy un poquito ocupado para hacerlo ahora :S cualquier cosa cuando ya tenga mas tiempo me pongo a hacerlo como vos pedis a ver si sale ;)
saludos y ojala te sirva!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

jacrmr

  • Visitante
Re: De matriz de leds, a letrero electronico
« Respuesta #28 en: 20 de Diciembre de 2008, 20:40:50 »
El problema no es sólo desplazar el mensaje sino, ¿qué pasará cuando quieras hacer un spin con el mensaje dando vueltas, digamos a manera de hélice, o algún otro tipo de animación que se te ocurra? ¿y si cambia después el texto? No es práctico ni funcional (yo creo que ni posible por lo tedioso y el tiempo involucrado) en crear un algoritmo para cada animación a visualizar, ni mucho menos en guardar cada animación en una eeprom. Desafortunadamente ese es el gran problema de los anuncios de leds de éste tipo, ya que la matriz de leds está íntimamente ligada al proceso de la generación de los mensajes. Lo ideal es que sean dos cosas separadas y que no tengan conocimiento entre sí: que la matriz de leds no reconozca ningún carácter, sólo unos y ceros, y que el generador de animaciones desconozca que "tiene" que manejar una matriz de leds. De esta forma la matriz hace su trabajo electrónico y la animación hace su trabajo en software, pudiendo hacerse en Adobe Premiere, Flash, etc.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #29 en: 20 de Diciembre de 2008, 20:47:05 »
gracias por el código gera, lo estudiaré.

Desafortunadamente ese es el gran problema de los anuncios de leds de éste tipo, ya que la matriz de leds está íntimamente ligada al proceso de la generación de los mensajes. Lo ideal es que sean dos cosas separadas y que no tengan conocimiento entre sí: que la matriz de leds no reconozca ningún carácter, sólo unos y ceros, y que el generador de animaciones desconozca que "tiene" que manejar una matriz de leds. De esta forma la matriz hace su trabajo electrónico y la animación hace su trabajo en software, pudiendo hacerse en Adobe Premiere, Flash, etc.
suena muy interesante lo que dices jacrmr, pero y eso como se podría lograr? esta mal el hardware o el software para hacer algo como dices? cual sería el hw y sw?
.