Version 2 (modified by michkawa, 7 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)
- bbb_tinyVoltMeter.pdf (15.1 KB) - added by michkawa 7 years ago.
- bbb_tinyVoltMeter.png (39.2 KB) - added by michkawa 7 years ago.
- IMG_0202.JPG (72.1 KB) - added by michkawa 7 years ago.
- IMG_0204.JPG (121.6 KB) - added by michkawa 7 years ago.
- IMG_0203.JPG (122.7 KB) - added by michkawa 7 years ago.
- IMG_0205.JPG (103.9 KB) - added by michkawa 7 years ago.
Download all attachments as: .zip