Eu só tenho 2 pinos (3 estados) disponíveis em um microcontrolador e preciso controlar 3 LEDs vermelhos, o uC está funcionando com 5V. Só posso usar componentes passivos além disso.
Eu só tenho 2 pinos (3 estados) disponíveis em um microcontrolador e preciso controlar 3 LEDs vermelhos, o uC está funcionando com 5V. Só posso usar componentes passivos além disso.
Respostas:
Para controlar quatro LEDs:
simular este circuito - esquemático criado usando o CircuitLab
Para acender os dois LEDs de um pino específico, alterne o pino a algumas centenas de Hz.
Observe que essa configuração requer que a voltagem direta dos LEDs seja menor que Vcc / 2.
Observe também que os resistores consomem energia o tempo todo, não apenas quando os LEDs estão acesos.
Esta solução depende do fato de que 5V não acenderá os três LEDs em série. Se necessário, você pode adicionar um diodo de silício em série com um ou mais dos LEDs para aumentar a queda de tensão direta total.
simular este circuito - esquemático criado usando o CircuitLab
Para ter mais de um LED aceso por vez, é necessário multiplexar: ligue-os um de cada vez, com rapidez suficiente para que pareçam acender continuamente.
Com dois pinos, você pode realmente controlar quatro LEDs. Para controlar dois LEDs, coloque um resistor no pino do MCU para limitar a corrente e amarre-o a dois LEDs - o cátodo de um LED e o ânodo do outro LED. A extremidade do ânodo livre do primeiro LED é conectada ao VCC da placa MCU através de outro resistor. A extremidade do cátodo livre do segundo LED é conectada ao GND (através de outro resistor). Agora os LEDs acenderão alternadamente quando o pino do MCU estiver alto ou baixo. Conecte o segundo pino do MCU da mesma maneira e agora você tem controle sobre um total de quatro LEDs.
Para dar a aparência de controle independente de cada LED no par de um dos pinos da porta, é necessário um pequeno trabalho de software, conforme a seguir.
Se o LED1 for o ânodo para o pino da porta e o LED2 for o catodo para o pino da porta, faça o seguinte para estabelecer os quatro estados para dois LEDs.
LED2 LED1 Action
OFF OFF Set the port pin to tristate level.
OFF ON Set the port pin low.
ON OFF Set the port pin high.
ON ON Toggle the port pin high and low at a frequency over about 120 Hz.
Repita as mesmas ações para o outro pino da porta e você parecerá ter quatro LEDs independentes desligados nos dois pinos da porta.
Esse esquema funciona bem para LEDs com queda de tensão direta acima da metade do nível do VCC. Os LEDs vermelhos com 2.1 VF não funcionarão tão bem se o VCC for 5V, por exemplo. Por outro lado, um LED verde com um VF de 2,5V funcionará muito bem em um sistema com um VCC de 3,3V.
Assim, nenhuma corrente flui quando estão desligadas, e você pode acionar a quantidade de voltagem direta necessária
O EDN publicou algumas idéias relacionadas ao design aqui
Aqui está um deles: -
Para valores típicos com D1, um LED amarelo (2,2V ativado), D2, um LED vermelho (1,9V ativado) e tensões de 1,2V e 1,1V, respectivamente, e correntes de 8mA cada, Vcc = 5,0V, o ideal valores são
R1 = 300 ohms R2 = 330 ohms R3 = 1,2K ohms
A corrente quieta é 2.7mA. Para que os dois LEDs pareçam estar acesos, alterne o pino de saída a 100Hz ou superior.
Eu usei o solucionador de Excel no artigo original, o código ainda pode estar disponível no EDN.
O grau adicional de liberdade proporcionado pelo resistor R3 pode evitar as limitações dos circuitos de Dave Tweed e Michael Karas, embora no caso específico de 2 LEDs vermelhos operando a partir de uma fonte de 5V, o circuito de Dave Tweed seja provavelmente aceitável, mas verifique o Vf com cuidado, não é bom para alguns LEDs vermelhos e pode ser marginal para outros se o pino da porta não puxar para baixo ou para cima.