Hallo,
ich habe mir ein PiTFT bestellt:
http://learn.adafruit.com/adafruit-pitft…rry-pi/overview
Die Ansteuerung des Displays klappt, jedoch habe ich ein ärgerliches Problem:
Auf der Platine lassen sich 4 kleine Schalter auflöten. Einer davon lässt sich, wie im obigen Howto beschrieben, über ein Kernel-Modul als An/Aus-Schalter nutzen; das klappt auch.
Was im HowTo aber fehlt ist, wie ich die übrigen 3 Schalter IRGENDWIE (Python, Bash, PHP, ...) ansteuern kann.
In allen HowTos zu Schaltern, die ich für den Raspberry gefunden habe, lötet man zusätzliche Widerstände ein (Pull-Downs?). Ich weiß leider nicht, was/wie das auf dem PiTFT-Schaltplan gelöst ist.
Ich habe gestern eine Stunde rumprobiert, um zu prüfen ob die Knöpfe irgendwie reagieren:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(22,GPIO.IN)
GPIO.setup(21,GPIO.IN)
GPIO.setup(18,GPIO.IN)
while True:
if GPIO.input(22):
print("22 gedrückt!")
if GPIO.input(21):
print("21 gedrückt!")
if GPIO.input(18):
print("18 gedrückt!")
GPIO.cleanup()
Alles anzeigen
Dabei habe ich quasi die Nummern 10-25 für GPIO.BCM und GPIO.BOARD durch. Ich habe gesehen, dass es für GPIO.setup() einen Parameter pull_up_down=X gibt - den habe ich ebenfalls mit einbezogen und Up/Down getestet.
Das EINZIGE, was ich wahrnehmen konnte, ist Pin 18:
Berühre ich in obigem Sketch den rechten Knopf auch nur ansatzweise, wird "18 gedrückt!" gespammt.
Die anderen Buttons reagieren nicht - und ich finde einfach keinen Weg, sie anzusprechen/auszulesen.
Hat jemand einen Tipp für mich? Bin gerade wirklich ratlos
Update:
Ich habe auf der Adafruit-Seite einen Schaltplan für das PiTFT gefunden:
http://learn.adafruit.com/system/assets/….png?1387563188
Darin sieht man oben rechts wie die Switche/Buttons geschaltet sind: GPIO 23/22/21/18 -> Button -> GND.
Mir hilft das nicht sonderlich weiter, aber vielleicht kann sich jemand von euch nun das Verhalten der Buttons erklären?
Update 2:
Ich habe herausgefunden, dass, wenn ich die Herangehensweise umkehre, ich zumindest Button 2+4 (also 22 + 18) erkennen kann. Button 3, GPIO 21, macht rein garnichts
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(21,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(22,GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
if not GPIO.input(18):
print("18 gedrückt!")
if not GPIO.input(21):
print("21 gedrückt!")
if not GPIO.input(22):
print("22 gedrückt!")
GPIO.cleanup()
Alles anzeigen