やりたい事3:電力計測精度向上

続いては、電力精度の向上です

これまでの計測精度は、CTセンサーの電圧値が微小で、1Aの電流に対し5mVの出力となっていました。

この出力値だと、せいぜい100W前後の測定精度であり、さすがに精度が荒いため、精度向上させたいと考えていました。

微小な電圧を増幅させるために、よく用いられるのが「OPアンプによる電圧増幅」との事でした。

実際OPアンプを購入し、色々試しましたが、回路を組むのが面倒になり、他の方法が無いか模索していた所、もっとよさそうな方法を見つけたため、その方法について調べてみました。

その方法とは、CTセンサの回路に取り付けていた「10Ωの負荷抵抗を、100Ωに変更する」というものでした。

なぜ負荷抵抗を大きくすると出力電圧を大きく出来るのか??

まず、CTセンサーの図を簡単に書くと、以下のような絵になります

(超雑で申し訳ない・・・)

赤線は、測定対象の電線、CTセンサは黒い巻き線の部分となっており、赤線に電流「A」が流れると、赤線の周りに磁界が発生します。

磁界が発生すると、それを取り囲んでいる磁性体に磁界が伝わり、その磁性体を取り巻いている巻き線に、電磁誘導の原理で、電流「a」が流れます。

この時、黒い巻き線の巻き数を「m」とすると、以下のような計算式が成り立ちます。

a = A / m

今回使用している巻き線の巻き数は2000なので、、、

a = A / 2000となり、1Aの電流が赤い線に流れると

a = 1 / 2000 = 0.0005

= 0.5mA

ということで、0.5mAの電流が流れるということになります。

この0.5mAの電流は、負荷が変わっても変動無く、0.5mA流れようとします(もちろん限界はありますが・・・)

この時、10Ωの負荷抵抗を使用していると、オームの法則より

I = 0.5mA

R = 10Ω

E = I・R = 0.0005 * 10 = 0.005 V

= 5mV

となります。

この式のRを100Ωに変えると

E = I・R = 0.0005 * 100 = 0.05 V

= 50mV

となり、10Ωの時と比べ、10倍の電圧出力が出来るようになります。

ちなみに・・・今回使用しているCTセンサは、負荷抵抗10Ω以下での使用を前提に設計されているため、負荷抵抗100Ωで使用した際に測定誤差が大きくなる等、弊害が出る可能性はあります。(Webで色々調べた限りでは、負荷抵抗100Ωでもそれなりの精度は出るみたいです)

と、オペアンプを使わなくても、10倍精度を出せる見込みが立ったため、さっそく負荷抵抗を100Ωに変更した版の「ワットメーターシールド」作成することとしました。

まず、こんな感じのArduinoシールド用基板を用意します

イーサネットシールドのLANソケットに干渉するため、基盤をカット

部品の配置と、はんだ付けをします

負荷抵抗は、100Ωの金属皮膜抵抗を使用

裏面はこんな感じ

出来上がり!

最後に、Arduinoのスケッチ内にある、電力計算式を修正します

       //###Ver2.0以降の設定 (負荷抵抗100ohm)
       g_sum_watt += (((a) * 0.0977) * (v * 141.4 / 1023));  //v2.4
       
       //###旧設定 (負荷抵抗10ohm)
       //g_sum_watt += ((a) * 0.977) * (v * 141.4 / 950);

A/D変換値が10倍になるため、係数を「0.977→0.0977」に変更しています

あと、電圧の測定値が若干ずれていたため、電圧がわも少し変更しています

以上で、電流値の測定精度向上の対策は終了となります。

今回の対策後、実際に発電及び、消費電力を測定してみた所、10Wほどの電球ON/OFFも計測できる精度となりました

測定誤差も5%未満と、まずまずの結果となりました。