やりたい事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%未満と、まずまずの結果となりました。