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

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

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: De matriz de leds, a letrero electronico
« Respuesta #255 en: 07 de Enero de 2010, 20:41:05 »
Hola.

Yo lo que hago es mover el contenido de la n a la fila n-1 por medio de un ciclo for.

Saludos
El papel lo aguanta todo

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: De matriz de leds, a letrero electronico
« Respuesta #256 en: 07 de Enero de 2010, 22:02:40 »
Mas o menos como dice MLO_, lo único es que hay que agregar un enmascaramiento que dependerá de la posición que lleve el mensaje en el eje vertical para apagar los leds "debajo" del mensaje y lograr una entrada limpia. Hay que tener bastante "imaginación" para lograr estos efectos  :tongue:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: De matriz de leds, a letrero electronico
« Respuesta #257 en: 07 de Enero de 2010, 22:31:12 »
Hola a todos.

Repito: A mi parecer, la mejor manera de trabajar, es utilizando como unidad de memoria el eje de la matriz con menor cantidad de elementos. En estos carteles pasamensajes, eso seria hacerlo por columnas.

Fijense que si lo hacen por filas, la particion de la matriz se hace bidimensional, mientras que mapeandolo por columnas, es unidireccional. Además, cualquier operación que se realice sobre un elemento de 32 bits o bidireccional, resulta mucho más costosa para el compilador. Van a consumir la ROM del PIC mucho más rápido, excepto esten trabajando con uC nativos de 16 o 32 bits.


Con respecto al efecto de desplazamiento vertical. Por ejemplo, para levantar un texto que se esta mostrando, siempre y cuando hayan acomodado los datos por columnas como a mi me parece conveniente, solo basta con rotar a la izquierda cada una de los elementos(columnas). Si organizaron los datos de manera horizontal, la cosa no es tan sencilla pero puede hacerse. En el grafico puede verse que en ese caso habria que comenzar haciendo que Elemento 0 = Elemento 3, Elemento 1= Elemento 4, Elemento 2= Elemento 5, Elemento 3 = Elemento 6, Elemento 4= Elemento 7,etc...

Saludos.

« Última modificación: 07 de Enero de 2010, 22:34:40 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 smarkol

  • PIC10
  • *
  • Mensajes: 20
Re: De matriz de leds, a letrero electronico
« Respuesta #258 en: 08 de Enero de 2010, 15:34:58 »
ok, voy a tratar de hacer lo que me sugieren, despues les comento.

Desconectado smarkol

  • PIC10
  • *
  • Mensajes: 20
Re: De matriz de leds, a letrero electronico
« Respuesta #259 en: 12 de Enero de 2010, 12:54:36 »
hola Suky , cuando te refieres a enmascarar te refieres a crear otra matriz que se puerponga a la matriz que contiene los datos ??por ejemplo:

Matriz1 -> Matriz de datos(nuestros Mensajes)

Martriz2-> Matriz con ceros o unos (para enmascarar)

y Con respecto a lo que planteas BrunoF, me gustaria si pudieras expandirte en el tema, la verdad que no me queda muy claro..

Desconectado smarkol

  • PIC10
  • *
  • Mensajes: 20
Re: De matriz de leds, a letrero electronico
« Respuesta #260 en: 25 de Enero de 2010, 17:15:11 »
Hola a todos, bueno he tratado de realizar el efecto vertical , y he sacado la idea del codigo de JMCS87 , pienso que este podria ser un primer acercamiento , adjunto los codigo y el archivo en proteus 7.6 sp0, para que puedan darme sus comentarios ..

Desconectado Strepto

  • PIC16
  • ***
  • Mensajes: 159
    • Pictronics
Re: De matriz de leds, a letrero electronico
« Respuesta #261 en: 19 de Marzo de 2010, 09:50:25 »
Buenas!

Con tanto ver matrices de leds hasta en la sopa, me decidido a empezar yo tambien con ellas. Y mi circuito ha quedado tal que asi:



De momento no es mas que en una matriz de 8x8, en la cual la informacion se envia por columnas y los leds se activan a nivel bajo (por 0).

El programa esta hecho en basic con proton
Código: [Seleccionar]
           Device 16F876
            
            Dim i As Bit
            Dim aux As Byte
            Dim cont As Word
            Dim cont2 As Word
            Dim A As Word
            Dim B As Word
            Dim repeticiones As Word
            
            TRISB = %00000000
            TRISC = %00000000
            PORTB = 0
            TRISC = 0
Repite:     i = 0            
            cont = 0
            cont2 = 0
            aux = 0
            A = 0
            B = 7
                                                                  
            While i < 1                                                            
                For repeticiones = 0 To 12    'numero maximo de repeticiones
                    For cont = A To B          
                        PORTB = LookUp cont,[$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$80,$F7,$F7,$F7,$80,$FF,$F1,$EE,$EE,$EE,$F1,$FF,$BE,$80,$FE,$FF,$FD,$EA,$EA,$EA,$F0,$FF,$FF,$FF,$FF,$FF,$FF,$FF]                        
                        aux = cont - cont2
                        PORTC = aux
                        DelayMS 1
                        PORTB= $FF
                        DelayMS 1
                    Next
                Next    
                
                Inc A
                Inc B
                Inc cont2
                
                If B = 36 Then   'longitud frase
                    cont2 = 0
                    A = 0
                    B = 7
               End If              
                                                  
            Wend i
                  
            End

Pero claro, esto tiene un inconveniente; como quiera mostrar textos largos, el lookup seria infinitamente largo y ocuparia mucha memoria sin contar que el proton no permite lineas con mas de 250 caracteres, por lo que me queda hacerle un pequeño apaño al programa para hacer lectura de datos de una eeprom.

Un saludo!

PD: Adjunto la simulacion con el hex por si alguien quiere probarlo y una tabla excel que se comenta en este post.

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: De matriz de leds, a letrero electronico
« Respuesta #262 en: 27 de Marzo de 2010, 21:51:30 »
Hola mikele, no hace falta colocar los métodos en el bucle infinito, porque la interrupción por el timer0 llamará a los métodos correspondientes para cargar la letra y desplazar.

Sobre la simulación en proteus, para el código que hice, me quedó el circuito que dejo adjunto, creo que se me olvidó colocarlo antes.

Espero te sirva, saludos.

No puedo abrir con proteus 7.4 tu archivo. Gracias
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #263 en: 28 de Marzo de 2010, 11:14:01 »
zagoaristides, yo usé seguramente una versión superior, la 7.5 o 7.6 si existía ya la última para esas fechas.

Prueba conseguir la versión de prueba u otro de la última versión de proteus y seguramente que lo podrás abrir.

Strepto, Se ve muy bien tu primer paso, a ver cunado nos sorprendes con un cartel.

saludos.
.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: De matriz de leds, a letrero electronico
« Respuesta #264 en: 28 de Marzo de 2010, 12:00:34 »
zagoaristides, yo usé seguramente una versión superior, la 7.5 o 7.6 si existía ya la última para esas fechas.

Prueba conseguir la versión de prueba u otro de la última versión de proteus y seguramente que lo podrás abrir.

Strepto, Se ve muy bien tu primer paso, a ver cunado nos sorprendes con un cartel.

saludos.



Cryn, al guardarlo puedes elegir versión compatible con 7.x o algo así. Digo, porque yo usando la 7.4 no pasaría a una más actual  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado Strepto

  • PIC16
  • ***
  • Mensajes: 159
    • Pictronics
Re: De matriz de leds, a letrero electronico
« Respuesta #265 en: 28 de Marzo de 2010, 12:48:00 »
...
Strepto, Se ve muy bien tu primer paso, a ver cunado nos sorprendes con un cartel
...

En cuanto saque un poco de tiempo para modificar el programa y asi hacer la lectura de la eeprom, empezare a pensar en montar algun cartelito o algo por el estilo xDD

Un saludo!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #266 en: 29 de Marzo de 2010, 00:08:24 »
Cryn, al guardarlo puedes elegir versión compatible con 7.x o algo así. Digo, porque yo usando la 7.4 no pasaría a una más actual  :mrgreen:
esa no la sabía, cambiado entonces, gracias por el dato suky

Como no se puede modificar lo dejo por acá nomas

saludos.
.

Desconectado fgaretto

  • PIC10
  • *
  • Mensajes: 33
    • Automatización y sistemas de control - Desarrollos con microcontroladores
Re: De matriz de leds, a letrero electronico
« Respuesta #267 en: 16 de Abril de 2010, 16:44:45 »
Según Pacmer: " entiendo como enviar ceros y unos de acuerdo a los programas de aitopes, pero no se como implementarlo a mi programa, por cierto yo no lo hago como cryn que ya tiene fuentes,  Sad, solo lo hago leyendo direccion por direccion de la memoria"
Yo lo hago de la misma manera. Tengo una matriz (en Proteus) de 8x24 + 1 eeprom 24Lc256 + 3 registros 4094.
Lo que se hace muy tedioso es armar las "pantallas" en Excel y luego generar el archivo .bin con Winpic (pasando byte x byte).
Les adjunto el  archivo de proteus, el .c(de CCS), el hex, la planilla de Excel y el .bin para la EEprom.
Mi pregunta es: hay alguna forma más sencilla de realizarlo ?
Desde ya muchas gracias a todos y este foro me ayudo mucho.
Saludos.
Fernando.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #268 en: 16 de Abril de 2010, 18:52:13 »
Claro que hay una forma más sencilla, la que propuse en este hilo, con ayuda de MLO__ que me dio un código que él hizo y yo tras entender como funcionaba lo modifique en algunas cosillas para adaptarlo a lo que estaba necesitando.

Eso consiste en simplemente guardar el mensaje como string o cadena de caracteres, es decir los códigos ASCII de cada letra del mensaje, y el soft se encarga de decodifcar ello a caracteres en el cartel de leds.

Todas las letras del abecedario tanto mayúsculas como minúsculas, y algunos signos los debes definir bit a bit de preferencia en la flash como constantes y tu string se encarga de cargar las letras correspondientes.

En C de CCS me parece relativamente sencilla esta tarea, en ASM quizá sea algo más trabajado.

Cargar todo el mensaje bit por bit en una eeprom es completamente antipaciencia :lol:, creo que la mejor manera es usar el código ascii y tener el abecedario en tu eeprom, o en un otro mejor lugar.

saludos.
.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: De matriz de leds, a letrero electronico
« Respuesta #269 en: 16 de Abril de 2010, 21:21:44 »
Yo lo hago como comenta Cryn, y utilizando las misma fuente de las librería graphics de CCS:


Código: C
  1. char _Character;
  2.  
  3.  
  4.    _Character=read_ext_eeprom(OffsetMessage);
  5.    for(k=0;k<LenghtMessageCurrent;k++){
  6.       if(_Character<'S'){
  7.          memcpy(&BufferMessage[k],FONT[_Character-' '],5);
  8.          k+=5;
  9.       }else if(_Character<'~'){
  10.          memcpy(&BufferMessage[k],FONT2[_Character-'S'],5);
  11.          k+=5;
  12.       }else{
  13.          memcpy(&BufferMessage[k],FONT[0],5);
  14.          k+=5;
  15.       }
  16.       _Character=read_ext_eeprom_current_address();
  17.   }


En la eeprom solo está guardado el string.


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything