本帖最后由 dcexpert 于 2018-7-31 09:27 编辑
在PWM中,我们利用延时的方法实现了一个呼吸灯。但是使用延时不是一个好的方式,这会让其它任务无法执行,因此我们利用前面介绍过的定时器,使用定时器实现呼吸灯。
先定义一个LED_set函数,每调用一次函数就改变一次LED的亮度,然后将它指定为定时器的回调函数,就可以方便的实现呼吸灯了。改变dp和定时器周期,可以调整呼吸灯的速度。
- from machine import Pin, Timer, PWM
- LED = PWM(Pin(21))
- p = 0
- dp = 8
- def LED_set(t):
- global p, dp
- LED.duty(p)
- p += dp
- if p == 0 or p > 1023 - dp:
- dp = -dp
- tm =Timer(1)
- tm.init(period = 10, mode = Timer.PERIODIC, callback = LED_set)
复制代码
此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处