Hallo,
ich habe ein Programm geschrieben, bei dem nach einem Tastendruck Relais geschaltet werden sollen.
Ich möchte gerne, dass alle gleichzeitig eingeschaltet werden und dann ihre definierte Zeit laufen und wieder aus gehen.
Aktuell laufen diese aber hintereinander ab, sprich:
Ralei 1 schaltet ein, läuft 10 Sekunden und geht aus - Relai 2 schaltet ein, läuft 5 Sekunden und geht aus - Relai 3 schaltet ein, läuft 2 Sekunden und geht aus
Code
import RPi.GPIO as GPIO
import time, sys
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(12,GPIO.OUT)
GPIO.setup(18,GPIO.OUT)
GPIO.setup(22,GPIO.OUT)
try:
while (True):
if (GPIO.input(16) == True):
GPIO.output(12, GPIO.HIGH)
time.sleep(10)
GPIO.output(12, GPIO.LOW)
time.sleep(1)
GPIO.output(18, GPIO.HIGH)
time.sleep(5)
GPIO.output(18, GPIO.LOW)
time.sleep(1)
GPIO.output(22, GPIO.HIGH)
time.sleep(2)
GPIO.output(22, GPIO.LOW)
time.sleep(1)
else:
GPIO.output(12, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(22, GPIO.LOW)
except KeyboardInterrupt:
GPIO.cleanup()
sys.exit()
Alles anzeigen
Das Problem liegt denke ich an der if-Schleife, aber ich finde nichts wie man das richtig Programmiert. Vielleicht könnte mir jemand eine gute Quelle nennen und ggf. eine Idee geben, wie ich mein Programm aufbauen müsste.
Vielen Dank