树莓派与现实世界的连接:PWM、通信接口及ADC应用
1. PWM信号的创建
在树莓派上使用PWM(脉冲宽度调制)相对容易,但有多种创建PWM信号的方法,主要有以下三种常见技术:
- 软件PWM :PWM信号的频率和占空比时序由代码生成,可在任何GPIO引脚使用。不过,由于树莓派CPU繁忙时会影响时序,这是创建PWM信号最不准确的方法。
- 硬件定时PWM :使用DMA和PWM/PCM硬件外设执行PWM时序,精度高,可在任何GPIO引脚使用。
- 硬件PWM :完全通过硬件提供,是创建PWM信号最准确的方法。树莓派有两个专用硬件PWM通道,PWM0通过GPIO引脚18和12,PWM1通过GPIO引脚13和19。
要使用硬件PWM,仅连接到GPIO 12、13、18或19是不够的。这些GPIO是BCM GPIO,其替代功能包括PWM。使用硬件PWM需满足两个基本要求:一是使用的GPIO库必须支持硬件PWM;二是要正确使用该库及其硬件PWM功能,具体可参考库的API文档。共享同一硬件PWM通道的引脚会应用相同的占空比和频率,所以虽有四个硬件PWM引脚,但只有两个唯一的PWM信号。
不同GPIO库对PWM的支持情况如下表所示:
| GPIO库 | PWM支持情况 |
| ---- | ---- |
| GPIOZero | 继承其引脚工厂实现中的PWM方法 |
| RPi.GPIO | 仅支持软件PWM |
| PiGPIO | 支持硬件定时PWM和硬件PWM |
| Blinka | 仅支持
树莓派PWM与ADC应用详解
超级会员免费看
订阅专栏 解锁全文

90

被折叠的 条评论
为什么被折叠?



