MicroPython ESP32 pwm(脉宽调制)示例
- ✨本示例基于
Thonny
开发平台✨
📖ESP32 PWM
PWM可以在任何有输出功能的引脚上使用。PWM的基频可以设置范围在1Hz到40MHz,注意最好选择不要太极端,注意实现的条件是否满足。基础频率越高占空比减少.
📑PWM属于machine模块中的类成成员
>>> from machine import PWM
>>> help(PWM)
object <class 'PWM'> is of type type
init -- <function>
deinit -- <function>
freq -- <function>
duty -- <function>
duty_u16 -- <function>
duty_ns -- <function>
📝成员函数功能说明
- 🌿
pwm.freq()
: 获得当前的PWM频率. - 🌿
pwm.freq(0-1023)
: 设置PWM频率:0-1023 - 🌿
pwm.duty()
:获得当前的PWM占空⽐:0-8192 - 🌿
pwm.duty(0-100)
:设置占空⽐:0-100 - 🌿
deinit()
: 关闭PWM - 🌿
freq(Pin,freq,duty)
: 设置PWM频率
🧾PWM示例代码
from machine import Pin, PWM
pwm0 = PWM(Pin(2)) # 通过Pin对象来创建PWM对象
pwm0.freq() # 获得当前的PWM频率
pwm0.freq(1000) # 设置PWM频率
pwm0.duty() # 获得当前的PWM占空⽐
pwm0.duty(100) # 设置占空⽐
print(pwm0.duty() )
pwm0.deinit() # 关闭PWM
pwm2 = PWM(Pin(2), freq=500, duty=50) # 创建PWM同时设置参数
- ⛳呼吸灯效果
import time
from machine import Pin,PWM
pwm =PWM(Pin(22),100)
while True:
for i in range(0,1023,20):
pwm.duty(i)
time.sleep(0.5)
for i in range(1023,0,-20):
pwm.duty(i)
time.sleep(0.5)