我用树莓派Pico学Python (4) - PWM

本文介绍了树莓派Pico如何利用PWM实现呼吸灯效果及更复杂的频率和占空比控制。通过修改代码,展示了10Hz频率下LED的快速闪烁,以及如何设置不同GPIO的PWM频率和占空比。内容还涵盖了树莓派Pico的8个独立PWM引擎及其对应GPIO的分布,强调了PWM设置对同一slice所有GPIO的影响。
摘要由CSDN通过智能技术生成

PWM全称是脉冲宽度调制(Pulse width modulation),也叫脉宽调制,从波形上看PWM就是方波。PWM的频率是1秒内有多少个方波脉冲,PWM的占空比是方波的一个周期内高电平所占的百分比。

介绍另一篇博文,对PWM的解释比较好:
https://blog.csdn.net/as480133937/article/details/103439546

从本专题的前几篇可以看到,树莓派Pico的GPIO可以输出高电平(可以点亮LED)或低电平(可以熄灭LED)。同时,树莓派的所有GPIO也都可以输出PWM,即按照一定的频率的高低电平的变化,而且频率和占空比可以很方便的设定和更改。

当然,按照之前闪烁LED的程序,GPIO实际上输出的也是PWM,只不过PWM的频率比较低(1Hz)。如果要提高频率、改变占空比的话,就要麻烦一些。 而按照直接输出PWM的方法,就非常的方便。

先来把闪烁LED的程序改为PWM输出的方式:

import time
from machine import Pin, PWM

# 设定GPIO25为PWM输出方式
pwm = PWM(Pin(25))
# 设定PWM的频率为10Hz,这是Pico的PWM输出的最低频率
pwm.freq(10)
# 设定PWM的占空比,取值范围0~65535, 而32768大约是一半,也就是50%
pwm.duty_u16(32768)

运行这段程序后,可以看到绿色LED10Hz的频率快速闪烁(树莓派Pico的PWM不能输出1Hz脉冲,也就不能让LED每1秒闪一次),而程序运行完毕后返回了命令提示符(如下所示),说明这段程序不是死循环,PWM是主芯片 “自动” 一直在输出的

MicroPython v1.16 on 2021-06-18; Raspberry Pi Pico with RP2040

Type "help()" for more information.
>>> %Run -c $EDITOR_CONTENT
>>> 
</
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值