ich komm gerade nicht klar. Vielleicht könnt ihr mir helfen.
Ich verwende einen RaspberryPi. An den GPIOs ist ein Wahlschalter angeschlossen. Also im Endeffekt ein Drehschalter.
Ich möchte je nach Stellung des Schalters eine bestimmte Funktion ausführen. Der Schalter hat drei Stellungen.
In jeder Funktion befindet sich jedoch eine while Schleife, weshalb ich das ganze über Interrupts realisieren würde.
Das ganze sieht in etwa so aus:
Code: Alles auswählen
import RPi.GPIO as GPIO
GPIO.setmode (GPIO.BOARD)
GPIO.setup (12, GPIO.IN) #Wahlschalter
GPIO.setup (18, GPIO.IN) #Wahlschalter
GPIO.setup (16, GPIO.IN) #Wahlschalter
GPIO.add_event_detect (12, GPIO.RISING, bouncetime = 70) #Einstellen Interrupt
GPIO.add_event_detect (16, GPIO.RISING, bouncetime = 70)
GPIO.add_event_detect (18, GPIO.RISING, bouncetime = 70)
def mode1():
while (1):
print("1")
def mode2():
while (1):
print("8")
def mode3():
while (1):
print("3")
def callback_GPIO(n):
if GPIO.input(12):
mode1()
if GPIO.input(16):
print("wamp")
mode2()
if GPIO.input(18):
mode3()
GPIO.add_event_callback(12, callback_GPIO) #Wenn Interrupt erkannt wurde wird funktion "myCallback" aufgerufen
GPIO.add_event_callback(16, callback_GPIO)
GPIO.add_event_callback(18, callback_GPIO)
mode1()
Code: Alles auswählen
1
1
1
1
1
1
1
1
1
31
31
31
31
3
13
1
13
13
13
1
13
13
31
13
13
13
1
1
3
13
13
31
31
3
1
1
1
3
13
13
13
13
13
1
3
31
1
1
1
1
13
13
1
13
13
3
3
3
3
3
3
3
3
3
3
3
3
3
1
31
1
31
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
31
3
3
3
3
3
3
Was genau mach ich falsch? Wo liegt mein Denkfehler?