Autor Tema: Matriz de LEDS de 8x8  (Leído 90248 veces)

RUSO 15

  • PIC10F
  • *
  • Mensajes: 84
Re: Matriz de LEDS de 8x8
« Respuesta #30 en: Febrero 21, 2011, 06:08:06 pm »
disculpa Ariel, ¿vos me podes ayudar con el inconveniente q tengo?(mencionado en mi mensaje anterior).Estoy haciendo el programa con el pic simulator ide, desde ya gracias.

Por favor lee las Reglas del Foro, punto 2.

Después de la primer demora de 6mS, haces que RA1, sea entrada... ¿eso es correcto? ¿no debería ser salida? lo pregunto desde el desconocimiento del PSI, pero tratando de ayudarte, lo aclaro para que no te enojes, ya que te noto medio nervioso ;)

HJ no piense mal de mi, yo me dirigi a Ariel con la intención de que me ayudase porque según entiendo el inició esta sección (el proyecto de matriz de leds de 8x8), por favor no crea que yo estaba exigiendolé una respuesta.
RA.1 la configuré como entrada por suponer que los datos ingresan (solamente realizo la lectura de algo que ya está grabado), al pic desde la memoria, tal vez estoy equivocado.
saludos

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Matriz de LEDS de 8x8
« Respuesta #31 en: Febrero 21, 2011, 06:34:48 pm »
HJ no piense mal de mi, yo me dirigi a Ariel con la intención de que me ayudase porque según entiendo el inició esta sección (el proyecto de matriz de leds de 8x8), por favor no crea que yo estaba exigiendolé una respuesta.
No hay drama, todo bien.

RA.1 la configuré como entrada por suponer que los datos ingresan (solamente realizo la lectura de algo que ya está grabado), al pic desde la memoria, tal vez estoy equivocado.
El echo está en que sda es el canal donde viajan los datos y para solicitar el envío de datos por parte de la eeprom, debes enviar un comando desde el micro a la eeprom. Prueba con configurarla como salida. (ojo, no sé como trabaja internamente esa rutina del PSI)
"si te lo dicen se te olvida, si lo lees lo aprendes; pero si lo haces realmente lo entiendes"
"Cuando llegue la inspiración, que me encuentre trabajando" [Pablo Picasso]

RUSO 15

  • PIC10F
  • *
  • Mensajes: 84
Re: Matriz de LEDS de 8x8
« Respuesta #32 en: Febrero 21, 2011, 07:23:07 pm »
joya, la voy a configurar como salida, para ver que pasa, después comento,
saludos

RUSO 15

  • PIC10F
  • *
  • Mensajes: 84
Re: Matriz de LEDS de 8x8
« Respuesta #33 en: Febrero 21, 2011, 07:36:58 pm »
la puse como salida y simulé en psi, y sigue funcionando, pero cargo el programa en el proteus y no logro que el led me indique si se realiza la lectura, como no se me ocurre que hacer (tengo muy pocos conocimientos), voy a comprar la memoria y voy a probar en protoboard siguiendo las instrucciones al principio, espero tener suerte
saludos

Ivan

  • Amigo de uControl
  • PIC16F
  • ******
  • Mensajes: 553
Re: Matriz de LEDS de 8x8
« Respuesta #34 en: Febrero 22, 2011, 09:10:55 am »
Fijate que cuando pones en pausa la simulacion podes ver (no me acuerdo si editar tambien) el contenido de la memoria, asi te aseguras de que el dato que vos queres esta ahi.
¿Qué es un circuito?
Es un lugar donde hay elefantuitos, caballuitos, payasuitos...

RUSO 15

  • PIC10F
  • *
  • Mensajes: 84
Re: Matriz de LEDS de 8x8
« Respuesta #35 en: Febrero 23, 2011, 03:26:00 am »
veo la hoja de los datos almacenados (de la memoria 24c256 en proteus) y está vacía, no muestra lo que yo le cargo, caso contrario a lo que sucede en el psi, donde veo que la memoria contiene los datos que cargué.
 Gracias, por tu resp, staba probando modificar las conexiones pero nunca me iba a dar, tengo que ver como puedo editar la memoria en el proteus (hasta ahora no pude), o crear el archivo en binario para cargarlo en la memoria.
 Probé con el winpic escribiendo los datos como si fuera a quemar una 24c256 y guardé el archivo como .bin, pero el proteus me sigue indicando que la memoria está vacía.
Traté de enviarle un byte con el mismo pic (i2cwrite) pero tampoco tengo resultados
favorables.
Saludos

Ivan

  • Amigo de uControl
  • PIC16F
  • ******
  • Mensajes: 553
Re: Matriz de LEDS de 8x8
« Respuesta #36 en: Febrero 23, 2011, 10:12:55 am »
Primero tener que poner el archivo en la memoria, despues grabar un contenido y luego lo podes leer.
« Última modificación: Febrero 23, 2011, 10:22:57 am por Ivan »
¿Qué es un circuito?
Es un lugar donde hay elefantuitos, caballuitos, payasuitos...

RUSO 15

  • PIC10F
  • *
  • Mensajes: 84
Re: Matriz de LEDS de 8x8
« Respuesta #37 en: Febrero 23, 2011, 11:45:44 am »
si amigo es lo que hice, primero crear algo para poder leerlo, de todos modos ya fue porque no le encontré la vuelta con el proteus.
Me empaqué y recién vengo de mza, con la famosa 24c256, la armé en protoboard con el pic y un sencillo programita que le graba un dato y después lo lee, almacena en un byte dentro del micro, y si hay igualdad en valores (comparo el byte que le escribo a la memoria, con el byte leido posteriormente en la misma dirección),el led enciende y apaga, ahora tengo que sumarle a la matriz esta memoria, porque con la capacidad del pic solo logré meter a lo sumo una palabra de siete caracteres que se desplaza de izquierda a derecha, y que vuelve a repetir el ciclo.

Gracias por responder,
saludos. (F9)


toti97

  • PIC10F
  • *
  • Mensajes: 7
Re: Matriz de LEDS de 8x8
« Respuesta #38 en: Mayo 31, 2011, 12:52:21 pm »
Hola!!
Yo hice la matriz de 8x8, pero separando los leds en un pcb y los demas componentes en otro..
Hasta ahora no pude probarla porque no tengo un progamador. Pero quiero ir haciendo el codigo para apenas conseguir uno, poder grabarlo y probar todo..

En el tutorial explica como programar el pic en CCS. Pero yo entiendo mejor Basic. Alguien me explica como hacerlo en ese lenguaje?? Por ejemplo con el texto "Tobias" apareciendo letra por letra..
Muchas gracias!


Editado: no hace falta poner todo en negrita  :police:
HJ
« Última modificación: Mayo 31, 2011, 01:41:35 pm por HJ »

toti97

  • PIC10F
  • *
  • Mensajes: 7
Re: Matriz de LEDS de 8x8
« Respuesta #39 en: Junio 02, 2011, 01:44:58 pm »
Buenas..

Yo hice este codigo para la matriz de 8x8. Cuando lo simulo en PIC SIMULATOR IDE, el pin 1 del PORTA (que es el que manda los bits al registro de dezplazamiento) siempre esta en 1. Osea, van a estar todos los leds prendidos.

Este es el programa:

PORTA = 0
CMCON = 7  'Configuro PORTA como Digital I/O

'Configuro el portA:
TRISA.0 = 0  'Salida CLOCK
TRISA.1 = 0  'Salida DATA

'Configuro el portB:
TRISB.0 = 0  'Salida (Fila 1)
TRISB.1 = 0  'Salida (Fila 2)
TRISB.2 = 0  'Salida (Fila 3)
TRISB.3 = 0  'Salida (Fila 4)
TRISB.4 = 0  'Salida (Fila 5)
TRISB.5 = 0  'Salida (Fila 6)
TRISB.6 = 0  'Salida (Fila 7)
TRISB.7 = 0  'Salida (Fila 8 )

'Simbolos
Symbol clock = PORTA.0
Symbol data = PORTA.1
Symbol fila1 = PORTB.0
Symbol fila2 = PORTB.1
Symbol fila3 = PORTB.2
Symbol fila4 = PORTB.3
Symbol fila5 = PORTB.4
Symbol fila6 = PORTB.5
Symbol fila7 = PORTB.6
Symbol fila8 = PORTB.7
clock = 0
data = 0

'Declaracion de variables
Dim col As Byte
Dim aux As Word

PORTB = 255  'Apago todas las filas antes de comenzar

'---------BUCLE PRINCIPAL------------
loop:
aux = %00111100
Gosub escribo
fila1 = 0
WaitMs 2
fila1 = 1

aux = %01111110
Gosub escribo
fila2 = 0
WaitMs 2
fila2 = 1

aux = %11011011
Gosub escribo
fila3 = 0
WaitMs 2
fila3 = 1

aux = %11111111
Gosub escribo
fila4 = 0
WaitMs 2
fila4 = 1

aux = %10111101
Gosub escribo
fila5 = 0
WaitMs 2
fila5 = 1

aux = %11000011
Gosub escribo
fila6 = 0
WaitMs 2
fila6 = 1

aux = %01111110
Gosub escribo
fila7 = 0
WaitMs 2
fila7 = 1

aux = %00111100
Gosub escribo
fila8 = 0
WaitMs 2
fila8 = 1

Goto loop

End                                               

'Subrutina que llena el registro de dezplazamiento
escribo:
For col = 1 To 8
If aux.15 = 0 Then
data = 1
WaitUs 2
clock = 0
WaitUs 2
clock = 1
WaitUs 2
Else
data = 0
WaitUs 2
clock = 0
WaitUs 2
clock = 1
WaitUs 2
Endif
aux = ShiftLeft(aux, 1)
Next col


Esto lo adapte de un codigo ejemplo de la matriz de 7x32, asi que seguro que me falto cambiar algo. Alguien me ayuda?? :duda Y de paso me explica la rutina que llena el registro de desplazamiento, xq no la entiendo muy bien.  :rolleyes2:

Muchas graciass!

arieldarkpunk

  • PIC10F
  • *
  • Mensajes: 2
Re: Matriz de LEDS de 8x8
« Respuesta #40 en: Junio 25, 2011, 11:55:56 pm »
Estimados, me presento, mi nombre es ariel y estube revisando los multiples posts con respecto al tema de las matrices y demases, estoy cursando electronica en un instituto y como proyecto quise hacer una matriz de led`s, pero e tenido bastantes dificultades con el tema de la programacion, ya que segun estandar solo debo usar asembler, lo cual me dificulta aun mas el problema la idea es que al recibir un pulso en el puerto A, RB0 se muestre X mensaje, a nivel fisico ya esta avanzado, e conectado el PIC16F873 a los 74164 para crear el registro de desplazamiento y las not a la salida para tener el pulso constante para que el clock haga el barrido, pero al momento de la programacion quedo nulo, e buscado por mil y un foro como poder programarlo en asembler pero no e tenido exito, tengo la secuencia lista para correr el mensaje deseado o al menos por lo que e leido ya tengo la idea, pero aun asi tengo muchos problemas, por ende, estoy aqui ante ustedes, solicitando la ayuda respectiva al caso, si es que alguno posee alguna programacion en asembler sobre matrices o si es que me pueden guiar para poder programar lo que necesito .... realmente este tema me esta provocando muchisimos problemas ..... les estare eternamente agradecido de tomar en cuenta mi solicitud.... :titanic

Sin otro particular y nuevamente de ante mano muy agradecido
se despide un tecnico que desea llegar a ingeniero

Saludos...... :pared
"la valia de un hombre se mide por la cuantia de soledad que le es posible sopotar"
Friedrich Nietzsche

вoяяe

  • .::. µPraxis .::.
  • Amigo de uControl
  • PIC18F
  • ******
  • Mensajes: 1346
  • вoяяe
    • вyвoяяe
Re: Matriz de LEDS de 8x8
« Respuesta #41 en: Junio 26, 2011, 01:37:00 am »
Hola arieldarkpunk bienvenido al foro, yo de ASM ni idea, pero aquí Suky a echo un buen material de lectura, espero te saque de apuros.

Saludos!!!  :bang:
La electrónica es simple, puedes aprenderla en 100 simples lecciones, una lección cada año.

arieldarkpunk

  • PIC10F
  • *
  • Mensajes: 2
Re: Matriz de LEDS de 8x8
« Respuesta #42 en: Junio 26, 2011, 02:49:47 am »
muchisimas gracias por la bienvenida al foro, de todas maneras cualquier tipo de ayuda es bueno  ;D le echare un vistazo al post que me enviaste, se agradece
Saludos
 :bang: 8)
"la valia de un hombre se mide por la cuantia de soledad que le es posible sopotar"
Friedrich Nietzsche

moss77

  • PIC10F
  • *
  • Mensajes: 1
Re: Matriz de LEDS de 8x8
« Respuesta #43 en: Agosto 18, 2011, 04:01:40 pm »
Que tal Ariel,

Soy nuevo en este mundo de los pic's y estoy tratando de desarrollar una matriz de 8X8 que visualice una letra, en este caso la "A", por tal motivo me he basado en tu trabajo, el cual me ha servido de mucho ayuda, pero tengo un problema con el parpadeo y no logro visualizar la letra de forma constante en los led's, solo logro ver como se activan las filas y columnas correspondientes. Por lo cual solicito tu orientación, de antemano de lo agradezco.

Estoy utilizando un pic16f84A y simulando con proteus. Anexo programa


saludos
Moises



Programa que presenta la letra "A"

Código: [Seleccionar]
#INCLUDE <16F84A.H>  
#FUSES NOWDT                     //No Watch Dog Timer
#FUSES XT                      
#FUSES NOPUT                      //No Power Up Timer
#FUSES NOPROTECT                  //Code not protected from reading
#use delay(clock=4000000)

//Defines------------------------------------------
#BYTE PORTA = 0x05
#BYTE PORTB = 0x06
#BYTE PORTA_TRIS = 0x85
#BYTE PORTB_TRIS = 0x86

#DEFINE RDD_DATA  PIN_A1
#DEFINE RDD_CLOCK PIN_A0




void fRDD_send_data0(void);
void fRDD_send_data1(void);

CHAR const letra[8]={0xC3,0xc3,0x99,0x81,0x81,0x99,0x99,0x99};  //letra A
CHAR temp,c;

void main(){
  int8 i,j,z;
 
 PORTA_TRIS = 0b11000000;
 PORTB_TRIS = 0b00000000;  
  
  output_low(RDD_CLOCK);
  output_low(RDD_DATA);
  
  
  PORTB=0xFF;
  for (j=0;j<8;j++) { fRDD_send_data1();}
  
  z = 0xFE;
  c=0x80;
 
 while (TRUE){
         for(j=0;j<8;j++){
             temp=letra[j];
             for(i=0;i<8;i++){
                if(temp&c){
                   fRDD_send_data1();
                }
                else{
                   fRDD_send_data0();
                }
                temp=(temp<<1);
          
            }    
            PORTB = z;//}
            delay_ms(1);
            z =(PORTB<<1)+1;
            if(z==0xFF){
               z = z-1;
            }
            PORTB = 0XFF;      
 }  
      
      }//Fin while
}//Fin main

//---Envia un 0 al registro de desplazamiento:
void fRDD_send_data0(void){
  
  output_low(RDD_DATA);
  delay_us(2);
  output_low(RDD_CLOCK);
  delay_us(2);
  output_high(RDD_CLOCK);
}
//--------------------------------------------------
//---Envia un 1 al registro de desplazamiento:
//--------------------------------------------------
void fRDD_send_data1(void){
  output_high(RDD_DATA);
  delay_us(2);
  output_low(RDD_CLOCK);
  delay_us(2);
  output_high(RDD_CLOCK);
}


« Última modificación: Agosto 18, 2011, 07:57:00 pm por geronimox »

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Matriz de LEDS de 8x8
« Respuesta #44 en: Agosto 20, 2011, 06:08:23 pm »
Como hemos repetido mas o menos unas 20.000 veces, el problema generalmente es de la simulación.....

Prueba en el circuito real, y verás que no tienes parpadeos apreciables.  ;)

Simplemente, el ordenador que usas no es capaz de efectuar la simulación a la velocidad suficiente.

Saludos!
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

 

anything