Nota: Eu queria ressaltar que, mesmo que minha resposta tenha sido aceita, o leitor (você) deve realmente ler a resposta de Anindo primeiro se realmente deseja economizar energia com qualquer placa Arduino. Depois de abordar esses itens em seu design, você deve ler minha resposta e se preocupar em como configurar o MCU no modo de baixa energia.
Dito isto, existem várias técnicas para fazer um Arduino economizar energia. Vou listar alguns e depois apontar para uma página que os explique com mais detalhes.
Enquanto o controlador não está fazendo nada importante (entre uma leitura de um sensor e no próximo, por exemplo), você pode colocar o controlador em um dos modos de suspensão abaixo, com o comando set_sleep_mode (SLEEP_MODE_PWR_DOWN)
. Ao lado de cada modo está o consumo aproximado de energia de cada modo.
- SLEEP_MODE_IDLE: 15 mA
- SLEEP_MODE_ADC: 6,5 mA
- SLEEP_MODE_PWR_SAVE: 1,62 mA
- SLEEP_MODE_EXT_STANDBY: 1,62 mA
- SLEEP_MODE_STANDBY: 0,84 mA
- SLEEP_MODE_PWR_DOWN: 0,36 mA
Desative a detecção de queda de energia (o circuito que desliga o controlador quando baixa tensão é detectada).
Desativar ADC (conversão de analógico para digita)
Use o relógio interno
Em seguida, quando você colocar o controlador em suspensão, precisará usar um ou mais mecanismos abaixo para ativar o controlador e fazer algo com ele:
Este é um resumo que fiz de -
Esse artigo se aplica principalmente ao ATmega328P, mas a técnica também se aplica a outros controladores compatíveis com Arduino. Como o TheDoctor disse bem, você precisará verificar o datashet para garantir que seu controlador suporte alguma dessas técnicas e como fazê-lo com mais precisão.