系统信息:
Raspberry Pi Zero 2W
 系统版本: 2024-10-22-raspios-bullseye-armhf
 Python 版本:Python 3.9.2 
 已安装 pip3
 支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480)
 已安装 vim
 已安装 git
学习目标:
-  将功能分离到不同的函数中,增强可维护性和可读性。
 增加变量,方便调节。
学习内容:
将功能分离到不同的函数中,增强可维护性和可读性。
增加变量,方便调节。
import RPi.GPIO as GPIO
import timedef setup_gpio(led_pin):"""初始化"""GPIO.setmode(GPIO.BOARD)  # BOARD 编码GPIO.setup(led_pin, GPIO.OUT, initial=GPIO.LOW)  # 输出模式def adjust_led(pwm, delay, dc, aim_dc, step):"""调整 PWM 占空比:param pwm: 实例对象 PWM:param delay: 延迟时间:param dc: 占空比:param aim_dc: 目标占空比:param step: 增减步长"""while dc < aim_dc if step > 0 else dc > aim_dc:dc += stepprint("当前亮度 %d%%" % dc)pwm.ChangeDutyCycle(dc)time.sleep(delay)def cleanup_gpio():"""清理引脚规则"""print("--- 重置引脚规则 ---")GPIO.cleanup()  # 释放 GPIO 资源,清除引脚规则def main():"""呼吸灯"""led_pin = 32  # GPIO 12frequent = 50  # 50 Hzcount = 1  # 循环次数delay = 0.05  # 延迟时间# 初始化setup_gpio(led_pin)pwm = GPIO.PWM(led_pin, frequent)# 启动 PWMpwm.start(0)try:for _ in range(count):adjust_led(pwm, delay, dc=0, aim_dc=100, step=1)  # 增加亮度adjust_led(pwm, delay, dc=100, aim_dc=0, step=-1)  # 减少亮度except KeyboardInterrupt:  # Ctrl + Cprint("--- 强行停止 ---")finally:  # 无论如何最后都会执行pwm.stop()  # 停止 PWM 输出cleanup_gpio()if __name__ == "__main__":main()