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

Quiero controlar un LED de 7 segmentos de 2 dígitos con un microcontrolador MSP430. La pantalla tiene 8 pines de entrada por dígito (el octavo pin es el punto, que no necesito) y dos pines de tierra (cátodo común). La idea es conectar los primeros 7 pines del µ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 LED. Si el pin de control es BAJO, el LED1 está encendido y el LED2 está apagado. Si el pin de control es ALTO, entonces el LED2 está encendido y el LED1 está apagado. Sé cómo construir esto con un solo transistor PNP (ver imagen a continuación). Sin embargo, esto no es útil en la configuración de cátodo común, ya que quiero que la puerta de conmutación esté "detrás" de los LED.

lo que no quiero tener

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.

Respuestas (2)

Tiene razón sobre el transistor NPN, eso es lo que necesita 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 generar / hundirse unos pocos mA. Suponiendo que cada segmento necesita 10 mA, eso requeriría que el pin absorba 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).

Diagrama a continuación:

Diagrama

Siendo D1 y D2 los displays de 7 segmentos (ignorar 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 emite 0 solo conduce Q2.

Nota
Puede ser necesario agregar una resistencia pull-up de alto valor (por ejemplo, 100 kΩ) a la base Q2.

¡Muchas gracias por tu publicación! Basado en su diagrama, pude construir el circuito. Sin embargo, tuve el problema de que todavía fluía una pequeña cantidad de corriente a través de D1, cuando Q1 estaba cerrado. Pude deshacerme de este efecto ajustando las resistencias R2= 1.8K R2=1K y usando una pequeña resistencia (47Ohm) entre el colector de Q2 y Vcc. Como transistor utilicé el BC 546.

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

Cuando los siete ánodos de cada módulo LED se conecten 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 la resistencia utilizada tendría que ser:

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

Sugeriría una resistencia de menor valor sobre la base 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 el suministro de V DD para que cuando el primer transistor NPN esté APAGADO haya suficiente BIAS para encender el segundo transistor NPN. 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 visualización. Esto puede hacer que algunos segmentos parezcan estar activados cuando no deberían estarlo.

Por último, el software que controla la pantalla LED debe asegurarse de llevar las siete conexiones de ánodo a los LED a un nivel bajo durante un breve período 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, debería existir un breve retraso antes de que el patrón de segmento se aplique a los pines del puerto para el módulo de pantalla ahora activo. Esto evitará el efecto fantasma de los segmentos de una pantalla que se muestra en las posiciones de APAGADO en la otra pantalla cuando se multiplexa a una velocidad alta. Los retrasos solo necesitan ser del orden de un tercio a la mitad de un microsegundo más o menos. Dependiendo de la frecuencia de la MCU que se use, esto puede ser proporcionado por unos pocos ciclos de instrucción del software que se usa para hacer bit-bang en la lógica de visualización.

Tu comentario fue muy útil. Tuve que modificar ligeramente la sugerencia de la primera respuesta. Sin embargo, era diferente a lo que estabas sugiriendo en el penúltimo párrafo. Ver mi comentario a la primera respuesta.