前回は事前準備編の続きです。今回は回路図を完成させます。備忘録として選定理由も残しておきたいと思います。
部品の選定
今回の構想で、最初から選定していたのはマイコンだけです。これはM5StickCを使います。これは液晶付きで安価なのが理由です。液晶画面は小さいのですが今回は数値だけなので、これで十分でしょう。
この機器は、計測+送信機が主な用途なので画面は必須ではありません。画面が不要ならM5AtomLiteでも良いと思います。
次に決めるのは、電流センサー(CTセンサー)です。これはSR-3704-150N を使います。理由は、いくつかの制作記事で使用されているのと、入手のしやすいさです。完全に使い方を理解すれば、別なものでも良いと思います。このあたりは経験値の程度によります。
さて、ここからは回路を決めないと選定できない部品です。話が長くなるので、結論の回路図を先に示します。
今回は、A/D変換基板(ADS1015)を使用しました。A/D変換はM5StickCだけでもできるのですが、ADS1015を使うと、精度・マイナス電圧・ノイズの問題(後記)を一気に解決できることが分かったからです。
シャント抵抗は、たいていの回路は100Ωを使っていますし、最悪、これは後で換装できます。
地味ですがコネクタも重要です。今回は配電盤付近に機器を置かないとテストができません。コネクタにしておかないと、ひどく面倒なことになります。また、CTセンサーのケーブル長が決めにくいため、うかつに端子がつけられません。こういった条件をクリアできるコネクタは...実はもう手元にあります。
これでパーツと回路は決まりました。あとは発注し、入荷しだい。回路の実装テストを行っていきます。
M5StickCのSCL、SDA、配線の関係からこの割り当てにしました。本来は逆のほうがいいようです。
以下は、私は一番知りたかった事で、どこにもきちんと書かれていなかったので、記録として残します。
精度・マイナス電圧・ノイズ、平均化
この手の問題は、先人の方の記事が本当に参考になります。回路はネットにたくさんありますが、実際やってみて直面する問題だからです。
精度 ESP32は、12bitのA/D変換精度がありますが、期待どおりの精度を得ようとすると、いろいろ工夫が必要なようです。ADS1015を使えば、I2Cで電圧値が返ってくるので、工夫は不要になります。
マイナス電圧
交流ですので電流が逆向きの時は、マイナス電圧になります。ESP32はマイナス電圧を扱えないので、中間の電圧を加えて、マイナス電圧にならないようにする必要があります。ただ、この中間電圧は抵抗分圧で付加しますが、抵抗精度等の問題から完全に中間にはなりません。このため、計測する電流が流れていなくても、若干の電圧が出てしまい電力量も0になりません。
ADS1015は、マイナス電圧も扱えるため中間電圧を付加する必要がありません。計測電流が流れていない場合は、完全に0vが返されます。
ノイズ・平均化
A/D変換された数値を見ていると、突然、とんでもない数値がまぎれこむことがあります。これがノイズです。ノイズを完全に防ぐ手立てはないので、差動入力という方法で回避します。ADS1015は、差動入力(2ch必要)が使えます。これをESP32だけでやろうとすると、プログラムが複雑になります。
電流の測定は、CTセンサー1つでも可能ですが、ADS1015は4chあるので、差動入力(2ch使用)を2つ使い、値を平均化することで、計測精度を上げています。
上記が、いろいろ調べてみてようやくわかったことです。わかってみると、今度は、おかしな製作記事が目に付くようになります。私のような経験不足の者だと、正直、混乱してしまいます。
Comments