目录
简介
在本章中,我们将学习如何在Nodemcu开发板上使用I2C。
步骤一 材料准备
硬件准备:
- Nodemcu开发板×1
- 面包板×1
- PCF8591 AD / DA转换器模块×1
- usb数据线×1
软件准备:
- WebREPL(第一节有下载链接)
步骤二 原理说明
I2C(内部集成电路)总线由飞利浦在80年代早期设计,允许在同一电路板上的组件之间轻松通信。 TWI代表双线接口,对于大多数市场,这条总线与I²C相同。名称TWI由Atmel和其他公司引入,以避免与I²C相关的商标问题发生冲突。 I2C总线由两条线组成,SDA(串行数据线)和SCL(串行时钟线)。 MicroPython支持I2C的所有引脚如下:
为了测试,我使用了带传感器和执行器设备的PCF8591 AD / DA转换器模块。
以下是两种转换器,可以自由选择一种。
在本教程中,我使用PCF8591 AD / DA转换器模块和NodeMCU模块。要访问I2C,我们可以使用I2C库。
步骤三 电路搭建
我们直接将PCF8591 AD / DA转换器模块连接到NodeMCU板。以下是连接方法:
- PCF8591 AD / DA转换器模块SDA(A4) – > NodeMCU SDA(D1)
- PCF8591 AD / DA转换器模块(A5) – > NodeMCU CLK(D2)
- PCF8591 AD / DA转换器模块VCC – > NodeMCU VCC
- PCF8591 AD / DA转换器模块GND – > NodeMCU GND
硬件搭建如下图所示:
步骤四 编写程序
现在可以开始为NodeMCU编写MicroPython程序。创建一个名为i2cdemo.py的文件并编写这些程序:
from machine import Pin, I2C
import time
def run():
print('read sensor from i2c protocol')
PCF8591 = 0x48 # I2C bus address
PCF8591_ADC_CH0 = '\x00' # thermistor
PCF8591_ADC_CH1 = '\x01' # photo-voltaic cell
PCF8591_ADC_CH3 = '\x03' # potentiometer
# construct an I2C bus
gpio_scl = Pin(5)
gpio_sda = Pin(4)
i2c = I2C(scl=gpio_scl, sda=gpio_sda, freq=100000)
余下程序,粘贴到上面的程序下面即可:
步骤五 验证结果
现在可以将MicroPython程序上传并运行到NodeMCU板。并且可以在WebREPL中运行此命令执行:
>>> import i2csensor
>>> i2csensor.run()
如果成功,应该可以在WebREPL上看到程序输出。以下是示例输出: