基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
Ethernet
Ethernetサーバー
Ethernetクライアント
Firmata
周期処理
省電力
時計(RTC)
SoftwareSerial
ユーティリティ
省電力
KURUMIを省電力で動作するためのライブラリです。マイコンはクロックをベースに動いています。クロックの周波数が高いとマイコンは早く動きます。しかしクロックの周波数を高くすると電流が大きくなります。例えば電池を使っている場合は早く切れてしまうことになります。電池を長く使用できるようにするには、プログラムの処理によってクロックの周波数を低くしたり、止めるようにします。例えば1分に1回温度を測るとき、温度を測るときだけクロックを動かし、それ以外はクロックを止めればよいことになります。
setPowerManagementMode
概要
省電力モードを設定します。
文法
setPowerManagementMode(mode)
setPowerManagementMode(mode, lower, upper)パラメータ
mode:
PM_NORMAL_MODE(通常モード)
PM_STOP_MODE(delay()関数実行時にSTOPモードに移行)
PM_SNOOZE_MODE(analogRead()関数実行時にSNOOZEモードに移行
lower: 0~1023(SNOOZEから復帰する下限アナログ値、下位2ビットは無効)
upper: 0~1023(SNOOZEから復帰する上限アナログ値、下位2ビットは無効戻り値
なし
getPowerManagementMode
概要
現在の省電力モードを取得します。
文法
unsigned char getPowerManagementMode()
パラメータ
なし
戻り値
PM_NORMAL_MODE, PM_STOP_MODE, PM_SNOOZE_MODE
setOperationClockMode
概要
クロックの動作速度を設定します。
文法
setOperationClockMode(unsigned char mode)
パラメータ
mode:
CLK_HIGH_SPEED_MODE(高速、32MHz)
CLK_LOW_SPEED_MODE(低速、32.768kHz)戻り値
なし
補足
省電力モード設定時(STOP/SNOOZE)、低速に設定することはできません。無効になります。
getOperationClockMode
概要
クロックの設定を取得します。
文法
unsigned char getOperationClockMode()
パラメータ
なし
戻り値
CLK_HIGH_SPEED_MODE, CLK_LOW_SPEED_MODE
サンプルプログラム
SNOOZEモードを使用して、analogRead(A0)が500~1023の値を取得したときに復帰して値を出力するプログラムです。
#include <Arduino.h>
void setup()
{
Serial.begin(9600);
setPowerManagementMode(PM_SNOOZE_MODE, 500, 1023);
}
void loop()
{
int value = analogRead(A0);
Serial.println(value);
delay(100);
}