zum Verständnis schreibe ich euch erstmal was ich überhaupt machen möchte...
Ich habe 2 Pumpen an meinem Pool. Die eine ist die Pumpe am Sandfilter, die andere eine Pumpe pumpt das Wasser durch Solarkollektoren.
Jetzt möchte ich mit (jeweils) einem Taster beim ersten tasten die Pumpe einschalten und beim zweiten tasten die Pumpe wieder ausschalten.
Da ich jetzt eher der Laie und keine Profi bin habe ich natürlch das Internet bemüht um zu schauen wie das Programm aussehen könnte. Dabei bin ich auf "event_detected() function" mit "callback" gestoßen.
Dieses hat auch mit dem ersten Taster mit nur einer Pumpe super funktioniert. Dann habe ich alles für die zweite Pumpe fertig gemacht. Und dann kam das Problem...
Ein Taster funktioniert weiterhin so wie er soll, während der andere undifiniert auf einmal beide Pumpen (Relais) an und aus schaltet.
Ich hoffe bis dahin ist verständlich was mein Problem ist und das mir jemand weiterhelfen kann.
Hier mein Programm:
Code: Alles auswählen
import RPi.GPIO as GPIO
import time
#
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
#
taster_1 = 16
taster_2 = 20
pumpe_1 = 26
pumpe_2 = 19
#
GPIO.setup(taster_1, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(pumpe_1, GPIO.OUT)
GPIO.setup(taster_2, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(pumpe_2, GPIO.OUT)
#
pumpe_11 = False
pumpe_22 = False
#
def pumpe01(channel):
global pumpe_11
pumpe_11 = not pumpe_11
GPIO.output(26, GPIO.HIGH if pumpe_11 else GPIO.LOW)
print (("Pumpe_1 An: "), pumpe_11)
#
def pumpe02(channel):
global pumpe_22
pumpe_22 = not pumpe_22
GPIO.output(19, GPIO.HIGH if pumpe_22 else GPIO.LOW)
print (("Pumpe_2 An: "), pumpe_22)
#
GPIO.add_event_detect(taster_1, GPIO.FALLING, callback=pumpe01, bouncetime=200)
GPIO.add_event_detect(taster_2, GPIO.FALLING, callback=pumpe02, bouncetime=200)
#
try:
while True:
pass
#
except KeyboardInterrupt:
print ("Ctrl-C - quit")
#
finally:
GPIO.cleanup()