You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MPU6050/GY-86模块I2C扫描出现3个未知地址的问题求助

问题分析与解决

首先要明确:GY-86不是单一传感器模块,它本身就集成了多个I2C设备,这是你扫出多个地址的核心原因之一:

  • 0x68(十进制104):你预期的MPU6050(加速度计+陀螺仪)
  • 0x1E(十进制30):模块自带的HMC5883L磁力计,这是GY-86标准配置里的一部分,并非额外接入的设备

而对于额外出现的0x6D(十进制109),可能的原因有以下几种:

1. 扫描代码调用错误

你的代码里使用了I2C.scan(i2c),这是错误的调用方式——scan是I2C实例的方法,不是类方法。正确的写法应该是:

from machine import Pin, I2C

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
devices = i2c.scan()  # 改为实例调用
print(devices)

错误的调用逻辑可能导致扫描结果异常,返回不存在的设备地址。

2. I2C总线信号不稳定

Raspberry Pi Pico的I2C引脚默认没有内部上拉电阻,如果你的GY-86模块也没有自带拉电阻,会导致SDA/SCL信号波动,出现误报地址。解决方法:

  • 给SDA(GP0)和SCL(GP1)引脚外接10kΩ的上拉电阻
  • 或者在初始化引脚时开启内部上拉:
    i2c = I2C(0, sda=Pin(0, Pin.PULL_UP), scl=Pin(1, Pin.PULL_UP), freq=400000)
    

3. 偶发扫描误码或模块版本差异

部分GY-86模块可能因批次不同集成了额外传感器,或者扫描时因电磁干扰出现偶发误码。可以多次运行扫描代码,看0x6D是否每次都出现:

  • 如果只是偶尔出现,大概率是信号干扰导致的误报
  • 如果每次都出现,可以查阅你手中GY-86的模块手册,确认是否存在第三个I2C设备

内容的提问来源于stack exchange,提问作者Celeste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:20:11