Respostas:
Este exemplo usa um regulador de expansão Maxim MAX1835 , mas pode ser aplicado a outras pessoas que possuem um pino de desligamento.
O circuito normalmente está desligado. Quando o usuário pressiona o botão, a bateria é inserida no pino -SHDN, permitindo ao regulador e ligando os 3,3V ao microcontrolador. O microcontrolador coloca uma lógica 1 no cabo POWER ON, mantendo a energia ligada após o usuário soltar o botão. Quando o microcontrolador deseja desligar-se, ele define o condutor POWER ON como 0.
Uma maneira de fazer isso é entrar no modo de suspensão profunda no microcontrolador.
Muitos microcontroladores suportam o despertar de uma interrupção externa, como uma borda em um pino de E / S.
Sim, isso certamente é possível, mas a maneira como você consegue isso depende de que tipo de carga você vai ligar e desligar.
Provavelmente é tão simples quanto usar um relé conectado ao PIN de saída do microcontrolador (via transistor e diodo de proteção) e um botão de pressão conectado a um pino configurado como entrada.
Aqui está um exemplo de diagrama de circuito simples:
Ao usar um botão momentâneo, tenha cuidado com o rebote ; será necessário implementar um atraso no código do microcontrolador para garantir que você verifique o status do botão de pressão por um período de tempo (por exemplo, 1ms) antes de trocar o relé De volta. Caso contrário, o microcontrolador poderá captar vários sinais e alternar seu relé várias vezes em um espaço de tempo muito curto, e você verá que seu botão funciona intermitentemente.
ATUALIZAÇÃO Acabei de ver sua edição sobre como desligar o microcontrolador também. Você pode dar mais informações sobre o que realmente está tentando fazer? É difícil responder à sua pergunta sem entender todo o sistema.
Se você também deseja desligar o microcontrolador, precisará de uma maneira de recuperar a energia do microcontrolador. Talvez você possa usar o relé para alimentar tudo, inclusive o microcontrolador, para que o microcontrolador possa se desligar, mas não voltar a ligar. Em seguida, o botão pode ser conectado através do interruptor do relé, para efetivamente causar um curto-circuito, dando tempo suficiente para ligar e manter o relé aberto.