标签: gpiozero

如何排除 GPIO 零故障?

我正在尝试使用 Raspberry Pi Zero 做一个非常基本的“获取 LED”闪烁教程。遵循本指南:

闪烁:在树莓派上使 LED 闪烁

我可以使用 gpio 命令行实用程序打开和关闭 LED,并且使用 RPi.GPIO 的示例代码也可以正常工作,但我无法让 GPIO Zero 示例正常工作。

from gpiozero import LED
from time import sleep

redLED = LED(21)

print "Press CTRL-C to exit."
try:
   while True:
      redLED.on()
      sleep(0.5)
      redLED.off()
      sleep(0.5)

finally:
   redLED.close()
   print "\nCompleted cleanup of GPIO resources."
Run Code Online (Sandbox Code Playgroud)

代码执行没有错误,但 LED 不闪烁。我可以尝试哪些方法来解决可能出现的问题?

由于命令行和 RPi.GPIO 示例有效,我确定 LED 和电阻器接线正确,所以我不确定接下来要尝试什么。

raspberry-pi wiringpi gpiozero

5
推荐指数
0
解决办法
304
查看次数

在 `raspberry pi` 上使用 `gpiozero` 来控制引脚,但输出引脚在脚本退出时重置,即使在运行之间记住状态

gpiozero用来控制 Raspberry Pi 上的设备。当我创建对(例如)LED 设备的引用时,有一个用于创建对象而不影响其当前状态的参数: initial_state=None. (默认为initial_state=False,它会在创建引用对象时自动关闭该值)问题是它似乎总是在脚本退出时重置硬件引脚(尽管很奇怪不是内部“状态”)。更糟糕的是,当我再次运行脚本时,它知道我离开它的状态,并将物理引脚放回该状态!

这是我的跳线开/关程序,它现在有一个暂停输入,在此期间状态保持不变,但是当程序退出时,引脚会重置。(虽然正如我上面提到的,状态是“记住的”)

#!/usr/bin/env python
from __future__ import print_function
import sys
import time
from gpiozero import LED
jump1=LED(17,initial_value=None)
jump2=LED(27,initial_value=None)


if len(sys.argv)>1:
    print ("Jumper were: (%s,%s)"%(str(jump1.is_active),str(jump2.is_active)))
    if sys.argv[1].lower() == 'on':
        jump1.on()
        jump2.on()
        print ('turned both on')
    elif sys.argv[1].lower() == 'off':
        jump1.off()
        jump2.off()
        print ('turned both off')

print ("Jumper Currently: (%s,%s)"%(str(jump1.is_active),str(jump2.is_active)))

raw_input("Press enter to exit.")
Run Code Online (Sandbox Code Playgroud)

有没有人知道gpiozero退出后让硬件单独放置的方法? 这个问题详细说明了一个类似的问题,虽然是一个不同的模块。

(编辑:事实证明 gpiozero 模块将引脚方向更改为输入但不更改输出锁存器,这就是当引脚方向更改回输出时它如何恢复旧状态。)

python raspberry-pi gpiozero

5
推荐指数
1
解决办法
909
查看次数

标签 统计

gpiozero ×2

raspberry-pi ×2

python ×1

wiringpi ×1