Matriz 8x32 con PIC16F84A

Saludos D@rkbytes
Te agradezco toda la ayuda que me brindaste :apreton: :alabanza: :aplauso: , ya realiza la función pero en una sola matriz de 8x8, pero cuando pongo las demás en cascada el barrido de una a otra no es continuo y hace que se distorsionen las letras, espero puedas ayudarme con este inconveniente
Espero mañana postearte un vídeo donde se vea el funcionamiento de mi matriz de LEDs tal ves sea la velocidad en la que el pic envía los datos
 

Adjuntos

Última edición:
Ok. Eso me parece muy bien y esperamos el vídeo para ver el funcionamiento. :)
Con respecto a la velocidad de desplazamiento, mira nuevamente el post #84
 
Ups.. :cabezon: :cabezon: :facepalm: muchas gracias D@rkbytes yo modificaba esta parte del programa donde dice pause y claro mañana subiré el video
PHP:
LineaV:
; Determina la posición activa horizontal
; y genera la activación de los leds verticales.
    PORTB = Linea[Contador2]
    Pause 3 ; Retardo a modificar para la velocidad.
    If Contador2 = 32 Then
        Contador2 = 1
        GoSub Enviar_1   
    Else
        Contador2 = Contador2 + 1
        GoSub Enviar_0
    EndIf
 
Saludos D@rkbytes, una ultima duda :confused: ¿porque al mandar un texto no lo muestra completo? se reinicia, por ejemplo mando a imprimir Gracias D@rkbytes y Foros de Electrónica y solo muestra Graci espero puedas ayudarme, creo que es un error en la reñal de reloj de los 74HC164
 
Es algo extraño lo que mencionas, pues debería continuar la secuencia faltante.
Adjunta el código y esquema o simulación, exactamente como los tienes ahora para revisarlos.
 
La secuencia la termina despues de varias veces de haberse reiniciado, los registros los tengo en cascada, el pin 13 del primer registro esta conectado al pin 1 y 2 del siguiente registro y asi en los cuatro registros, el pin 8 de todos los registros están conectados al reloj del pic te adjnto los archivos
Saludos
 

Adjuntos

Se me ocurre que puedes ser por éstos detalles:

  1. La variable Char está formada por 7 elementos, pero se están usando 8. Entonces debe ser Char Var Byte[8] (Casi siempre se usan 7, pero estando en 8 puede servir para crear otros caracteres personalizados.)
  2. El retardo de PauseUs lo llevaste hasta 1100 us. Déjalo en 500 us.
  3. La creación de las letras debe ser de la siguiente forma...
Éste es un ejemplo para la letra "a" minúscula: Letra a minúscula.jpg
Entonces se genera el siguiente código:
Char[8] = %00000000
Char[7] = %00000000
Char[6] = %00000000
Char[5] = %00000000
Char[4] = %00001111
Char[3] = %00010101
Char[2] = %00010101
Char[1] = %00010010

Nota que siempre debe quedar un espacio en blanco para separar las letras.
En este caso está formado por ceros, entonces sobran: Char[8], Char[7] y Char[6]
Éstos se deben eliminar y Char[5] que está formado por ceros, será el espacio entre letras.
Por lo tanto, la variable Char_Length debe tener el valor 5.

Otro ejemplo ahora con la "A" mayúscula: Letra A mayúscula.jpg
Se obtendrá el siguiente código:
Char[8] = %00000000
Char[7] = %00000000
Char[6] = %00000000
Char[5] = %01111111
Char[4] = %10001000
Char[3] = %10001000
Char[2] = %10001000
Char[1] = %01111111


Aquí sobra; Char[8] y Char[7] porque Char[6] será el espacio de separación entre letras.
Por lo tanto se eliminan y Char_Length deberá tener el valor 6.

Espero hayas entendido. Ahora modifica lo que te mencioné y realiza una prueba.

PD:
Los caracteres los puedes formar de la manera que quieras, pero debes tener en cuenta iniciar a crearlos desde la izquierda hacia la derecha y los espacios sobrantes, eliminarlos.
 
Gracias probare las modificaciones que mencionas, por otra parte estoy por realizar el PCB de la placa de control, crees que tenga que estar mas gruesa la pista de datos y reloj del pic, o no importa? :unsure::confused:
tambien pienso implementarla en mi auto, y quisiera que se prendiera con un interrumpor y que con ese mismo se interrumpiera, eh pensado colocar un relevador para controlar el encendido y apagado dela matriz
 
Última edición:
Estoy por realizar el PCB de la placa de control.
¿Crees que tenga que estar más gruesa la pista de datos y reloj del pic, o no importa?
No. Esas pistas no manejan corrientes elevadas para que tengan que ser gruesas.
De hecho, el circuito completo no demanda mucha corriente.
Lo que si tienes que hacer, es un buen plano de tierra en el circuito impreso.
 
Ya quedo!! :aplauso: solo espero que youtube no se tarde demasiado para compartirles el video del funcionamiento y como te comentaba, para prenderlo y apagarlo con un mismo pulsador eh pensado en ocupar un flip flop JK con un transoistor para aumentar la corriente y pueda encender y apagar la matriz
 
Saludos y muchas gracias por la ayuda :aplauso::alabanza: y que buena paciencia tienes jejeje ;)
De nada. (y) Que bueno que ya funcionó esta matríz de LEDs.

Estaría bien que subieras el esquema completo que usaste y un solo código.
Es que anteriormente subiste dos programas.

Esto es para tener un único proyecto que funcione, pues se hicieron varias modificaciones.
 
OK. Al parecer siempre sí va a ser necesario que se usen transistores PNP.
No me había tomado el tiempo de analizar bien como es que estaba funcionando esta matríz y esto fue lo que me causó confusión.
Esas matrices tienen los ánodos hacia arriba y por lo tanto requieren tensión positiva.

Las resistencias están bien de valor pero puedes probar colocando una sola resistencia de 330 Ω en el emisor y los 74HC164 los conectas directamente.

Realicé una modificación al programa y al diseño, invirtiéndolo para que funcione usando transistores NPN, pero en este caso las columnas deberán ser los cátodos.
Ahora por lo menos ya me quedó más claro como es que está funcionando esta matríz.
Ya me imaginaba que algo tenía que estar invertido por lo que has comentado, y ahora lo entiendo.
Hola, tengo problemas al intentar compilar el codigo con pic basic pro 2.6, ya use la palabra de configuracion pero sin exito, no entiendo que pasa, gracias por la ayuda

Tengo errores al compilar y al correr el proteus no se que pasa



Buenas, ya logre solucionar el error de compilacion, tengo una duda, necesito poder modificar respecto a los datos que envie en el puerto serial hay alguna forma de modificar en
Data @0, un dato en especifico?, muchas gracias.
 

Adjuntos

Última edición:
Necesito poder modificar respecto a los datos que envíe en el puerto serial.
¿Hay alguna forma de modificar en Data @0, un dato en especifico?
Los datos que se guardan en la EEPROM interna con la instrucción "Data", son los datos que posteriormente se leerán y es el mensaje que será visualizado.

¿A qué puerto serial te refieres?
El programa usa datos seriales para comunicarse con los registros de desplazamiento, pero no se usa un puerto serial estándar, y tampoco un módulo UART, sino un pin de reloj y otro de datos.

Me parece que debes leer el tema desde el principio para que entiendas el funcionamiento del sistema.
 
En si lo que tengo que hacer es que mediante un dato por el puerto UART y un bluetooth serial pueda leer el dato mediante los puertos rx y tx y desplegar el caracter que se envie al puerto serial, no se exactamente que tengo que hacer para sobreescribir los datos de la EEPROM, ademas de que tendria que cambiar de microcontrolador para poder utilizar un puerto C y tenga mas libertad, pero en si no entiendo exactamente como funciona el corrimiento
 
En sí, lo que tengo que hacer, es que mediante un dato por el puerto UART y un Bluetooth serial, pueda leer el dato mediante los puertos rx y tx y desplegar el carácter que se envíe al puerto serial
OK. Eso ya es otra cosa.
Entonces, mira por aquí: Matriz de Leds PIC16f628a Controlada por Teclado PS2
Con ese aporte de @tecniloco80, ya podrás tener algo más en claro con la recepción de datos por el puerto serie, la implementación del módulo Bluetooth, ya corre por tu cuenta.

Suerte.
 
Hola, gente del foro. Bueno, aquí me armé una matriz de 8x8 y estoy probando un ejemplo que puso arturobuffon que adjunto con algunas fotos de la mía.

Como realicé el conexionado, al encender el circuito quedan todos los leds prendidos sin mostrar nada más que ese parpadeo intermitente de todos los leds.

No hice el buffer todavía, me falta esa parte y probar cada columna con buffer.

Espero puedan ayudar.
En fin, seguiré probando y tratando de localizar la falla.

Gracias.
 

Adjuntos

Última edición por un moderador:

Temas similares

Arriba