Raspberry Pi 4使用4路INA219传感器I2C地址配置问题求助
排查步骤与解决建议
一、硬件接线排查
- 确认A0/A1引脚配置:INA219的A0、A1通过接GND/VCC/SDA/SCL的组合生成不同地址(比如GND+GND对应0x40,GND+VCC对应0x41,VCC+GND对应0x44,VCC+VCC对应0x45),要保证每个传感器的接线完全匹配你预设的地址,无虚焊、松动。
- 电源与共地检查:INA219的VCC必须接树莓派3.3V引脚,禁止接5V;所有传感器的GND必须和树莓派GND共地,这是I2C通信的核心前提。
- SDA/SCL接线确认:树莓派4的SDA是GPIO2(引脚3),SCL是GPIO3(引脚5),确保所有传感器的SDA统一接树莓派SDA,SCL统一接树莓派SCL,无接反。
二、I2C总线检测
- 先安装I2C工具:在终端执行
sudo apt-get update && sudo apt-get install i2c-tools - 扫描总线:执行
sudo i2cdetect -y 1(树莓派4的I2C总线编号为1),如果扫描结果里没有你预设的地址,直接回到硬件排查;若部分地址出现,对应传感器接线正常,未出现的则是接线问题。 - 异常情况处理:如果扫描出0x00或大量随机地址,大概率是SDA/SCL与GND短路,立即检查接线。
三、代码调试
- 确保库安装正确:常用的
adafruit-circuitpython-ina219库可通过pip3 install adafruit-circuitpython-ina219安装 - 明确指定传感器地址:示例代码如下
import board from adafruit_ina219 import INA219 # 根据你的A0/A1配置初始化对应地址的传感器 ina_sensor1 = INA219(board.SCL, board.SDA, address=0x40) ina_sensor2 = INA219(board.SCL, board.SDA, address=0x41) ina_sensor3 = INA219(board.SCL, board.SDA, address=0x44) ina_sensor4 = INA219(board.SCL, board.SDA, address=0x45) # 测试读取数据 print("传感器1总线电压: {}V".format(ina_sensor1.bus_voltage)) print("传感器2总线电压: {}V".format(ina_sensor2.bus_voltage))
- 报错处理:若出现
OSError: [Errno 121] Remote I/O error,说明对应地址的传感器硬件未连接到位,优先排查该传感器的接线。
四、常见坑点
- 启用I2C后需重启树莓派,执行
sudo reboot后再重新扫描总线 - 若总线上还有其他I2C设备,可在SDA/SCL与3.3V之间添加4.7kΩ上拉电阻(INA219内置上拉,但多设备场景下可能需要额外补充)
- 单独测试单个传感器:将一个传感器的A0/A1接GND(默认地址0x40),如果仍无法识别,大概率是传感器损坏
内容的提问来源于stack exchange,提问作者Geopam
相关产品推荐
相关产品推荐

