Arduinoの消費電力

公開日: 電子工作 |

Arduinoにバッテリーを接続した時に流れる電流を計ってみました。

電流計測に使ったのは、METEX P-10と言う安物テスター。

バッテリーの電圧は、約12.4V

電流の計測ポイントは、レギュレータの手前で、回路全体にながれる電流となっています。

表に表示している電流値は、通電開始後数秒経った後の安定動作時の数値で、AVR起動時に流れる電流は考慮していません。

標準動作(Normal)に加えて、各スリープ時の電流も計ってみました。

標準動作時のスケッチは以下のような空のプログラムを走らせて計測。

void setup()<br />
{<br />
}<br />
void loop()<br />
{<br />
}<br />

スリープ動作時のスケッチは、以下の通り。
set_sleep_mode()の引数を書き換えて各スリープモードを計測しました。

<br />
#include <avr/sleep.h><br />
<br />
void setup()<br />
{<br />
}<br />
void loop()<br />
{<br />
  set_sleep_mode(SLEEP_MODE_IDLE);<br />
  sleep_mode();<br />
}<br />

表のモード表記の対応

Normal = 標準動作時
IDLE = SLEEP_MODE_IDLE
ADC = SLEEP_MODE_ADC
SAVE = SLEEP_MODE_PWR_SAVE
STANDBY = SLEEP_MODE_STANDBY
DOWN = SLEEP_MODE_PWR_DOWN

SLEEP_MODE_ADCは、本来省電力用に使うものでは無いのですが、一応おまけで計測してみました。

クロック表記の8MHzは、Pro用のブートローダーを書き込んだATMega328pを、8MHz(IO)は、Pro用のブートローダーで内蔵発振(Internal Oscillator)利用を指定したATMega328pを使用しています。

 

Duemilanoveボード

Arduino Duemilanoveの基板を使い、VINに直接バッテリーを繋いで動作させました。
Duemilanoveの回路図を見ると分かりますが、USBシリアルコンバータ(FT232RL)にも常時電力供給され、AVRの動力以外に余分な電流が流れています。

Arduino Duemilanove

利用したDuemilanoveは、8MHzで動作させる為に水晶発振子を付けたり外したりが簡単に行えるように改造しています。

Arduino Duemilanove クリスタル部分1 Arduino Duemilanove クリスタル部分2

丸ピンICソケット

ちなみに、クリスタルの受けには、丸ピンICソケットのピンだけを取り出して使ってます。

■計測結果

  Normal IDLE ADC SAVE STANDBY DOWN
16MHz 25.4mA 18.3mA 16.1mA 11.4mA 10.6mA 10.2mA
8MHz 19.3mA 15.6mA 15.2mA 10.9mA 10.5mA 10.3mA
8MHz(IO) 20.1mA 17.1mA 16.6mA 10.7mA 10.4mA 10.3mA

内蔵発振を使うより、外部発振の方が若干ながら省電力っぽい。
しかし、誤差の範囲とも言えなくもない・・・

AVR単体動作

Duemilanoveでは、無駄な電流が流れるので、ブレッドボード上でAVRを単体で動作させて、その時の電流を計ってみました。

Arduinoコンパチ・ブレッドボード ampere-test-arduino

動作チェック用にLEDを付けてますが、プログラムの実行中には点灯しません。
スケッチは先と同じ物を使用。

■5V駆動

レギュレータには、低損失CMOS三端子レギュレーターXC6202P502TBを使いましたが、一応比較の為に78L05でも試してみました。
下の( )内の数値が78L05を使った場合の値となっています。

  Normal IDLE ADC SAVE STANDBY DOWN
16MHz 15.2mA
(17.5mA)
8.0mA
(10.3mA)
5.8mA
(8.2mA)
1.34mA
(4.1mA)
0.57mA
(3.4mA)
0.13mA
(2.9mA)
8MHz 9.8mA
(12.2mA)
5.8mA
(8.2mA)
4.9mA
(7.3mA)
0.75mA
(3.5mA)
0.37mA
(3.2mA)
0.13mA
(2.9mA)
8MHz(IO)

10.6mA
(12.9mA)

6.1mA
(9.1mA)
5.4mA
(7.8mA)
0.60mA
(3.4mA)
0.23mA
(3.0mA)
0.13mA
(2.9mA)

結果からすると、Duemilanoveより10mA程省電力になっている。
DuemilanoveのFT232RLや電源確認用LEDに10mA程流れているっぽいことが分かった。

■3.3V駆動

レギュレータに、低損失CMOS三端子レギュレーターXC6202P332TBを使用。
3.3Vレギュレータは、通常品を持っていないので、低損失版のみで計測。

3.3Vで16MHz駆動させるのは、動作保証の範囲を超えたイレギュラーな使い方なのですが、動かすことは可能らしいので一応計測してみました。

  Normal IDLE ADC SAVE STANDBY DOWN
16MHz 6.5mA 2.4mA 1.1mA 0.86mA 0.43mA 0.10mA
8MHz 3.7mA 1.3mA 0.6mA 0.49mA 0.28mA 0.09mA
8MHz(IO)

3.5mA

1.4mA 0.6mA 0.38mA 0.17mA 0.09mA

5V駆動では外部発振の方が省電力だったのが、3.3Vでは内蔵発振が逆転する結果に。

最後に

素人が安物テスターを使って調べた結果なので、あくまでも目安として参考にして頂ければと思います。

しかし、まぁ、やはり、3.3V・8MHz駆動が圧倒的に優位な結果になりました。
スリープでパワーダウンさせればμAレベルにまで下がるのを確認できたので、今後、太陽電池の何かしらのコントローラを作る場合、これを駆使することになりそうです。

関連記事

LEDランタン

LEDランタンを作ってみる

太陽電池を有効活用する為に、LEDランタンを手作りしてみました。 ランタンの本体となるのは、1

記事を読む

分圧回路へ接続

Arduinoで電圧計を作ってみる

今後、色々と太陽電池を使った電子工作をして行こうと思っているのですが、何を作るにしても電圧監視は必至

記事を読む

手作りLEDランタン

LEDランタン その2

先日作ったLEDランタンの電流制限抵抗を変えて明るさを確認してみました。 左から、1k&Ome

記事を読む

arduino-voltmeter2

Arduinoで電圧計を作ってみる その2

前回作ったArduino電圧計は、出力がシリアルでPCが無いと結果が見られない状態でしたので、今回は

記事を読む

arduino 電圧計2

Arduinoで電圧計を作ってみる その3

前回作ったArduino電圧計を、ケースに入れて完全に単体で動くようにしました。  

記事を読む

Comment (2件)

  1. ピンバック: トランスレス電源をシミュレート2 « JUST-K

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

太陽電池パネルにベランダの手摺りの影
太陽電池パネルの発電不良

ここの所、夕方の日没時でもバッテリーの残量が殆ど無い状態が続いていて、

Arduinoコンパチ・ブレッドボード
Arduinoの消費電力

Arduinoにバッテリーを接続した時に流れる電流を計ってみました。

手作りLEDランタン
LEDランタン その2

先日作ったLEDランタンの電流制限抵抗を変えて明るさを確認してみま

LEDランタン
LEDランタンを作ってみる

太陽電池を有効活用する為に、LEDランタンを手作りしてみました。

arduino 電圧計2
Arduinoで電圧計を作ってみる その3

前回作ったArduino電圧計を、ケースに入れて完全に単体で動くように

PAGE TOP ↑