2015-11-23 1 views
1

Я изучаю, как работать с Rasberry Pi и PiFace прямо сейчас. Код написан на Python.PiFace InputListener (Switch) для включения светодиодов в Python

Моя проблема: Кажется, я ничего не могу выполнить, когда нажимаю один из 4-х переключателей на PiFace. Мне удалось создать программу, которая играет с огнями.

документации мы получили от нашего профессора здесь: https://piface.github.io/pifacedigitalio/example.html

Я хочу иметь прерывания с слушателем инициирующего соответствующий светодиода. Переключатель 1 нажат -> светодиод 1 триггеры.

Вот мой код до сих пор (не работает).

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() 
+0

Что такое 'pifacedigitalio.SwitchEventListener'? ... Не должно быть' pifacedigitalio.core.InputEventListener' вместо этого? –

ответ

0

Следующий код работает на моем Pi B

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() 
Смежные вопросы