呼吸灯使用的是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)

最后修改:2022 年 05 月 22 日
如果觉得我的文章对你有用,请随意赞赏