使用Micropython和NodeMCU 12E进行I2C扫描会返回空列表

时间:2017-09-08 16:15:24

标签: i2c nodemcu micropython

我试图用我的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的值,但我希望自己能够看到这一点(预先制作的模块似乎过于庞大,所以我想看看我是否可以自己做一些事情)。

我变得非常疯狂,因为对我来说一切似乎都很好(根据网上看到的其他人的布线也是如此)。

一如既往,提前谢谢!

2 个答案:

答案 0 :(得分:0)

原来代码是正确的,原因是面包板中的错误接触。

答案 1 :(得分:0)

以防万一其他人遇到这个问题:经过数小时的努力,试图使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]