Basic Library
Digital I/O
Analog I/O
Advanced I/O
Time
Math
Trigonometry
Random Numbers
Bits and Bytes
Interrupts
Serial Comm.
Standard Library
Servo Motor
Stepping Motor
Liquid Crystal
EEPROM
SPI
I2C (Wire)
SD Card
SD (File Operations)
Ethernet
Ethernet (Server)
Ethernet (Client)
Firmata
Periodic Operation
Power Save
Clock (RTC)
SoftwareSerial
Utility
Power Save
This library allows users to save power. The microcontroller operates based on a clock signal. It operates faster when the frequency of the clock is high, but that causes high consumption. For example, in the case of using dry-cell, the system turns off earlier. An efficient way to operate longer would be to stop the clock or make the clock slower. For example, when you measure the temperature every 1 minute, you stop the clock every time.
setPowerManagementMode
Description
Specifies power management mode.
Syntax
setPowerManagementMode(mode)
setPowerManagementMode(mode, lower, upper)Parameters
mode:
PM_NORMAL_MODE(Normal Mode)
PM_STOP_MODE(Enter to stop mode when delay() function is called)
PM_SNOOZE_MODE(Enter to snooze mode analogRead() function is called
lower: 0 to 1023 (low side of the AD conversion range, lower 2 bits are ignored.)
upper: 0~1023 (high side of the AD conversion range, lower 2 bits are ignored.)Returns
None
getPowerManagementMode
Description
Checks the current power management mode.
Syntax
unsigned char getPowerManagementMode()
Parameters
None
Returns
PM_NORMAL_MODE, PM_STOP_MODE, PM_SNOOZE_MODE
setOperationClockMode
Description
Sets the operation clock of the CPU and peripherals
Syntax
setOperationClockMode(unsigned char mode)
Parameters
mode:
CLK_HIGH_SPEED_MODE(high speed, 32MHz)
CLK_LOW_SPEED_MODE(low speed, 32.768kHz)Returns
None
Remark
When you set STOP/SNOOZE mode, do not select the CLK_LOW_SPEED_MODE, as that operation is ignored.
getOperationClockMode
Description
Checks the current clock mode.
Syntax
unsigned char getOperationClockMode()
Parameters
None
Returns
CLK_HIGH_SPEED_MODE, CLK_LOW_SPEED_MODE
Example
This example uses SNOOZE mode. A0 is output when A0 becomes 500 to 1023.
#include <Arduino.h>
void setup()
{
Serial.begin(9600);
setPowerManagementMode(PM_SNOOZE_MODE, 0, 100);
}
void loop()
{
int value = analogRead(A2);
Serial.println(value);
Serial.flush();
delay(100);
}