Controle um LED bicolor com apenas um pino

9

É possível controlar um LED bicolor com apenas um pino de um microcontrolador?

O Instinct diz NÃO, porque você pode ter uma extremidade aterrada e a outra no pino do micro, permitindo que você o ligue ou desligue, mas não mude de cor.

Mas talvez alguém tenha uma ideia melhor?

Thomas O
fonte
11
Você pode fazer praticamente qualquer coisa com um alfinete de micro. Mais específico, por favor?
Nick T

Respostas:

6

Você pode fazer isso com um LED bicolor que possui os dois LEDs consecutivos se conectar um terminal de LED a uma tensão intermediária, por exemplo, 2,5V em um design de 5V e conectar o outro lado ao MCU por meio de um resistor adequado ( Eu usei 560R).

Em seguida, uma saída baixa fornece uma cor, a alta fornece a outra e o tri-state deixa o LED desligado. A modulação por largura de pulso permitirá controlar o brilho (alternando a saída entre ativo e tri-state) ou misturar as cores (alternar a saída de baixa para alta).

Você também pode ajustar a tensão intermediária para compensar diferentes tensões de avanço do LED.

Usei um amplificador operacional LM2904 para fornecer a tensão intermediária - ele funciona com tensão de alimentação de até 5V. Existem muitos outros dispositivos que podem operar em tensões mais baixas e ainda assim afundar e fornecer corrente suficiente para acionar os LEDs.

John Gallant
fonte
3

Se você não precisou de um estado desligado e seu Voh fosse suficientemente grande (editar: para superar a tensão de polarização direta do LED), poderá conectar uma extremidade do LED a uma tensão no meio do trilho. A saída de 1 obtém uma cor, a saída de 0 obtém a outra cor. Para desligar ... ha, boa sorte. Talvez você possa tentar colocar um capacitor lá e, em seguida, direcionar a saída com um PWM que a tampa suavizaria até o meio do trilho?

ajs410
fonte
7
Eu estava pensando praticamente a mesma coisa, talvez o estado desligado pudesse ser alcançado tristando o pino de saída do micro.
tcrosley
11
Uma sugestão impressionante ... declarar três vezes o pino deve desativá-lo sem o PWM sofisticado. No entanto, você deve ser cuidadoso sobre deixar a bóia de entrada, provavelmente precisará de um pull down (NÃO divisor, não deixe que as tensões ver mid-rail pino de entrada!)
ajs410
11
Você pode usar um resistor de alto valor (470k) puxado para cima ou para baixo. O LED será polarizado ou de uma cor ou de outra, mas o fluxo atual será tão baixo que você não verá o LED aceso.
akohlsmith
5
@ ajs410 - Acho que as MCUs são muito mais inteligentes do que um chip lógico burro. Em um micro de 8 bits médio, a grande maioria dos pinos pode ser usada como entrada analógica (sem configurá-los explicitamente como tal), para que não haja efeitos negativos (oscilação de porta, consumo excessivo de corrente) enquanto a tensão permanecer dentro GND e VDD.
Nick T
2
Uma das desvantagens (possivelmente significativas) dessa topologia é que você sempre terá um consumo de corrente bastante significativo que (sem modificação) o anula para qualquer aplicativo de bateria de longo prazo.
Nick T
0

Você pode Charlieplexá- lo

Tom
fonte
3
mas isso requer no mínimo dois pinos. A OP pediu uma solução usando um pino.
tcrosley
Na verdade, é possível, em alguns casos, estender o Charlieplexing para fornecer aos LEDs N * (N + 1) N pinos, se a tensão de alimentação for menor que o dobro da queda de tensão do LED e se houver a combinação certa de queda de tensão do LED disponível. Vamos assumir por simplicidade que o objetivo é controlar 12 LEDs com três pinos; seis LEDs têm uma queda de 2,5 volts e seis têm uma queda de 1,7 volts, e a tensão de alimentação é de 3,0 volts. O objetivo é 5mA para os diodos de 2,5 volts e 6,5mA para os diodos de 1,7 volts. Coloque um resistor de 100ohm em série com cada saída. Três dos LEDs de 2,5 volts conectam as saídas ao VDD, três ao VSS ... #
317
... e os LEDs de 1,7 volts conectam as saídas uma à outra na forma Charlieplex "normal". Para ligar um LED de 1,7 volts, conduza uma saída alta e outra baixa. Os resistores caem 0,65 volts, deixando 1,7 volts para o LED e tensão insuficiente para o LED de 2,5 volts. Para ligar um led de 2,5 volts, conduza uma saída para alta ou baixa e nenhuma das outras. Em seguida, um LED de 2,5 volts terá corrente suficiente para acender.
supercat
Pode-se adicionar mais resistores ou diodos de silício para lidar com diferentes cenários de tensão, se necessário, mas isso acrescentaria alguma complexidade. @crosley: O item acima generaliza ao uso de um pino para controlar dois LEDs.
supercat