Multiplexación de 2 dígitos 7 segmentos con un bit

6

Quiero controlar un LED de 7 dígitos de 7 segmentos con un microcontrolador MSP430. La pantalla tiene 8 pines de entrada por dígito (el 8º pin es el punto, que no necesito) y dos pines de tierra (cátodo común). La idea es conectar los primeros 7 pines de µc a los 7 segmentos de ambos dígitos y luego usar otro pin (el pin de control) para seleccionar qué dígito mostrar. Al cambiar rápidamente entre los dos dígitos, me gustaría mostrar un número de dos dígitos usando solo 8 pines del µc.

Lo que necesito es lo siguiente. Podemos abstraer de tal manera que solo haya dos LEDs. Si el pin de control está BAJO, LED1 está encendido y LED2 está apagado. Si el pin de control está ALTO, entonces LED2 está encendido y LED1 está apagado. Sé cómo construir esto con un solo transistor PNP (vea la imagen a continuación). Sin embargo, esto no es útil en la configuración del cátodo común, ya que quiero que la puerta de conmutación esté "detrás" de los LED.

Mi pregunta es, cómo construir un circuito de este tipo con un solo transistor (y resistencias, por supuesto). Creo que tiene que ser un transistor NPN.

Esta es mi primera pregunta de EE y tengo poca experiencia, así que espero haber podido aclarar mi pregunta.

    
pregunta A.Schulz

2 respuestas

5

Tienes razón sobre el transistor NPN, eso es lo que necesitas para lograr ese comportamiento, sin embargo, dado que el µC tendría que controlar el cátodo de una de las pantallas, eso sería un problema ya que la mayoría de los µC solo pueden fuente / sumidero unos pocos mA. Suponiendo que cada segmento necesita 10 mA que requeriría que el pin se hunda 70 mA.

La solución más simple es tener dos transistores NPN capaces de hundir al menos 100 mA (como el BC547 común).

Abajo diagrama:

Al ser D1 y D2, se muestra el segmento 7 (ignore la referencia). Los ánodos de los LED se conectarán a los pines µC.

En esta configuración, solo Q1 conduce cuando el µC emite 1 y cuando sale 0 solo conduce Q2.

Nota
Podría ser necesario agregar una resistencia de alto valor de recuperación (por ejemplo, 100 kΩ) a la base Q2.

    
respondido por el Bruno Ferreira
4

La primera respuesta es una idea inicial razonable. Hay algunas cosas que se deben tener en cuenta al implementar esto.

Donde los siete ánodos de cada módulo LED se conectan a los pines del puerto MCU, será necesario insertar resistencias en serie en cada línea para limitar la corriente a un valor seguro para los segmentos individuales. El valor de resistencia utilizado debería ser:

R series = (V DD - V F (led) - V SAT (NPN) ) / I F (led)

Sugeriría una resistencia de valor más bajo en las bases de los dos transistores NPN. 2.2K sería más razonable.

Será necesario colocar una resistencia desde el colector del primer transistor NPN hasta la fuente V DD para que cuando el primer transistor NPN esté APAGADO, haya Es suficiente BIAS para encender el 2do transistor NPN. Yo usaría una resistencia de 1K para esto. Si esto no se hace, entonces el segundo transistor obtendría su BIAS a través de los LED supuestamente apagados del primer módulo de pantalla. Esto puede hacer que algunos segmentos parezcan estar encendidos cuando no deberían estar.

Por último, el software que controla la pantalla LED debe asegurarse de conducir las siete conexiones de ánodo a los LED a un nivel bajo durante un breve periodo de tiempo antes de que se cambie la E / S del selector de dígitos a los transistores NPN. Luego, después de cambiar el selector de dígitos, debe existir un breve retraso antes de que el patrón de segmento se aplique a los pines del puerto para el módulo de visualización ahora activo. Esto evitará que la imagen fantasma de los segmentos de una pantalla se muestre en las posiciones de APAGADO en la otra pantalla cuando se multiplexa a una velocidad alta. Los retrasos solo deben ser del orden de un tercio a la mitad de un microsegundo o menos. Dependiendo de la frecuencia de la MCU que se esté utilizando, esto puede ser proporcionado por unos pocos ciclos de instrucción del software que se está utilizando para golpear la lógica de la pantalla.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas