1. 呼吸灯¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # 源码来源 http://www.1zlab.com/wiki/micropython-esp32/pwm/
import time, math
from mpython import *
def pulse(switch, period, gears):
# 呼吸灯核心代码
# 借用sin正弦函数,将PWM范围控制在 23 - 1023范围内
# switch 开关对象
# period 呼吸一次的周期 单位/毫秒
# gears 呼吸过程中经历的亮度档位数
for i in range(2 * gears):
switch.write_analog(int(math.sin(i / gears * math.pi) * 500) + 523)
# 延时
time.sleep_ms(int(period / (2 * gears)))
# led 灯对象
switch_led = MPythonPin(0, PinMode.PWM)
# 呼吸十次
for i in range(10):
pulse(switch_led, 2000, 100)
|