在Raspberry Pi上控制硬件PWM
项目描述
rpi hardware pwm
使用Python访问Raspberry Pi的硬件PWM。比替代方案更轻量级。
安装
- 在Raspberry Pi上,将
dtoverlay=pwm-2chan
添加到/boot/config.txt
。默认将GPIO_18
作为PWM0
的引脚,将GPIO_19
作为PWM1
的引脚。- 或者,您可以使用
dtoverlay=pwm-2chan,pin=12,func=4,pin2=13,func2=4
将GPIO_18
更改为GPIO_12
,将GPIO_19
更改为GPIO_13
。 - 在Pi 5上,使用通道0和1分别控制GPIO_12和GPIO13;使用通道2和3分别控制GPIO_18和GPIO_19。
- 在其他所有型号上,使用通道0和1分别控制GPIO-18和GPIO_19。
- 或者,您可以使用
- 重启您的Raspberry Pi.
- 您可以通过运行
lsmod | grep pwm
并查找pwm_bcm2835
来检查一切是否正常工作。
- 您可以通过运行
- 安装此库:
sudo pip3 install rpi-hardware-pwm
示例
对于Rpi 1,2,3,4,使用chip=0;对于Rpi 5,使用chip=2
from rpi_hardware_pwm import HardwarePWM
pwm = HardwarePWM(pwm_channel=0, hz=60, chip=0)
pwm.start(100) # full duty cycle
pwm.change_duty_cycle(50)
pwm.change_frequency(25_000)
pwm.stop()
历史
原始代码来自jdimpson/syspwm,我们将其更新到Python3,并使其看起来类似于RPi.GPIO
库的API(但比那个更Pythonic),我们还在Pioreactor生物反应器系统中使用它。