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

Raspberry Pi 5使用GPIOZERO控制LED无电压输出问题求助

问题描述

刚上手Raspberry Pi 5,因硬件更新,旧的RPi.GPIO库无法使用,选择了对新手更友好的GPIOZERO(支持PWM、内置上拉电阻),但用它控制LED时,GPIO引脚无电压输出(已用万用表确认),代码如下:

from gpiozero import LED
led = LED(17)
led.on()

换成gpiod库则能正常工作,代码如下:

import gpiod
LED_PIN = 17
chip = gpiod.Chip('gpiochip4')
led_line = chip.get_line(LED_PIN)
led_line.request(consumer="LED", type=gpiod.LINE_REQ_DIR_OUT)
led_line.set_value(1)

尝试更换引脚(17换11)问题依旧,其他Pi 5用户同款代码和接线可正常运行,希望解决GPIOZERO的问题,不想长期使用gpiod。

排查与解决步骤
  • 指定GPIOZERO后端适配Pi 5:GPIOZERO默认会自动选择后端,但Pi 5可能需要显式指定使用gpiod或pigpio后端。可以在代码开头添加配置:
    from gpiozero.pins.gpiod import GPIODFactory
    from gpiozero import LED
    factory = GPIODFactory()
    led = LED(17, pin_factory=factory)
    led.on()
    
    若选择pigpio后端,需先安装并启动服务:
    sudo apt install pigpio
    sudo systemctl enable pigpio
    sudo systemctl start pigpio
    
    再用对应工厂类指定:
    from gpiozero.pins.pigpio import PiGPIOFactory
    factory = PiGPIOFactory()
    led = LED(17, pin_factory=factory)
    led.on()
    
  • 确认引脚编号模式:GPIOZERO默认使用BCM编号(和你代码中的17对应),可显式指定避免混淆:
    led = LED("BCM17")
    
  • 更新系统与GPIOZERO版本:确保软件适配Pi 5的新硬件,执行以下命令更新:
    sudo apt update && sudo apt full-upgrade -y
    pip install --upgrade gpiozero
    
  • 检查用户权限:确保当前用户在gpio用户组中,执行groups查看,若不在则添加:
    sudo usermod -aG gpio $USER
    
    注销后重新登录生效。
  • 简化测试排除类封装问题:用DigitalOutputDevice直接测试引脚输出:
    from gpiozero import DigitalOutputDevice
    out_pin = DigitalOutputDevice(17)
    out_pin.on()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:12:08