6 | | || モジュール || 測定範囲[V] || bit数 || |
7 | | || BBB内蔵 || 0~1.8 || 12 || |
| 6 | |
| 7 | || モジュール || 測定範囲[V] || bit数 || |
| 8 | || BBB内蔵 || 0 ~ 1.8 || 12 || |
| 9 | || Arduino uno || 0 ~ 5 || 10 || |
| 10 | || [https://www.switch-science.com/catalog/1138/ Adafruit ADS1115] || 0 ~ VDD || 16 || |
| 11 | || [https://strawberry-linux.com/catalog/items?code=12031 INA226 I2Cディジタル電流・電圧・電力計モジュール] || 0~36 || 16(15) || |
| 12 | || [http://akizukidenshi.com/catalog/g/gK-08018/ MCP3425] || VSS-0.3 ~ VDD+0.3 || 16 || |
| 13 | |
| 14 | |
| 15 | 今回の目標としては |
| 16 | |
| 17 | * 安く作ること |
| 18 | * テスタやPLCのADCモジュール、マルチメーター等は使えない |
| 19 | * 分解能は12bit以上 |
| 20 | * スピードは考慮しない |
| 21 | |
| 22 | としたので、 |
| 23 | |
| 24 | * [https://www.switch-science.com/catalog/1138/ Adafruit ADS1115] |
| 25 | * [https://strawberry-linux.com/catalog/items?code=12031 INA226 I2Cディジタル電流・電圧・電力計モジュール] |
| 26 | * [http://akizukidenshi.com/catalog/g/gK-08018/ MCP3425] |
| 27 | |
| 28 | が候補となった。 |
| 29 | |
| 30 | |
| 31 | == I2C 接続試験 == |
| 32 | |
| 33 | 始めに通信が簡単そうな[https://strawberry-linux.com/catalog/items?code=12031 INA226 I2Cディジタル電流・電圧・電力計モジュール]で実験してみた。 |
| 34 | |
| 35 | ブレッドボードにINA226モジュールを差し、4.7kΩのプルアップ抵抗をSCL,SDAに接続、電源は3.3Vを接続した。モジュールのI2Cアドレスは0x40になるように設定。[[br]] |
| 36 | BBBとはI2C-2(P9-19,P9-20)にSCL,SDAをそれぞれ接続した。[[br]] |
| 37 | |
| 38 | BBBのI2C用のコマンドで確認。[[br]]入力した電圧は、VCC(3.3V) |
| 39 | |
| 40 | {{{ |
| 41 | root@beaglebone:~# i2cdetect -y -r 2 |
| 42 | 0 1 2 3 4 5 6 7 8 9 a b c d e f |
| 43 | 00: -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 44 | 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 45 | 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 46 | 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 47 | 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 48 | 50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- -- |
| 49 | 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 50 | 70: -- -- -- -- -- -- -- -- |
| 51 | root@beaglebone:~# i2cget -y 2 0x40 0x02 w |
| 52 | 0x720a |
| 53 | }}} |
| 54 | |
| 55 | 0x720aはリトルエンディアンなので、LSB,HSBを反転。(0x0a72 -> 2674)[[br]] |
| 56 | 2674 x 1.25[mV] = 3342.5[mV][[br]] |
| 57 | テスタで読んだ値が3.35Vなので正しそう。[[br]] |
| 58 | |
| 59 | その後、[http://akizukidenshi.com/catalog/g/gK-08018/ MCP3425]も試してみたが、レジスタを読むだけでなく、RDYビットを設定したりしないといけないらしいので、今回は[https://strawberry-linux.com/catalog/items?code=12031 INA226 I2Cディジタル電流・電圧・電力計モジュール]を使うことにした。 |
| 60 | |
| 61 | |
| 62 | == 基板作成 == |
| 63 | |
| 64 | 基板は、秋月の[http://akizukidenshi.com/catalog/g/gP-07190/ BeagleBone・ユニバーサルプロトケープ]に[https://strawberry-linux.com/catalog/items?code=12031 INA226 I2Cディジタル電流・電圧・電力計モジュール]を載せて、LEMOコネクタから電圧を入力するようにした。[[br]] |
| 65 | いつも問題になるケースは、[http://akizukidenshi.com/catalog/g/gP-07749/ BeagleBone Blck用ケース]を加工して使うことにした。 |
| 66 | |
| 67 | 最終的に、[attachment:bbb_tinyVoltMeter.pdf 回路図]は |
| 68 | |
| 69 | [[Image(bbb_tinyVoltMeter.png,300)]] |
| 70 | |
| 71 | このようにしました。[[br]] |
| 72 | ただ、コネクタとモジュール基板を上面に実装するとケースの蓋に当たってしまうので裏面に実装した。 |
| 73 | |
| 74 | == IOC == |
| 75 | |
| 76 | |
| 77 | |
| 78 | |
| 79 | |
| 80 | |
| 81 | |
| 82 | |