To save power, the ATmega MCU supports some sleep modes, and unused peripherals can be turned off. The sleep modes differ in what parts remain active, by the sleep duration and the time needed to wake-up. We control sleep mode and active peripherals with the excellent Low-Power library by Rocketscream. The Low-Power library is simple to use but very powerful. The statement
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
puts the MCU
in SLEEP_MODE_PWR_DOWN
for 8 s. It disables the ADC
and the BOD
. Power-down sleep means that all chip functions are disabled until the next interrupt.
The for
loop ensure multiple run of sleep time as:
for (int i=0;i<10;i++) // 10 times 8 seconds sleep { LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); //sleep 8 seconds }
We provide professional power analysis via N6705C DC Power Analyzer by Keysight with voltmeter accuracy: Up to 0.025% + 50 µV, up to 18 bits, Ammeter accuracy: Up to 0.025% + 8 nA, up to 18 bits.
The power consumption in LowPower mode is less than 100 uA.
Sample of power consumption measurement for Adafruit32u4 with RFM95 and LowPower mode enabled.