Autor Tema: Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139  (Leído 5129 veces)

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

Desconectado enrique_b06

  • PIC10
  • *
  • Mensajes: 3
Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« en: 29 de Noviembre de 2016, 15:10:31 »
Hola buenas, quisiera ayuda con un problema que tengo.

Necesito presentar un mensaje en una matriz 8X8 el cual puede ser "Buenos Dias", esto debe ir en binario pero estar conectado al PIC Compiler a traves de un 74LS164 para las columnas y 74LS139 para las filas (ojo, debe ser con estas mismas piezas porque ya las compre para trabajar y armarlo asi, es un proyectito).  Estoy trabajando con PIC Compiler y Proteus, pero no encuentro ningun ejemplo que use estos 2 componentes.

Les adjunto captura de la matriz y todos sus componentes en Proteus


De hecho, puedo mostrar sin el 74LS139 y 74LS164 una letra cualquiera en las leds, por medio de HIGH y LOW encendiendo y apagando cada fila y/o columna y jugando asi, pero no encuentro manera de hacerlo en que muestre algun mensaje usando los componentes mencionados.

Me seria de mucha ayuda si alguien puede ayudarme con este asunto,

Saludos y muchas gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« Respuesta #1 en: 29 de Noviembre de 2016, 15:26:14 »
Bueno, si lograste hacer que muestre un caracter, entonces quiere decir que la parte de la multiplexacion la tenes clara.

Entonces como propuesta es tratar de mostrar un caracter, luego de un tiempo mostrar otro, luego de un tiempo mostrar  otro, y asi...

Eso seria un primer paso.... Ahora si lo que intentas hacer es que vaya pasando el texto de derecha a izquierda es un poco mas complicado.
Ya que por ejemplo tenes: "Hola",
Deberias mostrar el primer BIT que forma la H eso en todas las filas, luego enviar 1er y 2do bit, y asi hasta que se termine la H, terminado eso tenes que mostrar la "o".
Si esta junto con la H deberias mostrar, los bits de la H + espacio en blanco + primer bit de la O, eso para todas las filas nuevamente.
Y asi hasta terminar.

Desconectado enrique_b06

  • PIC10
  • *
  • Mensajes: 3
Re:Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« Respuesta #2 en: 29 de Noviembre de 2016, 16:40:53 »
Bueno, si lograste hacer que muestre un caracter, entonces quiere decir que la parte de la multiplexacion la tenes clara.

Entonces como propuesta es tratar de mostrar un caracter, luego de un tiempo mostrar otro, luego de un tiempo mostrar  otro, y asi...

Eso seria un primer paso.... Ahora si lo que intentas hacer es que vaya pasando el texto de derecha a izquierda es un poco mas complicado.
Ya que por ejemplo tenes: "Hola",
Deberias mostrar el primer BIT que forma la H eso en todas las filas, luego enviar 1er y 2do bit, y asi hasta que se termine la H, terminado eso tenes que mostrar la "o".
Si esta junto con la H deberias mostrar, los bits de la H + espacio en blanco + primer bit de la O, eso para todas las filas nuevamente.
Y asi hasta terminar.

No he hecho lo de multiplexacion, lo de mostrar un caracter fue solo usando high y low sin multiplexador. Y ahora me toca usar los LS139 y LS164 y no encuentro que me funcione.

Creo que al menos seria util si pudiera conseguir in ejemplo donde se muestre aunque sea una letra, usando LS164 y LS139
« Última modificación: 29 de Noviembre de 2016, 16:47:11 por enrique_b06 »

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1099
Re:Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« Respuesta #3 en: 29 de Noviembre de 2016, 17:38:59 »
Pienso que elegiste la arquitectura menos adecuada a tus fines. Al poner el 74LS139 en las filas y dado que este solo puede elegir una salida cada vez, te obliga a multiplexar led a led y no columnas completas, como seria si intercambiases los dos integrados.
De todos modos no te aconsejo que comandes directamente los leds con esos CI, ya que suponiendo 20 mA por led y en el hipotetico caso de encender una fila completa. la salida del 139 deberia soportar 160 mA, lo cual creo que supera sus parametros. Podrias agregar un ULN2803, que es una matriz de transistores NPN, por un lado y un equivalente pero en PNP por el otro.
Aunque lo mas facil seria utilizar un TPIC6C596 o similar. Contiene un registro de desplazamiento + drivers MOS-FET en un simple CI.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« Respuesta #4 en: 29 de Noviembre de 2016, 17:53:08 »
Bueno primero voy a hablar sobre como mostrarlo, y luego te voy a dar un problema...

Citar
por medio de HIGH y LOW encendiendo y apagando cada fila y/o columna y jugando asi,

Exacto esto es multiplexar.

Lo que haces es:

Apagar las filas ( Poner 0 en los LS139, asi sus salidas quedan en alto )
Enviar los datos al LS164 de la primera fila nomas
Encender la primera fila.
Esperar tiempo.
Apagar la primera fila.
Enviar los datos al LS164 de la segunda fila nomas.
Encender la segunda fila.
Esperar tiempo.

Y asi repetir para todas las filas, y luego volver a comenzar. En el proteus ese "esperar tiempo" para poder verlo no deberia estar. Por que la simulacion es muy lenta.

Ahoar que datos debo enviar ?. Suponete que tengamos un "Hola". Primero deberiamos crear un array de como esta formada cada letra. Ejemplo, la H

01100110
01100110
01100110
01111110
01111110
01100110
01100110
01100110

Si observas los 1, notaras que forma una H... Pasado a hexadecimal: 0x66,0x66,0x66,0x7E,0x7E,0x66,0x66,0x66

De esa forma esos son los datos que le voy a enviar, para la primer fila debo enviar un 0x66, y encender la primer fila, proceder segun los pasos que dije antes. Ya con eso vas a ver una letra en tus leds.

-----------------------------------------------------------------------------

Tu problema es este:

Citar
(ojo, debe ser con estas mismas piezas porque ya las compre para trabajar y armarlo asi, es un proyectito)

El 74LS139 tiene una corriente de salida de MAXIMO 8mA, Si te fijas en tu LS139 podrias llegar a tener encendido hasta 8 leds ( la corriente de toda una fila), debido al efecto de la multiplexacion en el que los leds estan usualmente mas tiempo apagado que encendidos deberias hacerle pasar un poco mas de corriente a cada uno para que el brillo se vea. Y estamos hablando de unos 20mA por led, lo cual 1 solo led no podria darle esos 20mA que fijamos, si queres probarlo con 8mA hacelo.

Por otra parte el 74LS164 se encuentra tambien limitado a 8mA. En fin. 8mA por led maximo.

PD: A tu circuito le faltan las resistencias de los leds.

----------------------------------------------------------------------------
AcoranTF

Citar
Pienso que elegiste la arquitectura menos adecuada a tus fines. Al poner el 74LS139 en las filas y dado que este solo puede elegir una salida cada vez, te obliga a multiplexar led a led y no columnas completas, como seria si intercambiases los dos integrados.

Coincido, mas que nada porque seria mas facil la programacion en caso de que quisiera hacer un desplazamiento, Actualmente multiplexa filas enteras ( y no led a led ), en ves de columnas.

Citar
Podrias agregar un ULN2803, que es una matriz de transistores NPN, por un lado y un equivalente pero en PNP por el otro.

El problema de esto es que el 74LS139 tiene todas sus salidas en alto, y solo pone en bajo aquella seleccionada.

Realmente prefiero no complicarla y tener 2 74LS164 si quisiera hacer una matriz pequeña. Todo por SPI :P, directo y derecho.

Desconectado enrique_b06

  • PIC10
  • *
  • Mensajes: 3
Re:Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« Respuesta #5 en: 29 de Noviembre de 2016, 19:23:10 »
Entiendo lo que me dicen de que es mejor trabajar de otra manera, pero fue un profesor que nos pidio hacerlo asi y con esos diagramas, por eso fui a comprar las piezas y no puedo cambiarlas ahora

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda en Matriz 8X8 usando PIC16F84A, 74LS164 y 74LS139
« Respuesta #6 en: 29 de Noviembre de 2016, 20:09:31 »
Entiendo lo que me dicen de que es mejor trabajar de otra manera, pero fue un profesor que nos pidio hacerlo asi y con esos diagramas, por eso fui a comprar las piezas y no puedo cambiarlas ahora

Entonces hacelo con eso... Ya te explique el funcionamiento basico del multiplexado. Solo te resta hacerlo en tu programa.


 

anything