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后端。可以在代码开头添加配置:
若选择pigpio后端,需先安装并启动服务:from gpiozero.pins.gpiod import GPIODFactory from gpiozero import LED factory = GPIODFactory() led = LED(17, pin_factory=factory) led.on()
再用对应工厂类指定:sudo apt install pigpio sudo systemctl enable pigpio sudo systemctl start pigpiofrom 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
相关产品推荐
相关产品推荐

