【问题标题】:I2C scan with Micropython and NodeMCU 12E returns empty list使用 Micropython 和 NodeMCU 12E 进行 I2C 扫描返回空列表
【发布时间】:2018-02-17 15:06:59
【问题描述】:

我正在尝试将 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 pinout 获取的 GPIO 值,我也尝试过使用 D1 和 D2 引脚,就像网上很多人一样。

虽然我打算使用预制模块来读取 MPU6050 的值,但我还是希望自己看到这个(预制模块似乎过于庞大,所以我想看看我是否可以自己做点什么)。

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

一如既往,提前致谢!

【问题讨论】:

    标签: i2c nodemcu micropython


    【解决方案1】:

    以防万一其他人遇到这个问题:经过几个小时试图让 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]
    

    【讨论】:

      【解决方案2】:

      结果证明代码是正确的,原因是面包板中的接触错误。

      【讨论】:

        猜你喜欢
        • 2016-05-14
        • 1970-01-01
        • 2016-05-08
        • 1970-01-01
        • 2021-10-27
        • 2011-01-16
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多