Arduino + bateria + RF 433MHz: Modos de economia de energia AVR?

Olá,

sei que tem muito conteúdo na internet sobre os modos de economia AVR, mas meu caso é um pouco diferente do usual, por isso decidi abrir o tópico aqui.

Q: Como posso poupar energia sem por o Arduino para dormir? Sei que terei que usar a lib AVR/power.h, mas não achei exemplos de código.

Outra coisa, os códigos que vi na internet põe o Arduino para dormir mas creio que não é meu caso, pois preciso estar pronto para executar os comandos recebidos via RF a qualquer momento. Isto é correto ou tem como eu lidar com os dados recebidos via VirtualWire acordando o Arduino no momento que o dado chegar?

No meu projeto, já tenho um Arduino ligado à um Ethernet shield executando algumas funções e vou ligar um transmissor RF. Quero ligar um Módulo sem fio (receptor RF) para controlar um motor, que a princípio será para o aquecedor, mas funcionando legal quero expandir para vários módulos em minha casa (cortinas, etc).

Como posso poupar energia sem por o Arduino para dormir?

Desactivando perifericos que nao usas.(ADC, Brown-out )
Lê isto tem materia boa

A biblioteca power.h é para desligar periféricos que não estejas a usar.

Reduzir a energia consumida sem colocar o Arduino pode ser feito desligando periféricos do Arduino que não estejam a ser usados como o ADC, Timers, WDT, etc... Tem também cuidado com o estado dos pinos. Não me lembra exactamente qual é o estado em que consomem menos energia, se em INPUT_PULLUP ou OUTPUT em LOW. Mas existe quem já tenha visto isso na net. Em todo o caso, nunca deixes os pinos a flutuar.

A maneira mais simples de reduzir a energia é reduzindo o clock do Arduino... em vez de teres o Arduino a correr a 16MHz, podes reduzir o clock para 1MHz e aí sim vais poupar imenso. O problema é que algumas bibliotecas do Arduino não funcionarão muito bem.

Dependendo do hardware, colocares o hardware a dormir ou mesmo desligando a alimentação com um transistor é outra possibilidade que pode valer bem a pena.

O virtualwire pode activar uma interrupção num dos pinos do Arduino? Essa é uma das maneiras de o acordar.

bubulindo:
O virtualwire pode activar uma interrupção num dos pinos do Arduino? Essa é uma das maneiras de o acordar.

Não sei se seria possível pois o receptor RF recebe uma infinidade de ruído do ar, pelo que entendi do funcionamento quem filtra isso é o sofware.

Quanto à desativar periféricos, a única coisa que tenho que fazer é adicionar a linha no código?

ex.:

power_adc_disable();
power_usart0_disable();
power_twi_disable();

--

HugoPT:
Desactivando perifericos que nao usas.(ADC, Brown-out )
Lê isto tem materia boa
Gammon Forum : Electronics : Microprocessors : Power saving techniques for microprocessors

Você sempre arranja ótimos links :slight_smile:
vou ler todo este artigo que parece bem completo, obrigado

Você sempre arranja ótimos links :slight_smile:
vou ler todo este artigo que parece bem completo, obrigado

Até te recomendo leres todos os artigos do Nick ja que ele tem excelentes tuturiais que todos os membros deviam ler.Para alem de ele ser um optimo membro deste forum a informaçao por ele disponiblizada é de uma optima qualidade.
Bons estudos