Hallo nettes Forum,
ich bin noch etwas grün hinter den Ohren wenn es um das Programmieren mit Python und Raspberry geht.
Nun habe ich ein kleines Skript geschrieben und wollte euch um eure Meinung Fragen.
Mir ist wichtig am Anfang zu verstehen ob ich mich auf dem Richtigen Weg befinde oder es auch bessere Lösungen gibt in denen man dazulernen kann.
Aufgabe:
LED1 (GPIO17) (Pin11) soll durch einen Tastendruck am (GPIO21) (Pin40) eingeschaltet werden. Diese soll solange leuchten bist erneut ein Tastendruck (GPIO) (Pin40) kommt. Dies soll man so oft wie man möchte wiederholen können.
Aus der Haus Elektrik kennt man es unter einer Stromstoßschaltung.
So hier mal mein Code:
Erklärung: Ich habe es so versucht, das der Counter abgefragt wird ob er größer oder kleiner 0 oder 1 ist und somit entschieden wird ob ein dazu gezählt wird oder eins abgezogen ... somit sind die Ergebnisse nur 1 oder 0 und diese somit auf den Ausgang gelegt.
import RPi.GPIO as GPIO ## Import GPIO Library
import time ## Import 'time' library. Allows us to use 'sleep'
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD) ## Use BOARD pin numbering
GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) ## Setup GPIO als Eingang
GPIO.setup(11, GPIO.OUT)
Counter = 0
def Interrupt(channel):
global Counter
if Counter < 1:
Counter = Counter +1
GPIO.output(11, 1)
elif Counter > 0:
Counter = Counter -1
GPIO.output(11, 0)
print "Tastendruck " + str(Counter)
GPIO.add_event_detect(40, GPIO.RISING, callback = Interrupt, bouncetime = 200)
while True:
time.sleep(1)
Alles anzeigen