Eu tenho um dispositivo de microcontrolador com energia da bateria. Atualmente, alterno a energia com o simples botão liga / desliga. Desejo alternar a energia de um botão com uma modificação mínima do esquema (provavelmente programa do microcontrolador) e sem consumo quando o dispositivo está desligado. Como eu posso fazer isso?
ADICIONADO . Eu sei o seguinte truque:
Aqui, no início, o microcontrolador define o PB3 como alto e, assim, mantém a energia do dispositivo. Mas essa não é uma solução para o meu problema, porque também preciso desligar o dispositivo pressionando S1.
ADICIONADO . Posso excluir o VT2 do circuito (ou seja, diretamente a base da unidade do microcontrolador do VT1)?
Respostas:
Com base no circuito que você fornece, você pode simplesmente adicionar um diodo em série logo após o comutador (S1) (cátodo conectado ao comutador) e com eles você pode usar uma entrada para detectar se o comutador foi pressionado novamente; caso contrário, desligue PB3.
O diodo zener protege a entrada PIC da tensão proveniente da fonte de alimentação.
fonte
Como você realmente precisa estar? Muitos microcontroladores modernos têm corrente de sono bem abaixo da corrente de autodescarga de baterias pequenas. Você pode fazer com que o botão simplesmente mova o pino de E / S do micro, que alterna entre os modos de suspensão e ativo a cada pressionamento de botão. Serão necessárias algumas devoluções, mas tudo isso também é possível no firmware.
Atualmente, esse tipo de método liga / desliga está se tornando bastante comum. Quando leva apenas um µA, um microcontrolador não precisa estar realmente desligado, apenas dormindo, o que pode ser feito sob seu próprio controle. A linha do botão deve estar conectada a algo que possa fazer com que o micro acorde do sono, mas quase todos os micro têm pelo menos um deles, geralmente vários.
fonte
EDIT - na reflexão, o circuito abaixo (que deixarei para referência) provavelmente é o mais adequado para uso em circuitos sem micro. Conforme mencionado nas outras respostas, a menos que você realmente não possa pagar os poucos uA, não faz sentido não usar o micro para controlar a alternância de potência, pois usa menos componentes e pode ser controlado com precisão.
A versão mais simples pode ser algo como uma entrada IOC (interrupção na alteração) com pull up, com o botão para aterrar. O micro tem energia aplicada o tempo todo e controla um MOSFET de canal P (com pullup do gate para a fonte) para o resto do circuito. Quando dorme, deixa o portão flutuar para desligar o circuito.
Circuito de referência:
Inicialmente, o P-MOSFET está desligado, portanto não há corrente de base no Q2, o que também está desligado. Q1 está desligado, então Q1c está em 5V. O circuito é estático.
Quando S1 (ignora os nós + e -, eles estão lá para fins de disparo do SPICE) é pressionado, o 5V em Q1c é conectado à base Q2, ligando-o. Isso puxa a porta do P-MOSFET para o chão, ativando-a também.
O R4 agora vê 5V e, quando S1 é liberado, fornece à Q2s a corrente necessária para mantê-la aberta (e, portanto, o MOSFET também) Q1 também é ativado quando a corrente através do R2 carrega C1 a ~ 600mV, nesse ponto Q1c é <200mV (isto é, Q1 está ativado)
O circuito agora está estático novamente.
Quando S1 é pressionado novamente, Q1 afunda a corrente de R4 (que mantém o Q2 ligado) desativando o Q2. R1 puxa a base do MOSFET até 5V e a desliga novamente.
Aqui está a simulação (V (push) alta representa quando o botão é pressionado):
Também podemos ver após desligar as cabeças de corrente para zero (quando C1 descarrega e Q1 desliga), de modo que o circuito não consome energia no estado desligado (o cursor para I (V1) está em 19,86s e mede 329nA):
A idéia original do circuito não é minha, vem de Dave Jones no EEVblog .
fonte
Como Bruno Ferreira sugeriu, a maneira mais fácil de permitir que o botão atue como um interruptor "desligado" é mudar o circuito, permitindo que o processador saiba quando o botão é pressionado. Acho que é possível usar razoavelmente resistores para proteger a entrada do processador contra tensões acima do VDD sem a necessidade de um Zener para isso.
Aqui está um esboço de um projeto de circuito que você pode usar. A metade direita representa o comportamento do processador e usei uma combinação de transistor, Zener e resistor para substituir um regulador. A saída do processador é representada usando um comutador analógico, seu VDD, em vez de um gate, pois os portões deste simulador sempre geram uma saída de + 5V.
Um aspecto importante do circuito, que pode causar problemas se ignorado, é que ele foi projetado para que o processador não possa ligar o circuito, a menos que seu VDD tenha pelo menos ~ 3,6 volts; Também montei o simulador para que o processador sempre tente ativar sua saída sempre que seu VDD estiver abaixo de 3,5 volts. Eu já vi muitos projetos que assumem que os processadores não tentarão produzir uma lógica alta à medida que a energia acabar. Essa suposição pode funcionar bem com alguns lotes de chips usados em testes, mas depois falha com outros lotes de chips usados na produção em larga escala. O comportamento da maioria dos processadores não é especificado durante condições de subtensão; um bom design deve ser projetado para que o comportamento de um processador nessas condições não seja importante (nota leve: provavelmente é seguro supor que um processador que não é ' t projetado explicitamente para gerar voltagens mais altas do que qualquer voltagem aplicada, não começará magicamente; Não acho que exista uma especificação explícita para isso, mas acho que na maioria dos casos pode ser inferido com segurança).
fonte