MENU
  • ホーム
  • 生成AI
  • Drone
  • Minecraft
  • RaspberryPi
  • 随想
面白いこと発掘だ
northarantの研究室
  • ホーム
  • 生成AI
  • Drone
  • Minecraft
  • RaspberryPi
  • 随想
northarantの研究室
  • ホーム
  • 生成AI
  • Drone
  • Minecraft
  • RaspberryPi
  • 随想
  1. ホーム
  2. RaspberryPi
  3. INA219を使った電圧と電流の監視

INA219を使った電圧と電流の監視

2023 3/04
RaspberryPi センサー
2023年3月4日
目次

INA219

バッテリーを使って駆動しているので、あとどのくらいでバッテリーが無くなるかはチェックしたいところです。

ラズパイに入力される電圧は、5.5~6v程度にレギュレーターで下げているのですが、下げる前のバッテリー直の電圧と電流を常時監視するために私が使ったのがINA219というチップです。データシート等はこちらが参考になりました。

あわせて読みたい
INA219 のデータシート、製品情報、およびサポート | TI.com TI の INA219 は 26V、12 ビット、I2C 出力、デジタル電力モニタ です。パラメータ、購入、品質に関する情報の検索

このチップはあまり使われていないのか、参考になる記事が少ないので、ちょっと丁寧に解説してみます。

まず、チップに立っているピンヘッダーは次の6本です。

  • Vcc
  • GND
  • SCL
  • SDA
  • V-
  • V+

このうち、V-とV+は別の方法でも接続出来るので、私はそれ以外の4本をジャンパーワイヤーでブレッドボードに接続しました。

まず、このチップは、基本的には電流計です。V+からV-に流れる電流を計測します。ただ、マイナスの電流も計測できるので、極性は意識しなくても良いかもしれません。

さて、このINA219ですが、単体で繋いでみるとI2Cアドレスが40なのです。何と、PCA9685と同じアドレスなのです。ってことで、使えませ〜んとなるところなのですが、こういったチップはアドレスが被ることを想定されていて、アドレスを変更できるのです。ハンダゴテを使って!

基盤についている、A0,A1という部分がアドレスを変更する部分です。このA0の部分のハンダを溶かしてショートさせるとアドレスが+1の41となります。A1をショートさせると、アドレスが+2の42となります。両方ショートさせると、アドレスが+3で43になるのです。つまり、PCA9685と併用しなければ、同時に4台接続できることになります。私は、PCA9685との被りを解消したいだけなので、A0をショートしました。

INA219の接続(A0をショートしてアドレスを 0x41に)

ちなみに、PCA9685も複数接続を考えられていて、A0〜A5までありました。

つまり理論上は最大で64台のPCA9685を繋ぐ事ができます。そうすれば、pwm的には1024chのpwm信号を出せます。やらないけど。

さて、それではI2Cがどうなっているか、見てみましょう。

i2cdetect -y 1

無事、41chが使われていることが確認できました。70はPCA9685が使っているのですが、何用なのだろうか?

INA219のライブラリはこちらです。

GitHub
GitHub - chrisb2/pi_ina219: This Python library supports the INA219 voltage, current and power monit... This Python library supports the INA219 voltage, current and power monitor from Texas Instruments with a Raspberry Pi using the I2C bus. The intent of the libra...

pipで簡単にインストール出来ます。

pip3 install pi-ina219

サンプルプログラム

I2Cアドレスを変更しているので、そこも設定しないと正しく動きません。

from ina219 import INA219

SHUNT_OHMS = 0.1

ina = INA219(SHUNT_OHMS, address=0x41) # I2Cアドレスを41に指定して、inaのインスタンスを作成
ina.configure() # INA219の初期化

print("Bus Voltage: %.3f V" % ina.voltage())
print("Bus Current: %.3f mA" % ina.current())
print("Power: %.3f mW" % ina.power())
print("Shunt voltage: %.3f mV" % ina.shunt_voltage())

電源アダプターに繋いだ状態で実行した結果。

バッテリーから電源を供給して実行してみた結果。

バッテリーと電源の両方を使った状態で実行してみた結果。

USBからも給電しているので、電池の電圧は高く、電流は少なくなっているのが分かります。

これで、電源の監視ができるようになりました。

RaspberryPi センサー
INA219 バッテリー
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • PWM制御を用いたLEDの輝度調整
  • 無料AIを使った簡単な写真作成

この記事を書いた人

northarantのアバター northarant

1968年生まれ。職業は高校数学の教員。自分では変わり者だと思っています。常により良い未来を目指して、時に楽しく、時に苦しみながら、人生を歩いています。

関連記事

  • PWM制御を用いたLEDの輝度調整
    2023年2月27日
  • Picamera2を使った写真の撮影
    2023年2月26日
  • OSのクリーンインストール
    2023年2月19日
  • 自動ブレーキの搭載
    2023年2月18日
  • HC-SR04を用いた距離の測定
    2023年2月17日
  • 移動するだけのTANK
    2023年2月12日
  • モータードラーバーL9110S
    2023年2月9日
  • PCA9685を使ったLEDの点灯
    2023年2月8日

コメント

コメントする コメントをキャンセル

カテゴリー

  • Drone
  • Minecraft
  • music
  • Python
  • RaspberryPi
  • Twenty Twenty-Tree
  • これすごい
  • 生成AI
  • 随想

アーカイブ

  • 2025年6月
  • 2025年5月
  • 2024年12月
  • 2024年11月
  • 2024年9月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年3月
  • 2023年2月
  • 2023年1月

© northarantの研究室.

目次