オシロスコープをデータロガーとして使う

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
2012年06月24日 更新。
電圧の自動測定の様子
電圧の自動測定の様子

目次

1. はじめに … 1ページ
2. データロガー用ソフトの作成 … 1ページ
3. データロガーによる電池の充電特性の自動測定の例 … 1ページ
4. データロガーによる電池の放電特性の自動測定の例 … 1ページ
5. まとめ … 1ページ

1.はじめに

電池や充電器の特性を評価するときに、長時間にわたって電圧や電流を測定する必要が出てきます。実験を省力化するためには、データロガーを使って自動測定を行う必要があります。

秋月電子で販売しているMAS-345というデジタルマルチメータは、4000円を切る値段で、パソコンとシリアルポート経由で通信する機能があり、データロガーとしてとして利用できます。私もMAS-345を購入しようかと思ったのですが、電圧と電流の2チャンネルの測定を行うには2台購入する必要があり、出費の面でも、置く場所に困る点でも躊躇していました。

私はインステックのGDS-1062というデジタルオシロスコープを使っているのですが、このオシロスコープの背面にはUSBコネクタがあります。「ひょっとして、USBでオシロとパソコンをつなげばデータロガーになるのではないか」と思い調べたら、案の定、データロガーとして使えることが分かりましたので、報告します。

2.データロガー用ソフトの作成

GDS-1062は、Windowsパソコンにドライバをインストールすれば、USB仮想シリアルポート経由でパソコンと通信ができます。パソコンからテキストベースのコマンドを送信すれば、GDS-1062のボタンやつまみを操作する代わりに、パソコンから各種操作ができたり、また、各種情報をパソコンに取り込んだりできます。GDS-1062にはMeasure機能があり、波形の平均電圧・ピークピーク電圧・実効値・周波数・周期・デューティー比など、各種の測定ができるのですが、これらの測定値もUSB仮想シリアルポート経由で取得できます。今回は、平均電圧を一定間隔でパソコンから取得するソフトを作成し、データロガーに仕立てました。

図1、ソフトのスクリーンショット
図1、ソフトのスクリーンショット

上の図は、今回作成したソフトのスクリーンショットです。ポート番号の欄で、GDS-1062と通信する仮想シリアルポートの番号を指定し、接続ボタン(上の図では「切断」と表示されている)をクリックすれば、パソコンとGDS-1062が交信を始めます。パソコンから5秒に1回、CH1とCH2の電圧を取得し、画面に表示します。

データ取得間隔の欄に、情報をファイルに記録する際の間隔を分単位で入力し、記録開始ボタンをクリックすると、データの記録を開始します。ファイルには、測定時刻とCH1・CH2の電圧が、CSVファイルで記録されます。ファイル名は、記録開始時の日付と時刻で自動的に決まります。例えば、2012年10月18日22時5分28秒に記録を開始した場合は、ファイル名がlog20121018_220528.csvとなります。ファイルが記録されるホルダは、実行ファイル(DataLogger.exe)があるのと同じフォルダになります。

記録を終了するには、記録終了ボタン(図1では「記録開始」と表示されている)をクリックします。GDS-1062との交信を終了したい場合には、切断ボタンをクリックします。

画面の右側には、現在のCH1・CH2の電圧と、ファイルに記録済みのデータ点数が表示されます。電圧はGDS-1062から指数表記で返ってくるので、そのまま表示しています。

このソフトは、Delphi 5で作ってしまったので、他の人にはあまり参考にならないかもしれませんが、下のリンクをクリックするとソースファイル付きでダウンロードできます。自己解凍型のファイルになっています。

GDS-1062をデータロガーとして使うためのソフト DataLogger.EXE (216kB)

なお、GDS-1000シリーズのデジタルオシロスコープは、USB経由での制御の仕方が共通のようですので、他のオシロでも今回のソフトがおそらく使えます。

広告

3.データロガーによる電池の充電特性の自動測定の例

自作の単3ニッケル水素電池充電器でエネループを充電した際の特性の測定について紹介します。

写真1、充電特性の測定風景
↑ 画像をクリックすると拡大
写真1、充電特性の測定風景

上の写真は、測定風景の写真です。(机が汚くてすみません。白く見えるのは、ほこりではなくて、工作の際にできた傷です。)

充電器のTP5とTP4の間に、電池の電圧が出ています。これをCH1で測定しています。また、TP4とTP3の間に、充電電流検出用抵抗(3Ω)の両端電圧が出ています。これをCH2で測定しています。(回路図を参照)

オシロスコープで電圧を測定しているので、CH1とCH2のGND電位は同じにしなければならないことに注意が必要です。2つの電圧の測定の際の共通端子であるTP4を、GDS-1062のGND端子に接続したため、CH1の電池の電圧は、負の値で表示されてしまいます。もしMAS-345などのデジタルマルチメータを2台使って測定していたら、電池の電圧は、正負を反転させずに測定できたはずです。また、2つの電圧の測定端子に、そもそも共通端子がない場合は、同時に測定することができません

自動測定を始める前に、電圧軸や時間軸を適切に設定しておく必要があります。時間軸の設定は、あまり神経質になる必要はありませんが、電圧軸に関しては測定の過程でどのように電圧が変化するかを予想して、変化の範囲が画面に収まるように設定しておく必要があります。(デジタルマルチメータなら、オートレンジ機能を使えるのでしょうが)

また、GDS-1062は垂直軸の分解能が8ビットですので、デジタルマルチメータほど細かい電圧が測定できません。そもそも、オシロスコープというのは、デジタルマルチメータよりは、電圧測定精度がよくないものです。今回紹介するデータロガーは、精密な測定には向きません。

測定間隔を1分にして測定した際のCSVファイルの冒頭部分は以下のようになります。

09:36:05,-1.080E+00,6.500E-01
09:37:05,-1.310E+00,6.380E-01
09:38:05,-1.330E+00,6.320E-01
09:39:05,-1.340E+00,6.290E-01
09:40:05,-1.340E+00,6.280E-01
09:41:05,-1.340E+00,6.270E-01
09:42:05,-1.340E+00,6.270E-01
09:43:05,-1.340E+00,6.260E-01

1行ごとに、時刻・CH1の電圧・CH2の電圧が記録されています。

CH1の電圧を-1倍すれば、電池の電圧が求まります。またCH2の電圧を3で割れば、充電電流が求まります。また、オシロスコープにはオフセット電圧が少しあります。入力をショートして測っても数mVの電圧が表示されますので、その値をあらかじめCH1とCH2の測定値から引いておく必要があります。

それらの計算結果をExcelでグラフ化したのが下の図です。

図2、充電時の電圧・電流の変化(自動測定)
図2、充電時の電圧・電流の変化(自動測定)

デジタルマルチメータで手動測定した場合と比べると、時間軸方向には密にデータが取れていることが分かります。一方で、電圧軸方向には分解能が悪く、電池の電圧が階段状に上昇しているように見えることも分かります。(なお、手動特性の時に用いたエネループとは別のエネループで今回の実験を行っています。充電電流の特性が手動測定の時と若干違うのは、電池の個体差が原因だと思われます。今回使ったエネループの方が、若干容量が大きいようです。)

電圧を精密に測定するにはデジタルマルチメータの方が良いのですが、オシロで自動計測すると、時間分解能が良いため、充電電流が複雑な曲線を描きながら減少していく様子が、より克明に記録されています。(現時点では、充電電流が単調減少しない理由は分かりません)

図2の充電電流の曲線を台形積分すると、電池に充電した電荷が計算できます。その結果をグラフ化したのが下の図です。

図3、充電電荷の時間推移
図3、充電電荷の時間推移

このグラフの赤い曲線を見ると、1900mAhちょっと充電したところで飽和している様子が分かります。単3エネループの容量は最小値が1900mAhなので、両者はほぼ一致しています。

4.データロガーによる電池の放電特性の自動測定の例

図3の測定をした直後の電池を、自作の簡易放電器につないで放電しました。その時の測定風景を次の写真に示します。

写真2、放電特性の測定風景
↑ 画像をクリックすると拡大
写真2、放電特性の測定風景

この放電器は、ダイオードと抵抗を直列につないだだけの簡易的なものです。ダイオードの電圧をCH1で測定し、抵抗の電圧をCH2で測定しています。(下図参照)

図4、簡易放電器を用いた放電実験の測定系
図4、簡易放電器を用いた放電実験の測定系

CSVファイルの冒頭部分は次の様になります。

09:31:17,-1.200E+00,1.580E-01
09:32:17,-1.180E+00,1.720E-01
09:33:17,-1.170E+00,1.730E-01
09:34:17,-1.170E+00,1.730E-01
09:35:17,-1.170E+00,1.730E-01
09:36:17,-1.170E+00,1.710E-01
09:37:17,-1.160E+00,1.690E-01

充電特性の測定の時と同様、まずCH1とCH2の測定結果からオフセット電圧を引いて補正します。次に、CH1のダイオードの電圧は、正負が反転していますので、-1倍します。また、CH2の抵抗の電圧は、抵抗値0.46Ωで割って、放電電流を計算します。ダイオードの電圧と抵抗の電圧を足すと、電池の電圧が求まります。

電池の電圧とダイオードの電圧を測定し、それらの差から抵抗の電圧を求める方法もありますが、桁落ちが発生したり、電圧を感度のよいレンジで測れなかったりして、測定精度が低下します。

電池の電圧と放電電流の時間推移をグラフ化したのが下の図です。

図5、単3エネループの放電特性
図5、単3エネループの放電特性

赤い曲線は電池の電圧を表しています。電圧が徐々に低下し、9.4時間で1Vまで低下しています。本来はここで放電を止めるのが理想なのですが、13.8時間も放電したため、電圧が0.9V近くまで低下し、少々過放電気味です。

とはいえ、抵抗だけで放電していたら、電圧が1Vに達すると、一気に電圧が低下していくので、あっという間に深い過放電になったと思われます。1Vから0.9Vまで2時間もかかっているのは、ダイオードによる電流制限の効果です。

青い曲線は放電電流を表しています。放電の終期において、放電電流が激減している様子が分かります。

放電電流を台形積分して、放電した電荷を求めたのが下のグラフです。

図6、放電電荷の計算結果
図6、放電電荷の計算結果

放電電荷が1900mAhちょっとで飽和しているのが分かります。充電した電荷のほとんど全部が放電時に取り出せていることが分かります。なお、電池の電圧は充電時のほうが0.2V程度高いため、充電時に電池に供給した電気エネルギーの一部が失われていることが分かります。(損失は20%弱か?)

図3と図6を比較して、放電時の電荷の方が、充電時の電荷よりも若干多い事に違和感を感じる人もいるかもしれません。実は、図3の充電実験は、21.4時間行っているのですが、最初の12時間だけをグラフ化しています。21.4時間充電した時の充電電荷は1958mAhでした。一方で、13.8時間放電した時の放電電荷は1932mAhでした。充電時の電荷の方が多いです。

そもそも、放電器の抵抗に精度5%の抵抗を使っていたり、電圧の測定にオシロスコープを使っていたりと、それほど高精度の測定はできていませんので、実験結果はそれを割り引いて考える必要があります。とはいうものの、これほど高効率に電荷を電池から取り出せたのは驚きです。電池を過充電していたら、効率はもっと下がったと思います。自作の充電器でも、充電終止電圧を正しく設定すると、過充電になる前に寸止めできていることが分かります。

5.まとめ

オシロスコープとパソコンを組み合わせると、簡単にデータロガーを組めることが分かりました。手動で測定する場合に比べて、短い間隔でデータが取れるので、信号の変化をより克明に記録できることも分かりました。電圧測定精度が悪いという欠点もありますが、一方で、ソフトを少し組み替えると、周波数やデューティー比など、オシロスコープのMeasure機能で測定できる色々な数値の記録ができます。応用次第では、面白い使い方ができそうです。

このページで使われている用語の解説

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。