本节课我们将学习如何使用 ESP32 的machine.Pin
类来实现 IO 操作。machine.Pin
类是machine
模块中的一个硬件接口类,专门用于配置和控制 GPIO(通用输入输出)引脚。每个Pin
类对象都与一个物理引脚直接对应,可以用来驱动输出电压或读取输入电压。通过掌握Pin
类的使用,你可以灵活地控制 ESP32 的输入输出功能,为你的项目添加更多互动性。
本节课目标:
通过编程控制开发板上的LED灯,以500ms间隔交替闪烁,实现类似跑马灯的动态效果。
本节课内容:
-
- machine.Pin类简介
- time模块
- 硬件设计
- 软件设计
- 下载验证
一、machine.Pin类
Pin
类提供了设置引脚模式(输入或输出)的方法,以及获取和设置引脚数字逻辑值(0 或 1)的方法。要创建一个 Pin
对象,我们需要指定一个标识符,该标识符用于唯一标识特定的输入/输出引脚。标识符可以是一个整数、字符串,或者是一个包含端口和引脚号码的元组。
下面是MicroPython库的machine.Pin类链接。
类引脚 – 控制 I/O 引脚 — MicroPython latest 文档
1. machine.Pin类的构造对象
构造对象方法如下:
class machine.Pin(id, mode=-1, pull=-1,value=None)
使用示例:led = machine.Pin(2, Pin.OUT, value = 1)
构造函数的参数描述如下:
参数 | 描述 |
id |
|
mode |
|
pull |
|
value | 仅对 |
返回值:Pin
类对象
2. machine.Pin类的方法
(1)初始化引脚
方法原型如下:
led.init(mode=Pin.OUT, pull=None, value=None)
方法的参数描述如下:
参数 | 描述 |
mode |
|
pull |
|
value | 仅对 |
返回值:无
(2)获取或设置管脚输出电平
方法原型如下:
led.value([x])
方法的参数描述如下:
参数 | 描述 |
x |
|
返回值:管脚电平
(3)设置管脚输出高电平
方法原型如下:
led.on()
返回值:无
(4)设置管脚输出低电平
方法原型如下:
led.off()
返回值:无
二、time模块
1. 延时
- time.sleep(seconds):秒级的延时
- time.sleep_ms(ms):毫秒的延时
- time.sleep_us(us):微秒的延时
三、硬件设计
1. 例程功能
通过编程控制开发板上的LED灯,以500ms间隔交替闪烁,实现类似跑马灯的动态效果。
2. 硬件资源
- LED 灯:GPIO2 --> LED 【高电平:亮; 低电平:灭】
3. 原理图
四、软件设计
1. 程序流程图
2. 程序
from machine import Pin
import time
def led():
"""
控制开发板上的LED灯,以500ms间隔交替闪烁
"""
# 构造 Pin 对象
led = Pin(2, Pin.OUT, value=0)
while True:
led.value(1) # 设置 LED 亮
time.sleep_ms(500) # 延时 500ms
led.value(0) # 设置 LED 灭
time.sleep_ms(500) # 延时 500ms
led()
五、下载验证
可以看到开发板上的LED灯以500ms周期闪烁。