190 字
1 分钟
树莓派4B 配置PWM
可用引脚
根据 树莓派官方手册 的说明:
PWM (pulse-width modulation) Software PWM available on all pins Hardware PWM available on GPIO12, GPIO13, GPIO18, GPIO19
树莓派中的硬件 PWM 引脚只有 GPIO 12、13、18和19。
基本代码
创建一个 PWM 实例:
PWM0 = GPIO.PWM(Pin, Frequency)
启用 PWM:
PWM0.start(dc)
- dc 是占空比,(0.0 <= dc <= 100.0)
更改频率:
PWM0.ChangeFrequency(Frequency)
更改占空比:
PWM0.ChangeDutyCycle(dc)
停止 PWM:
PWM0.stop()
测试案例
在 Python 中,硬件 PWM 和 软件 PWM 的使用方法相同。
import RPi.GPIO as GPIOimport time
pin = 32 # GPIO 12 (PWM0)
GPIO.setwarnings(False)GPIO.setmode(GPIO.BOARD)
GPIO.setup(pin, GPIO.OUT)PWM0 = GPIO.PWM(pin, 400) # 单个PWM信号的脉宽为2.5msPWM0.start(0.0) # 以0%占空比启用PWM信号输出
try: while True: for dc in range(0, 100, 1): # from 0% to 100% PWM0.ChangeDutyCycle(dc) time.sleep(0.1) for dc in range(100, 0, -1): # from 100% to 0% PWM0.ChangeDutyCycle(dc) time.sleep(0.1)except KeyboardInterrupt: PWM0.stop() GPIO.cleanup()