Arduinoのソフトが何とかなりそうな状況なので、実際に測定する回路についても検証を進めておこう。
手元にある電流センサはこのページで紹介している。SCT-013シリーズにはいくつかの種類がある。大きく分けると、電圧で出力するタイプと電流で出力するタイプ。電圧で出力するタイプは、測定できる電流の範囲でいくつかのバリエーションがあることが分かる。
私が入手したのは、030(30Aで±1V出力)が1個と000(100Aで±50mA出力)が3個の2種類合計4個。(上記のカタログには000は33mAとあるが、別途仕様書を確認すると50mAとなっている。)
030と000では、インタフェース回路が別になる。AD変換では、電圧をデジタル化してコンピュータに取り込むこととなる。000は電流出力なので、電圧に変換しなければならない。やり方は、両端子の間に抵抗をはさんで、その両端の電圧を測定してやればいいと至って簡単。測定電流は自宅の配電盤で測定することを想定すると、概ね30Aまででよいので、その範囲内のセンサ電流を5Vに収まるように抵抗値を計算する。
ArduinoでAD変換するには、量子化について考慮しなければならない。サンプリング定理で、サンプリング周波数の1/2以上の周波数(ナイキスト周波数)は除去しておかなければならない。
現在は、1kHzサンプリングだが、もう少し上げて2kHzサンプリングまで持っていこうと考えているので、その場合のナイキスト周波数は1kHzとなる。
ローパスフィルタの最も簡単な実現方法は、抵抗(R)とコンデンサ(C)の直列回路。RCフィルタという。
遮断周波数 Fc=1/(2πRC) であるので、Fcが1kHzになるRCの組合わせを計算すると、
抵抗R=15k、コンデンサC=0.001uFでFc=1.061kHzとなる。
また、交流電流の測定であるため、センサの出力は、プラスマイナスで出てきてしまう。ArduinoのAD変換で測定できるのは、0~5Vの範囲。(電圧リファレンスを利用すれば1.1V)
そこで、バイアス電圧をかけて、底上げしてやらなければならない。
これらの回路を組込んで、CTセンサとArduinoのインタフェース回路を設計してみた。
さあて、準備が出来たので、さっそく実験して、電流が測定できるか試してみよう。