树莓派Python配置GPIO控制风扇报错:通道无效问题求助
解决树莓派PWM报错"The channel sent is invalid on a Raspberry Pi"
嘿,这个错误的根源其实很简单——你选错引脚啦!
在GPIO.BOARD模式下,引脚编号对应树莓派电路板上的物理引脚号,而引脚1是3.3V电源引脚,根本不是可控制的GPIO引脚,自然没法用来创建PWM输出,所以才会报通道无效的错误。
给你几个关键的修复步骤:
- 先确认树莓派BOARD模式下的可用GPIO引脚:比如引脚12、16、18、22这些都是支持PWM功能的物理引脚,你可以选其中一个(比如引脚12)。
- 修正代码,还要注意你原代码只创建了PWM对象,但没启动它,最后记得清理GPIO资源:
import RPi.GPIO as GPIO # 设置BOARD引脚模式 GPIO.setmode(GPIO.BOARD) # 选择正确的GPIO引脚(比如引脚12) pwm_pin = 12 GPIO.setup(pwm_pin, GPIO.OUT) # 创建PWM对象,频率设为50Hz pwm = GPIO.PWM(pwm_pin, 50) # 启动PWM,初始占空比设为0(风扇停转) pwm.start(0) # 这里可以加调速逻辑,比如设置占空比到50% # pwm.ChangeDutyCycle(50) # 程序结束时清理资源 try: while True: # 你的主逻辑,比如根据温度调整占空比 pass except KeyboardInterrupt: # 按下Ctrl+C时停止PWM并清理GPIO pwm.stop() GPIO.cleanup()
另外还要提醒你:
- 确认你的风扇支持PWM调速,如果是普通的两线风扇,只能实现开/关,没法调速;三线/四线风扇才支持PWM控制。
- 硬件连接上,风扇的控制引脚要接到你选的GPIO引脚上,电源和GND对应接好。
内容的提问来源于stack exchange,提问作者Raging Burek
相关产品推荐
相关产品推荐

