智能小车系列 - 动力系统 (ezPWM)
开源项目:
https://github.com/xujialiang/ezPWMForRaspberry
ezPWM 可以方便在树莓派上生成 PWM 信号,只要传入一个百分比,就能产生对应占空比的 PWM 信号。
通过使用 RPIO 库,RPIO 库使用 PWM 有点费解,可能需要花费一定时间去理解分频。
使用 PWM 之前,需要对树莓派设置一番,否则无法使用 pwm 功能,参考 rpio 库的说明。
树莓派 4B 总共有 4 个 PWM 的 IO 口,12, 32,33,35 号引脚。
树莓派配置
可参考rpio官方库的配置
禁用 gpio 中断, 编辑 /boot/config.txt,新增如下配置。
开启/dev/gpiomen 访问
安装
初始化
设置占空比
1.百分比
2.高精度
PWM 频率说明
树莓派 4B 之前的版本,时钟频率是 19.2MHz, 4B 的时钟频率是 54MHz。
给 PWM 口分配频率
通过 divosor 来设置 PWM 口的时钟频率的,
如上,设置了 2048, 则 divosor=54e6/2048,约 2.6367MHz 频率。
设置了时钟频率后,再设置精度, 也可称为分辨率。 假设我们设置精度为 1024
那么,2.6367Mhz/1024 ~= 25Hz, 也就是每秒 25 个 1024 分辨率的 PWM 信号。
设置占空比
参考博文:
https://raspberrypi.stackexchange.com/questions/4906/control-hardware-pwm-frequency/9725#9725
https://github.com/jperkin/node-rpio/issues/2
版权声明: 本文为 InfoQ 作者【波叽波叽啵😮一口盐汽水喷死你】的原创文章。
原文链接:【http://xie.infoq.cn/article/d103c9f6ca13d44af7c23a3cb】。未经作者许可,禁止转载。
评论