segunda-feira, 28 de setembro de 2015

Como economizar o consumo de energia do Arduino

    Quando alimentado com 5V a partir da conexão USB, normalmente um Arduino não consome muita energia. O Arduino Uno, por exemplo, consome cerca de 40mA, correspondendo a apenas 200mW. Isso significa que pode facilmente funcionar com uma bateria de  9V durante umas 4 horas. 
    O consumo de corrente é importante quando o Arduino deve funcionar por um longo período de tempo usando baterias como monitoração remota ou no caso de situações de controle em que o uso de bateria ou energia solar é a única opção. 





    Consumo de energia das placas Arduino 

    A tabela abaixo mostra os resultados da medição direta do consumo de corrente das placas com um amprerímetro.


    É interessante observar que, se ao analisar as medidas obtidas com um Arduino que opera a 5V com e sem microcontrolador, a diferença será de apenas 15mA. Isso significa que os demais 32 mA estão sendo consumidos pelas placa. A placa de Arduino contém o chip da interface USB, um LED "ON" (Arduino ligado) e os reguladores de tensão de 3,3V. Todos consomem alguma energia mesmo sem o microcontrolador. 

Desligando oque não for necessário

    Os chips ATmega possuem de um gerenciador muito sofisticado do consumo de energia, sendo possível desligar os recursos (módulos) que não estão sendo usados no momento pelo microcontrolador, economizando uma pequena quantidade de corrente.
    Além disso, pode-se ligar e desligar coisas de dentro do seu sketch, Assim, por exemplo quando precisar realizar uma leitura analogRead, pode ativar o conversor analógico-digital(ADC) e desativar-lo após a leitura.
    O consumo de energia (power) é controlado através de uma biblioteca denominada avr/power.h, que contém funções na forma de pares que desabilitam/habilitam os recursos do microcontrolador. Assim, a função power_adc_disable desabilita o ADC e a função power_adc_enable volta a habilita-lo. 
    Entretanto a economia não é muito eficaz. O scketch abaixo mostra qual foi a programação .


 #include <avr/power.h>  
 void setup()   
 {  
  pinMode(13, OUTPUT);  
 // power_adc_disable();  
  power_spi_disable();  
 // power_twi_disable();  
 // power_usart0_disable();  
 // power_timer0_disable();  
 // power_timer1_disable();  
 // power_timer2_disable();  
 // power_all_disable();  
 }  
 void loop()   
 {  
 }  

   


A tabela abaixo mostra as principais funções.




Próximo post irei comentar como adormecer e reativar o Arduino.




Nenhum comentário:

Postar um comentário