Controla un LED bicolor con solo un pin

9

¿Es posible controlar un LED bicolor con solo un pin de un microcontrolador?

El instinto dice NO, porque puede tener un extremo conectado a tierra y el otro yendo al pin del micro, lo que le permite encenderlo o apagarlo, pero no cambiar su color.

Pero tal vez alguien tiene una mejor idea?

Thomas O
fuente
1
Puedes hacer casi cualquier cosa con un pin de un micro. Más específico por favor?
Nick T

Respuestas:

6

Puede hacer esto con un LED bicolor que tiene los dos LED de forma consecutiva si conecta un terminal LED a un voltaje intermedio, por ejemplo, 2.5V en un diseño de 5V y conecta el otro lado a la MCU a través de una resistencia adecuada ( Usé 560R).

Luego, una salida baja da un color, la alta da el otro y el estado triple deja apagado el LED. La modulación de ancho de pulso le permitirá controlar el brillo (salida de conmutación entre activo y tri-estado) o mezclar los colores (salida de conmutación de baja a alta).

También puede ajustar el voltaje intermedio para compensar los diferentes voltajes directos del LED.

Utilicé un amplificador operacional LM2904 para proporcionar el voltaje intermedio: funciona con un voltaje de suministro de hasta 5V. Hay muchos otros dispositivos que pueden funcionar a voltajes más bajos y aún así se hunden y generan suficiente corriente para controlar los LED.

John Gallant
fuente
3

Si no necesitaba un estado apagado, y su Voh era lo suficientemente grande (editar: para superar el voltaje de polarización directa del LED), es posible que pueda conectar un extremo del LED a un voltaje de riel medio. La salida de un 1 obtiene un color, la salida de un 0 obtiene el otro color. Para apagarlo ... ja, buena suerte. ¿Tal vez podría intentar poner un condensador allí y luego impulsar la salida con un PWM que la tapa se suavizaría al carril central?

ajs410
fuente
77
Estaba pensando más o menos lo mismo, quizás el estado apagado podría lograrse tristando el pin de salida del micro.
tcrosley
1
Una sugerencia increíble ... declarar tres veces que el pin debería apagarlo sin el elegante PWM. Sin embargo, debe tener cuidado al dejar que la entrada flote, probablemente necesite un tirón hacia abajo (¡NO el divisor, no permita que el pin de entrada vea voltajes intermedios!)
ajs410
1
Podría usar una resistencia de alto valor (470k) tirada alta o baja. El LED estará polarizado o de un color u otro, pero el flujo de corriente será tan bajo que no verá el LED encendido.
akohlsmith
55
@ ajs410: creo que las MCU están mucho más inteligentemente diseñadas que un chip lógico tonto. En su micro de 8 bits promedio, la gran mayoría de los pines se pueden usar como entradas analógicas (sin configurarlos explícitamente como tales), por lo que no debería haber ningún efecto negativo (oscilación de la puerta, consumo de corriente excesivo) siempre que el voltaje permanezca dentro GND y VDD.
Nick T
2
Una de las desventajas (posiblemente significativas) de esta topología es que siempre tendrá un consumo de corriente bastante significativo que (sin modificación) lo eliminará para cualquier aplicación a largo plazo con batería.
Nick T
0

Puede Charlieplex se

Tom
fuente
3
pero eso requiere un mínimo de dos pines. OP solicitó una solución con un pin.
tcrosley
En realidad, en algunos casos es posible extender Charlieplexing para proporcionar N * (N + 1) LED con N pines, si el voltaje de suministro es inferior al doble de la caída de voltaje del LED, y uno tiene la combinación correcta de caídas de voltaje LED disponibles. Asumamos por simplicidad que el objetivo es controlar 12 LED con tres pines; seis LED tienen una caída de 2.5 voltios, y seis tienen una caída de 1.7 voltios, y el voltaje de suministro es de 3.0 voltios. El objetivo es 5 mA para los diodos de 2.5 voltios y 6.5 mA para los diodos de 1.7 voltios. Coloque una resistencia de 100 ohmios en serie con cada salida. Tres de los LED de 2.5 voltios conectan las salidas a VDD, tres a VSS ...
supercat
... y los LED de 1.7 voltios conectan las salidas entre sí en forma Charlieplex "normal". Para encender un LED de 1.7 voltios, active una salida alta y una baja. Las resistencias caerán 0.65 voltios, dejando 1.7 voltios para el LED y voltaje insuficiente para el LED de 2.5 voltios. Para encender un led de 2.5 voltios, active una salida alta o baja y ninguna de las otras. Luego, un LED de 2.5 voltios tendrá suficiente corriente para iluminarse.
supercat
Uno podría agregar más resistencias o diodos de silicio para lidiar con diferentes escenarios de voltaje si es necesario, pero eso agregaría cierta complejidad. @tcrosley: lo anterior se generaliza al uso de un pin para controlar dos LED.
supercat