文章目录
- 代码
- 代码说明
ESP32提供了多路IO接口,下面的这个小试验实现了一个简单的流水灯控制,可以控制6个灯珠,当然也可以更多,可以根据情况增加和减少。
代码
将代码命名为main.py,上传到开发板,接好电路,运行即可。
# 导入所需库
from machine import Pin, PWM
import time
# 定义LED灯引脚
led_pins = [5, 18, 19, 21, 22, 23]
# 初始化PWM对象列表
pwm_list = []
# 设置LED灯引脚为输出模式,并初始化PWM对象
for pin in led_pins:
pwm = PWM(Pin(pin))
pwm.freq(1000) # 设置PWM频率为1000Hz
pwm.duty(0) # 设置初始占空比为0
pwm_list.append(pwm)
# 流水灯控制函数
def flow_led():
for pwm in pwm_list:
pwm.duty(512) # 设置占空比为50%
time.sleep_ms(200) # 延时200ms
pwm.duty(0) # 关闭LED灯
# 循环执行流水灯控制
while True:
flow_led()
代码说明
- 导入所需库,包括
machine
库中的Pin
和PWM
类,以及time
库。 - 定义LED灯引脚,这里使用了ESP32的6个GPIO引脚(5, 18, 19, 21, 22, 23)。
- 初始化PWM对象列表,用于存储每个LED灯的PWM对象。
- 设置LED灯引脚为输出模式,并初始化PWM对象。设置PWM频率为1000Hz,初始占空比为0。
- 定义流水灯控制函数
flow_led()
,用于控制LED灯的亮度变化。 - 在
flow_led()
函数中,遍历PWM对象列表,依次设置每个LED灯的占空比为50%,延时200ms,然后关闭LED灯。 - 使用
while True
循环不断执行流水灯控制。