使用 Micropython 和 NodeMCU 12E returns 空列表进行 I2C 扫描

I2C scan with Micropython and NodeMCU 12E returns empty list

我正在尝试将 MPU6050 与我的 NodeMCU 开发板挂钩,其中装有 Micropython。

我目前的接线如下:

MPU6050      Board
Vcc          3.3v
Gnd          Gnd
SDA          D6
SCL          D7

通过命令行,我尝试了以下命令:

>>> from machine import Pin, I2C
>>> i2c = I2C(sda=Pin(12),scl=Pin(13))
>>> i2c.scan()
[]
>>>

12 和 13 是我从 this 引出线中获取的 GPIO 值,我也像网上很多人一样尝试使用 D1 和 D2 引脚。

虽然我打算使用预制模块读取MPU6050的值,但我更想自己看看这个(预制模块似乎太多了,所以我想看看我是否可以自己做点什么).

我快疯了,因为我觉得一切都很好(根据其他人在网上看到的接线)。

一如既往,提前致谢!

结果代码是正确的,原因是面包板接触不良。

以防万一其他人遇到这个问题:经过数小时的努力,试图让 NodeMCU 在 micropython 上与 MCP23017 一起工作并得到空 i2c.scan() 我注意到问题是对于某些人来说micropython 不喜欢使用 D1 和 D2 的原因(当我在 arduino 上测试相同的硬件配置时它确实有效)。除了建议的芯片布线外,只需为 SDA 和 SCL 使用以下布线,就可以了:

SDA: D6
SCL: D7

你应该得到:

>>> i2c = machine.I2C(scl=machine.Pin(13), sda=machine.Pin(12))
>>> i2c.scan()
[32]