请注意,本文编写于 975 天前,最后修改于 953 天前,其中某些信息可能已经过时。
呼吸灯使用的是PWM脉冲信号,不同的脉冲信号可以输出不同的亮度
树莓派pico-PWM(脉冲宽度调制)
导入PWM类
from machine import PWM
使用PWM类中的PWM对象构造函数
PWM(pin)
#指定并初始化gpio为PWM输出
#参数pin为Pin对象
deinit()函数
PWM.deinit()
#清空初始化并停止PWM输出
freq()函数
PWM.freq([value])
#PWM频率设置函数
#pwm的频率:
#是指1秒钟内信号从高电平到低电平再回到高电平的次数
duty_u16()函数
PWM.duty_u16([value])
#设置PWM的占空比
#占空比就是高电平在一个周期中所用的时间占一个周期的多少
duty_ns()函数
PWM.duty_ns([value])
#设置脉宽时间
#脉宽时间就是一个周期输出高电频的时长
例子
from machine import Pin,PWM
import utime
#导入需要的库
led = PWM(Pin(25))#将gipo25设置为PWM输出设置led为pwm对象
led.freq(1000)#设置led的频率
led_duty = 0
led_direction = 1
while True:
led_duty += led_direction
if led_duty >= 100:
led_duty = 100
led_direction = -1
elif led_duty < 0:
led_duty = 0
led_direction = 1
#使占空比从0%到100%从100%到0%的循环
led.duty_u16(int(led_duty * 655.36))
#将led_duty设置为占空比
if led_duty % 5 == 0:
print(led_duty)
#输出5的倍数以便生成图像
utime.sleep(0.01)