物联网开发笔记(15)- 使用Wokwi仿真micropython on ESP32开发板实现流水灯控制(可加减速)

一、目的

通过Wokwi仿真micropython on ESP32开发板,实现流水灯控制,可通过按键来改变流水灯的行为。

二、硬件环境

 

三、代码

代码的具体意思我都写在备注里了。都能看得懂哈。

main.py

'''
写一个流水灯,赤橙黄绿,线材对应相应的颜色,采取不同的颜色按钮对应不同的功能,
粉色为加速,蓝色为减速,白色为默认,并且把相应的ID改为对应的按键名。
整体流程就是:主程序是定时器流水灯的闪烁,中断服务是时间的控制,
运行顺序是从头到尾之后,通过定时器的调用来运行不同是函数。
'''
from machine import Pin,Timer  # 导入GPIO脚和定时器
import time,utime,machine  # 导入时间模块

#定义流水灯
Speed = 1000  # 控制频率
L_Red = Pin(27, Pin.OUT)  # 实例化27脚为输出模式
L_blue = Pin(33, Pin.OUT)  # 实例化33脚为输出模式
L_Yellow = Pin(32, Pin.OUT)  # 实例化32脚为输出模式
L_Green = Pin(25, Pin.OUT)  # 实例化25脚为输出模式  
'''
#配置在引脚的触发源处于活动状态时调用的中断处理程序。
如果引脚模式是Pin.IN 则触发源是引脚上的外部值。 
如果引脚模式是Pin.OUT 则触发源是引脚的输出缓冲器。 
如果引脚模式是Pin.OPEN_DRAIN 那么触发源是状态'0'的输出缓冲器和状态'1'的外部引脚值。
'''
Leds = [L_Red, L_blue, L_Yellow, L_Green]  # 创建流水灯列表
Tim_S = Timer(0)  # 构建定时器,创建控制速度对象。
i = 0  # 控制灯的循环

def Twinkle(t):  # 定义闪烁函数
    global i  # 设置全局变量i, 用于切换LED
    print("Speed={}".format(Speed))  # 打印LED闪的速度
    Leds[i%4].value(1-Leds[i%4].value())  # 切换LED
    i = i + 1

def enter(t):  # 定义一个默认速度的函数
    global Speed  # 设置全局变量Speed, 用于调节LED闪的速度
    Speed = 500  # 定义默认速度
    Tim_S.init(period=Speed,mode&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔都飘雪

您的1毛奖励是我创作的源源动力

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

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

打赏作者

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

抵扣说明:

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

余额充值