Modo Stand by e baixo consumo do circuito

Olá pessoal.

Tenho um projeto de um aparelho portátil a bateria cuja característica exige que não se utilize uma chave liga-desliga. Para ligar o circuito eu utilizo os interrupts, e o circuito desliga sozinho se não estiver em uso.

Fiz alguns testes com o Stand by do arduino e até obtive algum sucesso, porém ainda há pontos a serem resolvidos, e se alguém puder ajudar eu agradeço muito.

São de fato duas dúvidas.

A primeira talvez seja mais simples de resolver é que notei que, dependendo do estado das portas do Atmega328, o Arduino continua consumindo energia. Não consegui definir exatamente como devo deixar as portas, mas aprendi que o estado "output" com saída em "low" é o estado que mais consome energia, mesmo em Stand by modo poweroff. Alguém sabe dizer qual estado devo deixar as portas para que o consumo seja realmente zero?

A segunda dúvida é que tenho no circuito um módulo bluetooth HC-05 para comunicação, e eu gostaria de coloca-lo também em stand-by, pois seu consumo é de 5mA quando desconectado. Ocorre que o HC-05 não possui modo Stand-by, então tentei cortar a alimentação dele com um transistor BC337 com configuração chave em emissor comum, porém não sei se a porta do Arduino que está saturando a base do transistor fica em um estado não previsto quando o Arduino está em Stand By, pois muitas vezes o módulo bluetooth não desliga. Meu pedido é se alguém tem alguma ideia melhor para desligar módulos periféricos quando colocado o Arduino em Stand-by.

Alguém pode ajudar?

Obrigado.

A julgar pelos testes do Nick Gammon...

https://www.gammon.com.au/forum/?id=11497

Estás no modo correcto com os pinos para minimizar o consumo de energia. O que normalmente consome mais energia é deixá-los sem um estado concreto. No entanto, ele tem bastante mais dicas para baixar o consumo num ATmega que podes não estar a considerar.

O arduino não deve mudar o estado dos portos quando está em modo standby ou sleep... logo poderá ser o modulo Bluetooth ou a ligação do transistor que pode ser melhorada?

bubulindo:
A julgar pelos testes do Nick Gammon...

https://www.gammon.com.au/forum/?id=11497

Estás no modo correcto com os pinos para minimizar o consumo de energia. O que normalmente consome mais energia é deixá-los sem um estado concreto. No entanto, ele tem bastante mais dicas para baixar o consumo num ATmega que podes não estar a considerar.

O arduino não deve mudar o estado dos portos quando está em modo standby ou sleep... logo poderá ser o modulo Bluetooth ou a ligação do transistor que pode ser melhorada?

Vou tentar colocar no próximo post uma imagem com o circuito do transistor e do hc-05 para facilitar o entendimento, pois não o tenho aqui agora.

Porém é fácil descrever.
Transistor BC337:

  • O emissor do transistor ligado no gnd;
  • O coletor do transistor no negativo do módulo hc-05;
  • A base do transistor em um resistor de 1K.

Resistor de base de 1KΩ 1/8w:

  • 1º terminal ligado na base do transistor BC337, como já dito;
  • 2º terminal ligado na porta 5 (arduino) do AtMega328P.

Módulo HC-05 (só o módulo mesmo, sem a placa berço):

  • Pino 13 (GND) ligado ao coletor do BC337;
  • Pino 12 (VCC) ligado no + 3,3v;
  • Pino 1 (TX) ligado na porta 6 (arduino) do AtMega328P;
  • Pino 2 (RX) ligado na porta 7 (arduino) do AtMega328P.

Todo o funcionamento do sistema, comunicação serial, alimentação, comunicação bluetooth, tudo funciona, exceto o desligamento do módulo ao colocar a porta 5 (arduino) em OUTPUT LOW, para cortar o transistor, e então ao tentar colocar o AtMega em Sleep PowerOff, muitas vezes o transistor conduz e o HC-05 não desliga.

Imagino que o modo Sleep PowerOff esteja, de alguma forma, escoando corrente para a porta 5, o que causa saturação da base do transistor e consequentemente alimentando o HC-05, porém não consigo medir isso com um multímetro.

Mais alguma ideia?

Obrigado.