ATMega328 usypiana

Źródło: www.rocketscream.com
Usypianie Atmega328 jest banalnie proste. Procesor uśpiony, bez peryferiów pobiera około 0,04 mA* prądu, bez uśpienia około 7-8 mA. To znaczna różnica. Posłużyłem się biblioteką LowPower.h. Poniżej lekko zmodyfikowany szkic w którym dodatkowo zadeklarowałem wszystkie piny jako wyjścia. Podobno dzięki temu oszczędza się kilka kilka mA.

* sprawdzałem przy taktowaniu 16MHz, kwarc naturalnie zewnętrzny

// **** INCLUDES *****
#include "LowPower.h"

void setup()
{
  //pinMode(7, OUTPUT);
  
  for ( int i = 0; i < 20; i++) {
    pinMode(i, OUTPUT);
  }
}

void loop()
{

  sleepForTwoMinutes();

  // Do something here
  // Example: Read sensor, data logging, data transmission.
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(6000);                       // wait for a second
  digitalWrite(7, LOW);
  delay(1000);

}

void sleepForTwoMinutes()
{

  for (int i = 0; i < 15; i++)
    // Enter power down state for 8 s with ADC and BOD module disabled
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}

Dodaj komentarz