本文主要是介绍泰山派通过vscode PWM代码实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 使用python-periphery
python-periphery 库支持的PWM输出是基于Linux的PWM子系统实现的,所以要想利用该库做PWM输出, 需要板卡提供支持。像泰山派板卡,就可以完美使用 python-periphery 库实现PWM输出。 这样这样一来,就不需要我们在软件层面上利用GPIO模拟PWM输出。
1.1. 安装 python-periphery
# 在板卡使用如下命令安装
sudo pip3 install python-periphery
1.2. periphery输出PWM
from periphery import PWM
import timetry:# 定义占空比递增步长step = 0.05# 定义range最大范围rangeMax = int(1/0.05)# 选择具体的PWM的引脚: 参数一: 具体是哪一个PWM ,chip几就写几 (8,9,14 对应 chip0 , chip1 ,chip2),# 参数二: 这个PWM的第几个通道? PWM_M? 这个? 是什么就写什么。一般是通道0pwm = PWM(0, 0)# 设置PWM输出频率为 1 kHzpwm.frequency = 1e3# 设置占空比为 0%,一个周期内高电平的时间与整个周期时间的比例。pwm.duty_cycle = 0.00# 开启PWM输出pwm.enable()while True:for i in range(0,rangeMax):# 休眠step秒time.sleep(step)# 设置占空比每次加 step% , 使用 round 避免浮点运算误差pwm.duty_cycle = round(pwm.duty_cycle+step,2)# 常灭1秒if pwm.duty_cycle == 0.0:time.sleep(1)for i in range(0,rangeMax):time.sleep(step)pwm.duty_cycle = round(pwm.duty_cycle-step,2)
except:print("Some errors occur!\n")
finally:# 退出时熄灭LEDpwm.duty_cycle = 0.0# 释放资源pwm.close()
代码说明:
- 第10行,创建了一个PWM对象
- 第12、14行,分别对该PWM对象的参数做了初始化,分别是PWM输出波形的频率、占空比
- 第16行,根据对应的参数,使能PWM波形输出
这篇关于泰山派通过vscode PWM代码实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!