One way to save power is to change the frequency the chip runs at

@@#include <io.h> ... /*

  lpDelay(quarterSeconds) - Low Power Delay.  Drops the system clock
                            to its lowest setting and sleeps for 256*quarterSeconds milliseconds.
  • /

int lpDelay(int quarterSeconds) {

  int oldClkPr = CLKPR;  // save old system clock prescale
  CLKPR = 0x80;    // Tell the AtMega we want to change the system clock
  CLKPR = 0x08;    // 1/256 prescaler = 60KHz for a 16MHz crystal
  delay(quarterSeconds);  // since the clock is slowed way down, delay(n) now acts like delay(n*256)
  CLKPR = 0x80;    // Tell the AtMega we want to change the system clock
  CLKPR = oldClkPr;    // Restore old system clock prescale

} @@ [1]

[1] http://www.reddit.com/r/arduino/comments/o5443/so_you_want_an_easy_way_to_save_power/

Share