You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派GPIO引脚无法自动关闭问题求助

核心原因与解决办法

  1. 引脚编号模式不匹配
    代码中使用GPIO.BCM模式(按Broadcom SOC引脚编号),但变量in1 = 29对应的是物理引脚37,而实际接线的物理引脚40对应的BCM编号是21。这导致代码完全没有控制到继电器连接的引脚!

继电器IN端连接的物理引脚40(BCM21)在程序运行时处于默认高电平状态,所以继电器一直吸合;只有程序退出执行GPIO.cleanup()时,所有GPIO引脚被重置为输入模式,继电器失去触发信号才会关闭。

  1. 修复后的代码
    修改引脚编号为正确的BCM值,同时优化资源清理逻辑:
import RPi.GPIO as GPIO
import time

in1 = 21  # 物理引脚40对应的BCM编号

GPIO.setmode(GPIO.BCM)
GPIO.setup(in1, GPIO.OUT)

try:
    GPIO.output(in1, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(in1, GPIO.LOW)
    print("inside try after low")
    time.sleep(1)
finally:  # 确保程序无论正常结束还是异常终止,都清理GPIO资源
    GPIO.cleanup()
  1. 额外排查点
    如果修复后仍有问题,检查继电器触发类型:部分继电器为低电平触发(输入LOW时吸合),此时需调换GPIO.HIGH和GPIO.LOW的逻辑。但根据当前现象,引脚编号错误是最核心的问题。

内容的提问来源于stack exchange,提问作者LearneriOS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:35:03