Autor Tema: Módulo de cuatro dígitos siete segmentos con un pin  (Leído 7549 veces)

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Módulo de cuatro dígitos siete segmentos con un pin
« en: Noviembre 12, 2009, 11:28:29 pm »
Este es un videito del módulo de siete segmentos x 4 de mi nueva entrenadora.  :rolleyes2:


Trabaja con 4 integrados de desplazamiento y puede usar solo un pin del microcontrolador ( o dos, intercambiable por jumper).

Espero les guste.
« Última modificación: Mayo 20, 2011, 10:49:02 pm por Felixls »

Bruno10

  • Moderador
  • PIC16F
  • ******
  • Mensajes: 931
  • texto personal
    • Brunoip
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #1 en: Noviembre 12, 2009, 11:31:46 pm »
1 solo pin?  ???

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #2 en: Noviembre 12, 2009, 11:32:44 pm »
1 solo pin?  ???
Si, una sola salida del PIC.

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #3 en: Noviembre 12, 2009, 11:43:28 pm »
Hola 36º3
¿Que integrados de desplazamiento estas utilizando?
¿Como logras con un solo pin, actualizar los registros de desplazamiento?

Es muy interesante.

Saludos
"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]

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #4 en: Noviembre 13, 2009, 12:05:06 am »
Es una idea de Rex Niven (Australiano) que por Junio del 2007 publicó un artículo para micros Atmel con códigos en assembler.

La idea en general es conectar un solo pin del micro a un filtro RC paso bajo y controla el funcionamiento de 3 (yo implementé 4) integrados 74HC164 (conv. serial a paralelo) que son los que finalmente activan o no cada led de los 7-segmentos.

Pronto voy a publicar el modulito, con los esquemáticos y el código.

saludos amigos
« Última modificación: Noviembre 13, 2009, 03:40:56 pm por Felixls »

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #5 en: Noviembre 13, 2009, 12:10:35 am »
Muy bueno, espero la publicación.

Saludos y gracias
"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]

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #6 en: Noviembre 13, 2009, 01:58:02 pm »
Explico un poco más sobre el asunto  ;)

Como sabrán el registro de desplazamiento de 8 bits (74HC164N en este caso) funciona por medio de una señal de datos y otra de clock, en cada flanco de subida del clock se desplazan los bits del registro e ingresa el estado (alto o bajo) de la señal de datos actual.
Es por este motivo que todos utilizan siempre en este caso dos pines del microcontrolador...

pero, y si... (y aquí viene la genialidad del amigo Niven)

Que tal si usamos una única señal con frecuencias altas para los unos y bajas para los ceros,  esta señal será el clock para registro de desplazamiento.

Y los datos?

Para señal de datos colocamos un filtro pasa bajos, una resistencia y un condensador, que deje pasar las frecuencias bajas pero no las altas.

Para que me crean  ;D que esto funciona, puse el osciloscopio para que registre este funcionamiento



Aquí pueden ver de más cerca lo que les eplicaba más arriba:

El color amarillo es la señal de datos y el azul el clock o reloj.

Vean como actúa el filtro cuando se transmiten los 1s.

Para generar esta señal estoy usando este código:

void display7segment(int i)
{
  int x;

  for (x=0; x<8; x++)
  {
     SIETESEG_CLOCK = (i & 0x01);
     i = i >> 1;
    
     _asm
        nop
        nop
     _endasm;
    
     SIETESEG_CLOCK = 0;
     SIETESEG_CLOCK = 1;          

  }
}

A modo de prueba envío 11000001 para encender el led A, B, y el punto decimal del display de siete segmentos
Para usar sea función invoco:

display7segment(0b11000001);

Los led A,B y punto pueden verlos en este gráfico



Tal vez puedan verlos en la foto también iluminados

Quedó claro?

« Última modificación: Noviembre 13, 2009, 02:30:05 pm por Felixls »

Suky

  • **----- ^^ ------**
  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5442
  • Con Qt...
    • micros-designs
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #7 en: Noviembre 13, 2009, 03:27:24 pm »
Muy ingenioso  :bang: Mis felicitaciones Felixls por la implementación!!!


Saludos!

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #8 en: Noviembre 13, 2009, 06:04:32 pm »
Gracias Suky, luego de hacer mi módulo de LCD con 2 pines descubrí esta forma de usar uno solo  :idiot:, pero bueno, dos pines para un LCD no está nada mal  ;D

En otras páginas vi que usaban un pic "chico" y comunicación de un hilo para lograr lo mismo, pero este creo es mejor ya que una resistencia y condensador son más baratos y más pequeños que un pic de 8 patas

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #9 en: Noviembre 13, 2009, 06:13:37 pm »
En otras páginas vi que usaban un pic "chico" y comunicación de un hilo para lograr lo mismo, pero este creo es mejor ya que una resistencia y condensador son más baratos y más pequeños que un pic de 8 patas

Se podría utilizar un 628A, 4 transistores, algunas resistencias y comunicación serie TTL por un hilo... En fin, es una idea, te ahorrarías el espacio de los 4 integrados.

Saludos
"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]

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #10 en: Noviembre 13, 2009, 06:22:02 pm »
Se podría utilizar un 628A, 4 transistores, algunas resistencias y comunicación serie TTL por un hilo... En fin, es una idea, te ahorrarías el espacio de los 4 integrados.
Sip, es factible, aunque costo es más alto, para uno o dos displays creo que salis empatado con el espacio, y para varios display el fliqueo se nota me parece

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #11 en: Noviembre 13, 2009, 07:20:21 pm »
Se podría utilizar un 628A, 4 transistores, algunas resistencias y comunicación serie TTL por un hilo... En fin, es una idea, te ahorrarías el espacio de los 4 integrados.
Sip, es factible, aunque costo es más alto, para uno o dos displays creo que salis empatado con el espacio, y para varios display el fliqueo se nota me parece

Con el 628A, utilizando clock y MCLR internos, utilizamos RA4 como entrada serial, nos quedarían 7 pines para multiplexar hasta siete display 7 segmentos con punto decimal incluido, ovbiamente los datos saldrían por el puerto B.
En este caso 7 transistores, 14 resistencias mas los Display. Todo eso ocuparía mucho menos espacio que los 7 integrados mas display para hacerlo del metodo por RC. El costo es otra cosa, pero no debe estar muy lejos.
"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]

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #12 en: Noviembre 13, 2009, 08:00:07 pm »
Con el 628A, utilizando clock y MCLR internos, utilizamos RA4 como entrada serial, nos quedarían 7 pines para multiplexar hasta siete display 7 segmentos con punto decimal incluido, ovbiamente los datos saldrían por el puerto B.
Y si son más de 7 comprarías un 877 a 40 pesos? y si son más de 14 displays?
He visto funcionar a cuatro display el fliqueo es bastante feo el efecto ese, no quiero pensar lo que pasaría con 7.

Además este método viene bien para cuando usas los 74164 para otras tareas aprovechandote de su funcionamiento de desplazamiento  ;)

En cuanto al espacio se podría reducir mucho con placas a dos caras y el encapsulado superficial.


HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #13 en: Noviembre 13, 2009, 08:23:17 pm »
Con el 628A, utilizando clock y MCLR internos, utilizamos RA4 como entrada serial, nos quedarían 7 pines para multiplexar hasta siete display 7 segmentos con punto decimal incluido, ovbiamente los datos saldrían por el puerto B.
Y si son más de 7 comprarías un 877 a 40 pesos? y si son más de 14 displays?
He visto funcionar a cuatro display el fliqueo es bastante feo el efecto ese, no quiero pensar lo que pasaría con 7.

Además este método viene bien para cuando usas los 74164 para otras tareas aprovechandote de su funcionamiento de desplazamiento  ;)

En cuanto al espacio se podría reducir mucho con placas a dos caras y el encapsulado superficial.



Evidentemente no me entendiste. Comparto que la idea es buena y diría muy buena y sobretodo para otras tareas, que no sea display, mejor todabía.
Pero, para 4 o porque no 7, no hay drama de hacerlo con un pic. He manejado 4 display multiplexados sin que se note nada, todo depende de la velocidad de multiplexado a mas de 25 presentaciones por segundo no se nota nada, es el principio del cine. Además he llegado a multiplexar 9 display con un 84A y un 4017 que lo tengo funcionando y no hace ningún "fliqueo".
Y lo de multiplexar 4 o mas display con un pic no es nuevo y realmente no creo que se vea mal, por lo menos siempre que lo he echo se ve perfecto.

Saludos y no te calentes que el método es bueno e interesante, ya lo dije antes.
"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]

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Módulo de cuatro dígitos siete segmentos
« Respuesta #14 en: Noviembre 13, 2009, 08:29:23 pm »
Pero, para 4 o porque no 7, no hay drama de hacerlo con un pic. He manejado 4 display multiplexados sin que se note nada, todo depende de la velocidad de multiplexado a mas de 25 presentaciones por segundo no se nota nada, es el principio del cine. Además he llegado a multiplexar 9 display con un 84A y un 4017 que lo tengo funcionando y no hace ningún "fliqueo".
Y lo de multiplexar 4 o mas display con un pic no es nuevo y realmente no creo que se vea mal, por lo menos siempre que lo he echo se ve perfecto.
Sip, el fliqueo no se nota mientras respetes los tiempos correctos, pero me preocupó ver una implementación que si lo hacía, y además pensaba que el pic tenía que estar manejando a la vez en la interrupción la comunicación y que el conjunto no fuera lo suficientemente veloz como para no meter la pata

Saludos y no te calentes que el método es bueno e interesante, ya lo dije antes.
No, para nada, lejos de mi enojarme por recibir comentarios o críticas, jeje  ;D