Ich möchte Tastendrücke über ein Python-Programm registrieren, das ich mit einem Raspberry Pi 3 geschrieben habe. Meine Tasten sind sowohl mit Masse als auch mit den GPIO-Pins 22 und 27 verbunden. Wenn die Tasten jedoch gedrückt werden, gibt es kein konstantes Wahres aber es ändert sich sehr schnell, also bekomme ich so etwas wie 'Wahr, Falsch, Wahr, Wahr, Falsch, Falsch, Falsch, Wahr, Wahr', obwohl alles wahr sein sollte.
Wenn die Taste jedoch nicht gedrückt wird, gibt sie ein konstantes False aus. Ich habe alle Drähte überprüft und es mit und ohne Widerstände (10k und 4,7k) versucht, aber sie liefern das gleiche Ergebnis.
Gibt es eine Möglichkeit, dieses Problem zu beheben? Ich habe es auch mit verschiedenen Schaltern versucht, aber alle geben das gleiche Ergebnis. Sie sind mit Standard-Überbrückungsdrähten verdrahtet.
Das nennt man Bouncen . Sie sollten davon ausgehen, dass jeder mechanische Schalter dies für bis zu einige 10 ms beim Ein- und Ausschalten tut.
Um damit umzugehen, führen Sie eine Entprellung in der Software durch. Normalerweise bedeutet dies, dass Sie einen neuen Schaltflächenstatus nicht als gültig betrachten, bis Sie diesen Status kontinuierlich für etwa 50 ms gesehen haben.
Wenn das Prellen anhält, während Sie die Taste gedrückt halten, dann ist die Taste defekt. Ersetze es.
Die meisten Tutorials sagen, dass Sie nur zwei Drähte mit der Taste verbinden müssen: eine vom GPIO-Pin zur Taste und eine von der Taste zur Masse. Das hat bei mir nicht so funktioniert wie es sollte. Ich habe immer noch das 'GPIO-Kabel' mit der Taste verbunden, aber daneben geht ein 10k-Widerstand auf Masse. Der andere Ton der Taste, die ich an 3,3 V angeschlossen habe. Stellen Sie sicher, dass Sie nichts über 3,3 V verwenden, da die GPIO-Pins nichts über 3,3 V verarbeiten können!
CL.
Neil_DE
Tony Stewart EE75