在MicroPython下使用RO2040的PWM功能非常简单,以PWM驱动板载LED形成呼吸灯的效果为例,
from machine import Pin, PWM from time import sleep # 初始化 PWM 引脚 (板载 LED 通常连接 GPIO25) # 如果使用外接 LED,可以连接其他 GPIO 引脚 led = PWM(Pin(25)) # 设置 PWM 频率 (Hz) led.freq(1000) # PWM 占空比范围: 0 - 65535 # 0 = 完全关闭, 65535 = 完全开启 def breathing_effect(): while True: # 逐渐变亮 for duty in range(0, 65535, 1000): led.duty_u16(duty) sleep(0.01) # 逐渐变暗 for duty in range(65535, 0, -1000): led.duty_u16(duty) sleep(0.01) # 运行呼吸灯效果 breathing_effect()
直接使用PWM库即可,开发板没有给GPIO25提供引脚,下面以GPIO16为例,查看PWM输出效果,
from machine import Pin, PWM from time import sleep # 如果使用外接 LED,可以连接其他 GPIO 引脚 led = PWM(Pin(16)) # 设置 PWM 频率 (Hz) led.freq(1000) # PWM 占空比范围: 0 - 65535 # 0 = 完全关闭, 65535 = 完全开启 def breathing_effect(): while True: # 逐渐变亮 for duty in range(0, 65535, 10000): led.duty_u16(duty) sleep(0.01) # 逐渐变暗 for duty in range(65535, 0, -10000): led.duty_u16(duty) sleep(0.01) # 运行呼吸灯效果 breathing_effect()
为了方便观察占空比的变化,改变了调节量,通过逻辑分析仪获取到的结果,

我要赚赏金
