树莓派控与脉冲宽度调制程序(PWM)

相关理论说明请点击 古月金真

1.电路

树莓派控与脉冲宽度调制程序(PWM)_第1张图片

2.程序

import RPi.GPIO as GPIO                 # 引入GPIO模块

if __name__ == '__main__':
    LedPin = 19
    freq = 100      # 存放PWM频率变量,这里初始值为100,可以根据实际需要修改
    dc = 0          # 存放PWM占空比变量,这里初始值为0,可以根据实际需要修改

    GPIO.setmode(GPIO.BCM)              # 使用BCM编号方式
    GPIO.setup(LedPin, GPIO.OUT)        # 将GPIO19设置为输出模式

    pwm = GPIO.PWM(LedPin, freq)        # 创建PWM对象,并指定初始频率
    pwm.start(dc)                       # 启动PWM,并指定初始占空比

    try:
        freq = int(input("Please input the frequency of PWM(1-2000Hz): "))  # 等待输入新PWM频率
        pwm.ChangeFrequency(freq)       # 改变PWM频率
        while True:
            dc = int(input("Please input the duty cycle(0-100): "))         # 等待输入新PWM占空比
            pwm.ChangeDutyCycle(dc)     # 改变PWM占空比
        except:
         print('error')
         while True:
             dc = int(input("Please input the duty cycle(0-100): "))         
             pwm.ChangeDutyCycle(dc) 
    finally:
        pwm.stop()                      # 停止PWM
        GPIO.cleanup()                  # 清理释放GPIO资源,将GPIO复位

3.运行

运行程序时,先设定输出的频率,之后可以通过键盘修改想要的占空(不能大于100),如果占空比输入超出范围则提示错误,如下图所示。
树莓派控与脉冲宽度调制程序(PWM)_第2张图片

你可能感兴趣的:(树莓派)