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 GPIO
import 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.5ms
PWM0.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()

树莓派4B 配置PWM
https://fuwari.vercel.app/posts/嵌入式/树莓派/树莓派4b-配置pwm/
作者
Asuwee
发布于
2023-04-17
许可协议
CC BY-NC-SA 4.0