Autor Tema: Controlar una Matriz de Displays de 7 segmentos, ayuda  (Leído 2746 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado sn4k32k6

  • PIC10
  • *
  • Mensajes: 11
Controlar una Matriz de Displays de 7 segmentos, ayuda
« en: 11 de Abril de 2012, 12:22:57 »
Hola! estuve buscando informacion para intentar comprender un poco mas este maravilloso mundo de los pics, y en el foro tocan temas con leds, y con displays de 7 segmentos hay ejemplos pero por LPT, y soy un iniciado en estos temas xD, les comento la idea, necesito que los que estan mas avanzados en este tema me sepan orientar.
La idea mia es, Combinar un programa de Facturacion en VB, con un panel que me muestre la cantidad de x producto en una estanteria, y les paso a explicar mejor

Hagamos el ejemplo con una matriz chica de 3x2, en la estanteria voy a tener 6 lugares, arriba A-B-C y abajo D-E-F. En una base de datos, tengo declarado previamente que A=Pelotas, B=Anillos, etc. Por ende, aca entra la cuestion. En una linea de produccion se comienza con una caja vacia, y un rotulo con sus datos de pedido, dentro de la caja una factura con todo su respectivo contenido(datos que ya tengo en la BD). Mi idea es la siguiente...que en vez de que la persona agarre la factura y tenga que leer SI es que tiene que agregar algun producto y su cantidad...directamente, en la estanteria aparezca un Display con la cantidad de determinado producto si es que lo tiene.
Ami se me ocurrio por un lado, agregar un scaner de codigo de barra, para ubicar la posicion de la matriz (importante, cada posicion tendria 2 displays de 7 segmentos, la cantidad nunca va a ser mayor a 99).

y realmente quiero saber si se puede controlar por pic, o hay alguna otra manera de hacerlo, la matriz original seria de 25 posiciones(5x5), por ende 2 displays por posicion. Intente expresarme lo mas entendible posible, espero que alguien entienda mi idea y me sepa orientar. Muchas gracias!

Desconectado sn4k32k6

  • PIC10
  • *
  • Mensajes: 11
Re: Controlar una Matriz de Displays de 7 segmentos, ayuda
« Respuesta #1 en: 12 de Abril de 2012, 01:02:53 »
Bueno, despues de averiguar, leer mucho pude intentar controlar 2 digitos con un 16F84A, la parte del circuito es muy sencilla, y se basa en 2 displays multiplexados con 2 CD4511(el 7447 me obliga a rehacer el codigo ya que si el programa hace otra cosa que no sea mostrar el numero, el display se apaga) gracias al LE que guarda el valor del numero.
Les adjunto la imagen del Schema probado en Proteus, y les dejo el codigo escrito en PBP, quizás a alguien le pueda servir (disculpen si esta escrito desordenadamente, mi nivel de programacion todavia es muy bajo   :-) ) y mas abajo el Hex para que puedan probarlo.

Ahí les va el código en PbasicPro:

cmcon   = 7            'todas las entradas son digitales

sumar var PORTA.0      'PIN 0 DEL PORT A
restar var PORTA.1     'PIN 1 DEL PORT A
prender var PORTB.6    'PIN 6 DEL PORT B

         'declaro variables
n var byte              'n es el valor contador
uni var byte            'uni va a guardar el digito de unidad
deci var byte           'lo mismo para la decena

TRISB = 0            'PORTB todas salidas

n=0                  'inicio contador en 0

GOSUB DISPLAY



INICIO:

IF sumar=0 THEN SUMA
IF restar=0 THEN RESTA
PAUSE 10
GOTO INICIO

SUMA:

n = n+1
IF N>99 THEN N=0
GOSUB DISPLAY
PAUSE 300
GOTO INICIO

RESTA:

if n = 0 then n = 100
n = n - 1
GOSUB DISPLAY
PAUSE 300
GOTO INICIO

DISPLAY:

LOW prender                   'baja el PORTB.6, por ende pone a 0 los Bl del CD4511(ambos 2)
uni = n DIG 0                 'guarda en UNI el primer digito de N (4 bites)
PORTB = uni                   'envio a los PORTB el contenido de UNI (que van a las 4 entradas de ambos CD4511)
PORTB = uni + %00010000         'mantengo, y a su vez, y levanto a 1 PORTB.4 (LE del CD4511 correspondiente a la UNIDAD, guarda el dato a mostrar)
deci = n DIG 1                'repito lo mismo para decena
PORTB = deci + %00010000      'notese qui que vuelvo a enviar el valor + el 1 en PORTB.4
PORTB = deci + %00110000      'y levanto el PORTB.5 para que el LE guarde el valor de la decena tmb
HIGH prender                  'levanto PORTB.6, lo pongo a 1 (osea, prendo los leds con Bl)
RETURN


Algún avanzado en el tema que me pueda ayudar? suponiendo que los switch los elimino, y mi idea es que el PIC RECIBA información desde una pc, con el display y el dato que quiero q se prenda, como podría hacerlo?me estoy quemando la cabeza intentando buscarle la vuelta pero no lo consigo xD, gracias!

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Controlar una Matriz de Displays de 7 segmentos, ayuda
« Respuesta #2 en: 12 de Abril de 2012, 09:19:26 »
Hola amigo, si multiplexas los display te queda un montaje más sencillo y ahorras espacio, tiempo y dinero, sería algo así:

Saludos.

Desconectado sn4k32k6

  • PIC10
  • *
  • Mensajes: 11
Re: Controlar una Matriz de Displays de 7 segmentos, ayuda
« Respuesta #3 en: 12 de Abril de 2012, 09:25:58 »
es verdad mi amigo, pero en ese simple ejemplo me ahorro mucho espacio, el problema es que lo tengo que realizar NO con una posicion de 2 digitos, sino 25 posiciones de 2 digitos, y no vi nada por el estilo por Inet :S

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Controlar una Matriz de Displays de 7 segmentos, ayuda
« Respuesta #4 en: 12 de Abril de 2012, 13:29:51 »
Si, 50 displays multiplexados, no se yo, son bastantes, tengo visto algun montaje de hasta 15, creo recordar.

Pero bueno todo seria probar, dandoles tiempos muy pequeños de encendido...podria ser que se pudiera.

Yo la mejor opcion que veo es con registros de desplazamiento tipo 74LS164, te consumiria menos recursos del PIC.