Arduinoボードの電力消費

Arduinoボードの電力消費を計測する方法を学びます。


Author:Karl SöderbyLast revision:2024/02/05

Arduinoボードを含むすべての電子機器は電力を消費します。電力消費は、アンペア時(ampere-hours(Ah))で測定され、低電圧機器では、通常mAhで測定されます。

バッテリーで動作するプロジェクトや、電源に制約のある場合は、電力消費を考慮することが重要です。これは、どのような種類のバッテリーを使う必要があるのかを決めるのに役立ちます。

この記事では、電力プロファイラーを利用して、電力消費テストをどのように実施するのかを示します。電力プロファイラーは、ある時間電力消費を測定し、数千サンプルを記録するのに利用されます。この記事では、ハードウェア設定方法とソフトウェア設定方法、実際の電力消費テスト方法を示します。

i
この記事では、サードパーティ製品を利用します。

必要なハードウェアとソフトウェア

この記事の電力消費テストでは、以下のハードウェアとソフトウェアを使います。市場には、多くの代替製品があります。

電力消費の測定

電力省にの測定は、ArduinoボードとPCの間に電力プロファイラーを接続して実施します。電力プロファイラーはUSBでPCに接続し、ジャンプワイヤーでArduinoに接続します。電力消費を測定するには、電源とアースの2本の電線だけを使います。電源ケーブルはArduinoボードの電源ピンに接続し、アースケーブルはボードのGNDピンに接続します。

接続すると、電力プロファイラーはボードの電力消費を高精度で測定します。ボードが消費する電力をすべて検出し、(nRF Connect for Desktopのような)ソフトウェアツールで、電力消費を記録します。

我々は何を測定しているのでしょうか? とても簡単な用語では、すべての電子機器は、大小を問わず、電流が流れます。例えば、小さいLEDでは10mA(0.01A)の電流が流れ、サーボモーターでは、最大1000mA(1A)流れます。10mA流れるLEDを1時間点灯させた場合は、mAhで表し、1時間で消費されるミリアンペアを意味します。

電力消費の例

具体的な例として、Nano ESP32を使い、analogRead()関数を連続して実行する簡単なスケッチを実行します。テストを60秒実行し、100000サンプル記録しました。結果、平均で31.05mA流れました。

このアプリケーションを、300mAhのバッテリーで利用する場合は、以下の公式を使います。

この情報があれば、どのような形式のバッテリーを入手する必要があるかを推測することができます。例えば、600mAhのような、より大容量のバッテリーでは、理論的には2倍の期間動作し続けます。

i
バッテリーの放電率やバッテリーの全般的な品質といった、他の要因も影響することに注意してください。上述の公式と測定はガイドラインととらえてください。

ソフトウェア設定

ソフトウェア設定は、スケッチのアップロードとnRF Connect for Desktopのインストールの2ステップからなります。

スケッチのアップロード

このステップは簡単です。電力消費を測定したいスケッチをアップロードしてください。以下は、アナログピンを定期的に読み込む最小限のスケッチです。

1
2
3
4
5
6
void setup() {}

void loop() {
  int analog_value = analogRead(A0);
  delay(1);
}

デスクトップアプリケーションのインストール

電力消費を測定するのに、nRF Connect for Desktopを利用します。これは、PCにインストールするプログラムです。

ハードウェア設定

利用するプロファイラーは、Power Profiler Kit IIです。

  1. まず、USBケーブルをボードから抜きます。ボードには、電力プロファイラーから直接給電します。そのため、この時点ではUSBケーブルは不要です。
  2. キットに付属のケーブルを使い、以下の図のように、ボードのGNDと電源ピンに接続します。
i
重要な注意。このソフトウェア設定では、電力プロファイラーの"電源出力(Power Output)"を有効にします。電圧(3.3Vもしくは5V)をボードの電源ピンに合わせます。3.3Vピンに5Vを供給するとボードが壊れます。

電力消費テスト

ハードウェアとソフトウェアを設定したら、デバイスの電力消費を記録する方法を見ていきましょう。

  1. nRF Desktop Appを起動します。
  2. “Enable Power Output"オプションをクリックし、電源出力を有効にします。
  1. サンプル期間(60秒)とサンプル数(100k)を選択します。
  2. “Begin Sampling"をクリックし、電力消費テストを開始します。
  1. テストを行っている間、電力消費をリアルタイムに見ることができます。60秒後(あるいはサンプル期間が終了したら)、最大と平均の消費量を含むデータが出力されます。データを見るときに、ズームすることもできます。

これで、デバイスの電力消費を記録しました。この後参照するために、結果をメモしたり、.csvにエクスポートしたり、スクリーンショットをとったりします。

結果例

このセクションでは、いくつかのArduinoボードで実行した、異なる条件での試験結果をいくつか示します。

単純なアナログ入力

単純なアナログ入力のスケッチで、継続的にアナログピンを読み込みます。

1
2
3
4
5
6
void setup() {}

void loop() {
  int analog_value = analogRead(A0);
  delay(1);
}

このスケッチでの、各ボードでの結果を以下の表に示します。

ボード 最小 最大 平均
UNO R4 WiFi 82.86 mA 124.04 mA 92.63 mA
GIGA R1 WiFi 51.02 mA 94.08 mA 58.05 mA
Nano ESP32 29.18 mA 46.58 mA 31.05 mA

Arduino Cloud Basic

Arduino Cloud Basicスケッチは、Arduino Cloudにセンサーデータを送信し、ダッシュボードから有効にされたときにLEDを点灯します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "thingProperties.h"

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500);

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);

  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  ArduinoCloud.update();
  digitalWrite(LED_BUILTIN, led);
}

/*
  Since Led is READ_WRITE variable, onLedChange() is
  executed every time a new value is received from IoT Cloud.
*/
void onLedChange()  {
  Serial.print("Led status changed:");
  Serial.println(led);
}

このスケッチでの、各ボードでの結果を以下の表に示します。

ボード 最小 最大 平均
UNO R4 WiFi 94.07 mA 513.70 mA 140.19 mA
GIGA R1 WiFi 121.00 mA 477.44 mA 139.83 mA
Nano ESP32 36.70 mA 274.19 mA 58.81 mA

まとめ

このガイドでは、Arduinoボードの電力消費データを記録するのに、電力プロファイラーを使う方法を示しました。アプリケーションの電力要件を示し、適切な電源を選択するのに役立つ素晴らしいユーティリティです。

オリジナルのページ

https://docs.arduino.cc/learn/electronics/power-consumption/

最終更新日

August 2, 2026

inserted by FC2 system