今までは
通常、電流を測るにはテスタやデジタルマルチメータなどを使用しますが、高速に電流が切り替わる負荷機器では、その様子が上手く測定できません。高速な電流値を測定するにはオシロスコープが必要です。
一般にオシロスコープで電流値を測るためには、負荷機器に低抵抗値の抵抗器などを直列に繋ぎ測定しますが、負荷電流の大きさによっては変化が解りにくかったり、ノイズの影響で測定できなかったりします。
他に電流プローブを使用する方法があります。この方法ですと正確に測定することできます。しかし価格がかなり高い(30万円以上)ため、そこまで予算をかけられず購入を諦めることもあると思います。
実現方法
今回、オシロスコープによる電流測定に使用するものは、MAXIM製の「MAX4376FAUK+T」と言うICです。これを実装したプローブボードを作製し使用しました。
このICは1個300円程度で購入できます。電源は、006Pの電池を使用しています。ICの使い方に関しては、データシートを参照してください。回路は単純なためデータシートを参照することで、簡単に作製できると思いますが、回路よりも電流を測定するための抵抗器が少し特殊になるので、入手が難しいかもしれません。そしてこの抵抗器とボードの配線によって、測定値の精度が大きく変わるため、作製する際には注意が必要です。
作製したプローブボードの使用例として、WiFiモジュールのESP-WROOM-32を使用したボードに、Arduinoで作成したLEDの点滅プログラムを実行し、プローブボードを介した電流の様子を解説します。プローブボードとArduinoボードの写真を以下に示します。(写真をクリックすると拡大します)
プログラム
プログラムは以下のように、簡単なLED点滅プログラムです。プログラム中の「delay」の数値を変えることで、点滅速度を変えられます。(プログラムをクリックすると拡大します)
解説
以下は、オシロスコープによる測定結果画面の解説です。
以下の画面をご覧ください。
黄色のラインはチャンネル1です。WiFiボード全体の電源電圧を示します。
水色のラインはチャンネル2です。LEDの電流値を示します。
プログラム内でLEDが5秒周期でON、OFFしているので、それに合わせて0mV付近から70~80mV付近を往復しています。
ここで、チャンネル2の電流値の読み方を説明します。画面から単位は50mV/DIVとなっていますが、電流値としては10mVが1mAに換算されるため、実際には5mA/DIVとなります。その結果、LEDがONの時の電流値は7~8mAとなります。以下解説では必ず、10mVが1mAに換算されます。測定レンジが変わっても換算値は固定です。(以下のオシロスコープの画面はすべて、クリックで拡大します)
次の画面は、LEDにかかる電圧と電流を測定したものです。
黄色のラインはチャンネル1です。LEDにかかる電圧です。
水色のラインはチャンネル2です。LEDに流れる電流です。
ここで横軸方向の時間軸を見ると、10m秒間隔でLEDがON/OFFしていることが解ります。このくらい速いON/OFFサイクルになると、テスタでは平均電流として測れますが、どんな状態で電流が流れているのか確認できません。
次の画面は、WiFiモジュールを使用した、ボード全体の電圧と電流を測定したものです。
黄色のラインはチャンネル1です。電源電圧です。
水色のラインはチャンネル2です。電源電流です。
電源電圧は3.3V程度で一定ですが、電流は60mA~100mA程度の範囲で変化しています。ここで横軸方向に注目すると、10m秒間隔で変化しているラインは、前の画面で解説したLEDのON/OFFであることが解ります。それよりも短い周期で変化し、髭のように見える電流については次の画面をご覧ください。
この画面は、先ほどの測定データを時間軸方向に拡大したものです。これを見ると髭のような電流は、2本ずつ1m秒間隔で出ていることが解ります。これはArduinoプログラムで使用しているタイマが、基準時間として発生しているものだと思われます。
このように、プログラムによる電流の変化も観測することができます。
今回作製したようにプローブボードを使用しオシロスコープで電流値を観測することで、ハードウェアの動作やソフトウェアの動作について理解を深めることができます。試してみてはいかがでしょうか。