Python Raspberry Pi GPIO Fehler

Ich bin mit dem folgenden python-script auf meinem Raspberry Pi:

http://www.skpang.co.uk/dl/rfid.py

Habe ich geändert, das Skript zum Ende hin, um den Zugriff auf die GPIO-pin 15 und es an-und ausschalten. Hier ist mein code an der Unterseite:

def example():

rfid = SL030()
fw = rfid.get_firmware()
print("RFID reader firmware:" + fw)
print()

GPIO.setmode(GPIO.BOARD)
GPIO.setup(15, GPIO.OUT)
GPIO.output(15,True)


while True:
    rfid.wait_tag()
    print("card present")

    if rfid.select_mifare():
        type = rfid.get_type()
        print("type:" + rfid.get_typename(type))

        id = rfid.get_uidstr()
        try:
            user = cards[id]
            print(user)
            #os.system("aplay " + user)
        except KeyError:
            print("Unknown card:" + id)

    rfid.wait_notag()
    print("card removed")
    print()

Problem, das ich konfrontiert ist, dass, obwohl es betreibt pin 15, das Skript Stoppt mit folgender Fehlermeldung:

Traceback (most recent call last):
  File "./rfid.py", line 212, in <module>
    example()
  File "./rfid.py", line 182, in example
rfid.wait_tag()
  File "./rfid.py", line 45, in wait_tag
while not self.tag_present():
  File "./rfid.py", line 40, in tag_present
    return GPIO.input(CFG_TAG_DETECT) == False
    RPi.GPIO.InvalidChannelException: The channel sent is invalid on a Raspberry Pi

Irgendwelche Ideen was kann falsch sein?

Dank

UPDATE

Wenn ich die GPIO-code direkt unterhalb der def Beispiel(): und über die rfid - = SL030 (), wie unten, dann scheint es zu funktionieren, ohne Fehler:

def example():

    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(15, GPIO.OUT)
    GPIO.output(15,True)

    rfid = SL030()

*UPDATE - LÖSUNG*

Dank an André, den ich geändert habe:

GPIO.setmode(GPIO.BOARD)

zu:
GPIO.setmode(GPIO.BCM)

und änderte dann den port entsprechend der BCM-Anschluss wie diese:

GPIO.setup(22, GPIO.OUT)
GPIO.output(22,True)
  • Jede Hilfe, jeder?
InformationsquelleAutor John | 2013-12-08
Schreibe einen Kommentar