【ESP8266学习】micropython实现呼吸灯

通过在PWM控制,利用延时的方法实现了一个呼吸灯。但是延时会让其它任务无法执行因此决定使用定时器实现呼吸灯。

先定义一个LED_set函数,每调用一次函数就改变一次LED的亮度,然后将它指定为定时器的回调函数,就可以方便的实现呼吸灯了。改变dp和定时器周期,可以调整呼吸灯的速度。

  1. from machine import Pin, Timer, PWM
  2. LED = PWM(Pin(15))
  3. p = 0
  4. dp = 4
  5. def LED_set(t):
  6.     global p, dp
  7.     LED.duty(p)
  8.     p += dp
  9.     if p == 0 or p > 1023 – dp:
  10.         dp = -dp
  11. tm =Timer(1)
  12. tm.init(period = 10, mode = Timer.PERIODIC, callback = LED_set)
  13. while True:
    1. 后面就可以接运行的程序了。