AVRの赤外線リモコンを作ったが、消費電力が気になっている。
でも残念な事にμAまで計れるようなテスタを持ってない。(笑)
10Ωを挟んで両端の電圧を測ってみよう。
待機時0.002/3V(ギリ測定範囲) だとすると0.25mA=250μAくらいかな?
カタログでは1MHz 1.8V時240μA(Active Mode)とあるのでまぁ正しい値?
CR2032が220mAhだから、220/0.25/24=36日 となり待機状態でも
1ケ月で電池がなくなってしまうではないか!!
set_sleep_mode(SLEEP_MODE_IDLE)
うーん、これをもっと深くsleepさせるようにしないと・・・
sleep.hを調べると ATmega48/88は6個のモードがあるのがわかる。

SLEEP_MODE_IDLE 基本モード(全機能)
SLEEP_MODE_ADC A/D変換雑音低減用
SLEEP_MODE_PWR_DOWN CLK停止(INT0,1,ピン変化,TWI割り込みのみ可)
SLEEP_MODE_PWR_SAVE 上記に加えTimer2が動作
SLEEP_MODE_STANDBY 外部発振器でのPWR_DOWN同等機能
SLEEP_MODE_EXT_STANDBY 上記に加えTimer2が動作
今回は内部CR発振、ピン変化割り込みでwakeするので、
set_sleep_mode (SLEEP_MODE_PWR_DOWN)
を使うのが一番よさげ。
あ、WDTも止めちゃえ。
変更後の消費電力:測定不能(手持ちのテスタの測定限界以下)
(μAオーダのテスタが欲しいな・・)
カタログ値では88P/88Vで1.8V時0.1μAだ。
まぁ3.0Vで1μA以下になってるだろう。 これなら
220/0.001/24/366=25年 となるので待機電力は実質無視できそうだ。
で、改良したソース一式は[Pana照明リモコンforAVR]から。
※ 使用に制限はありませんが「自己責任」でね。
最近のコメント