wiki:epics/bbb/debian/voltmon

Version 2 (modified by michkawa, 2 years ago) (diff)

--

INA226を使用した簡易電圧モニタ

某所で、1-5V程度の出力電圧を監視したいとの依頼があったので、BBBでEPICS内蔵の簡易電圧モニタを作成することになった。
電圧の測定は、I2C通信ができるモジュールやIC、Serial通信が可能なテスタなどが候補に挙がった。

モジュール 測定範囲[V] bit数
BBB内蔵 0 ~ 1.8 12
Arduino uno 0 ~ 5 10
Adafruit ADS1115 0 ~ VDD 16
INA226 I2Cディジタル電流・電圧・電力計モジュール 0~36 16(15)
MCP3425 VSS-0.3 ~ VDD+0.3 16

今回の目標としては

  • 安く作ること
    • テスタやPLCのADCモジュール、マルチメーター等は使えない
  • 分解能は12bit以上
  • スピードは考慮しない

としたので、

が候補となった。

I2C 接続試験

始めに通信が簡単そうなINA226 I2Cディジタル電流・電圧・電力計モジュールで実験してみた。

ブレッドボードにINA226モジュールを差し、4.7kΩのプルアップ抵抗をSCL,SDAに接続、電源は3.3Vを接続した。モジュールのI2Cアドレスは0x40になるように設定。
BBBとはI2C-2(P9-19,P9-20)にSCL,SDAをそれぞれ接続した。

BBBのI2C用のコマンドで確認。
入力した電圧は、VCC(3.3V)

root@beaglebone:~# i2cdetect -y -r 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@beaglebone:~# i2cget -y 2 0x40 0x02 w
0x720a

0x720aはリトルエンディアンなので、LSB,HSBを反転。(0x0a72 -> 2674)
2674 x 1.25[mV] = 3342.5[mV]
テスタで読んだ値が3.35Vなので正しそう。

その後、MCP3425も試してみたが、レジスタを読むだけでなく、RDYビットを設定したりしないといけないらしいので、今回はINA226 I2Cディジタル電流・電圧・電力計モジュールを使うことにした。

基板作成

基板は、秋月のBeagleBone・ユニバーサルプロトケープINA226 I2Cディジタル電流・電圧・電力計モジュールを載せて、LEMOコネクタから電圧を入力するようにした。
いつも問題になるケースは、BeagleBone Blck用ケースを加工して使うことにした。

最終的に、回路図

このようにしました。
ただ、コネクタとモジュール基板を上面に実装するとケースの蓋に当たってしまうので裏面に実装した。

IOC

Attachments (6)

Download all attachments as: .zip