MicroPython ESP32 pwm(脉宽调制)示例

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)
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值