首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PiFace InputListener (开关)在Python中打开LED

PiFace InputListener (开关)在Python中打开LED
EN

Stack Overflow用户
提问于 2015-11-23 09:58:29
回答 1查看 743关注 0票数 1

我现在正在研究如何使用Rasberry Pi和PiFace。代码是用Python编写的。

我的问题是:一旦我按下PiFace上的4个开关中的一个,我似乎就不能执行任何东西。我设法做了一个可以玩灯的程序。

我们从教授那里得到的文档在这里:https://piface.github.io/pifacedigitalio/example.html

我想要一个中断,监听器触发相应的LED。开关1按下->指示灯1触发。

这是我到目前为止的代码(不能工作)。

代码语言:javascript
复制
import pifacedigitalio

def toggle_led0(event):
    event.chip.leds[0].toggle()

def toggle_led1(event):
    event.chip.leds[1].toggle()

def toggle_led2(event):
    event.chip.leds[2].toggle()

def toggle_led3(event):
    event.chip.leds[3].toggle()

pifacedigital = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.SwitchEventListener(chip=pifacedigital)
listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led0)
listener.register(1, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led1)
listener.register(2, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led2)
listener.register(3, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led3)
listener.activate()
EN

回答 1

Stack Overflow用户

发布于 2016-02-02 03:00:22

下面的代码适用于我的Pi B

代码语言:javascript
复制
import pifacedigitalio
from time import sleep
def lighton(event):
    try:
        print("on pressed")
        event.chip.relays[0].value = 1
    except:
        raise KeyboardInterrupt
def lightoff(event):
    try:
        print("off pressed")
        event.chip.relays[0].value = 0
    except:
        raise KeyboardInterrupt
pfd = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.InputEventListener(chip=pfd)
listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE, lighton)
print("Registered listener0")
listener.register(1, pifacedigitalio.IODIR_FALLING_EDGE, lightoff)
print("Registered listener1")
try:
    listener.activate()
    print("Activated all")
except (KeyboardInterrupt, SystemExit):
    print("\n Ending Process")
    listener.deactivate()
    listener. destroy()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33862667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档