weixin_50697999 2021-09-02 14:29 采纳率: 73.7%
浏览 55
已结题

esp32+micropython环境 请问如何实现按键切换灯串效果啊?

esp32+micropython环境
请问如何实现按键切换灯串效果啊?
一个gpio引脚做按键 一个gpio引脚做灯
几个效果的方法已经写好了
效果:按一下按键,响应一个效果,再按一下切换下一个效果如此循环。
问题:其中有三个效果使用循环语句写的,没办法跳出循环,就没办法切换效果。请问判断按键按下的语句要写在哪里才能实现切换?
下面是我的代码:请大神看下问题所在!


from machine import Pin,PWM,Timer
import time

def led_on():
    print('led_on')
    led.value(1)
def led_off():
    print('led_off')
    led.value(0)
def led_huxi():
    print('led_huxi')
    pwm = PWM(led)
    pwm.freq(1000)
    for duty in range(0,800,10):
        pwm.duty(duty)
        time.sleep_ms(10 )
    for duty in range(800,0,-10):
        pwm.duty(duty)
        time.sleep_ms(10)
def led_shan():
    print('led_shan')
    led.value(1)
    time.sleep_ms(1000)
    led.value(0)
def led_sos():
    print('led_sos')
    for i in range(3):
        led.value(1)
        time.sleep_ms(100)
        led.value(0)
        time.sleep_ms(100)
    for i in range(3):
        led.value(1)
        time.sleep_ms(500)
        led.value(0)
        time.sleep_ms(500)
    for i in range(3):
        led.value(1)
        time.sleep_ms(100)
        led.value(0)
        time.sleep_ms(100)

def key_control(key):
    global state
    time.sleep_ms(10)
    if key.value() == 1:
        return
    while key.value() == 0:
        pass
    state += 1
    if state == 1:
        led_on()
    elif state == 2:
        led_huxi()
    elif state == 3:
        led_shan()
    elif state == 4:
        led_sos()
    elif state == 5:
        led_off()
    elif state == 6:
        state = 0
       
led = Pin(5,Pin.OUT)
led.value(0)
key = Pin(18,Pin.IN,Pin.PULL_UP)
state = 0


key.irq(key_control,Pin.IRQ_FALLING
  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-09-06 10:11
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月10日
  • 修改了问题 9月2日
  • 创建了问题 9月2日

悬赏问题

  • ¥15 现在新建了一个f1的就不行了包括所有新建的项目都无法生成,路径命名都没问题,keil和cubemx重装过还是不行,如何解决?(标签-java|关键词-固件)
  • ¥15 web前端开发怎么实现像图片这样的页面啊?
  • ¥15 ubuntu 20.04 网卡启用后,只有ipv6 没有 ipv4 无法上网
  • ¥15 QT任务管理器无法正确获取展开,有悬赏15元速求,如何解决?(相关搜索:标识符|结构体)
  • ¥15 使用delphi 10.3+intraweb 生成的页面怎么实现自动滚屏
  • ¥20 思科:Router c3600 MN-4E插槽
  • ¥15 16进制修改视频的元数据
  • ¥15 HTML中css的位置信息居然会导致元素大小发生变化
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 有偿指导软件编程与八股