小实验:ESP32实现流水灯控制

本文介绍了如何利用ESP32的GPIO和PWM功能,通过Python编程实现一个简单的6路LED灯流水灯效果。代码详细展示了如何导入库、设置引脚、初始化PWM对象以及编写流水灯控制函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


在这里插入图片描述

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()

代码说明

  1. 导入所需库,包括machine库中的PinPWM类,以及time库。
  2. 定义LED灯引脚,这里使用了ESP32的6个GPIO引脚(5, 18, 19, 21, 22, 23)。
  3. 初始化PWM对象列表,用于存储每个LED灯的PWM对象。
  4. 设置LED灯引脚为输出模式,并初始化PWM对象。设置PWM频率为1000Hz,初始占空比为0。
  5. 定义流水灯控制函数flow_led(),用于控制LED灯的亮度变化。
  6. flow_led()函数中,遍历PWM对象列表,依次设置每个LED灯的占空比为50%,延时200ms,然后关闭LED灯。
  7. 使用while True循环不断执行流水灯控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原子星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值