1.PWM

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占空比
    finally:
        pwm.stop()                      # 停止PWM
        GPIO.cleanup()                  # 清理释放GPIO资源,将GPIO复位