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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus diesem Frage, wie es aussieht, gibt es zwei Modi für GPIO :
GPIO.BCM
undGPIO.BOARD
... versuchen Sie es mit die eine die andere :