树莓派PICO单片机输出两路互补的PWM信号应该如何编写程序

说明:使用数模转换芯片 ADC0808通过調节可变电阻 RV1 来调节脉冲宽度,

运行程序时通过虚拟示波器观察占空比的变化。




上篇文章介绍了三种GPIO的操控方式今天则为大家带来pwm波的生成方法,pwm波是硬件控制中一种很重要的波形接下来我先介绍一下它


PWM的英文全称是"Pulse Width Modulation",中文翻译为"脉冲宽度调制"PWM的波形是一种周期固定的、宽度可调的方波。
pwm波有两个重点参数:

2)PWM方波的占空比

用这两个参数即可表示任意一个pwm波
这是笔者用示波器檢测的一个pwm波是一个频率为50Hz,占空比为30%的PWM波
3)控制led呼吸灯,或者设置为隔几秒闪烁一下


首先我们打开树莓派自带Python IDE——mu

输入上一篇学習笔记的第二章讲解过的代码,这些代码将12号引脚也就是GPIO.1设置为低电平然后释放引脚
点击运行,保存好文件没有报错,说明一切正常点击停止

2.编写生成PWM波的程序

注意这次的程序为了延时,我们多引用了一个time库这也是系统镜像自带的

程序运行效果为12号针脚保持0.1秒的高電平,然后是0.9秒的低电平循环5次自动停止。

大家可以使用这两行代码在程序运行时自动更改频率及占空比如下

程序运行效果为12号针脚保持0.1秒的高电平,然后是0.9秒的低电平循环5次接着自动变为0.25秒高电平,0.25秒低电平循环10次。

更高级的操作可以使用循环语句实现大家可鉯自己尝试下。

启动Linux终端输入这条命令

注意pigpio库的编码模式是BCM(详见第一章第一节)

这个程序在21号阵脚上输出了一个50Hz,占空比50%的pwm波程序運行结果如下

今天为大家带来了两种在树莓派上生成pwm波的方法,其中第二种要比第一种稳定具体我做过实验,不过当时没有记录结果具体稳定多少等我回到学校用示波器为大家详细测试。后面的笔记将为大家带来GPIO输入模式的应用

我要回帖

 

随机推荐