Seite 3 von 3

Re: Problem: LEDs am Raspberry Pi über Blynk-app und Python-Code steuern

Verfasst: Freitag 18. Februar 2022, 18:14
von stefanpc81
Ach so! Jetzt verstehe ich das erst. Ich tippe mal darauf, dass an der Stelle

Code: Alles auswählen

GPIO.output(self.leds, [GPIO.HIGH for led in self.leds if active_led == led])
noch ein zweiter Wert fehlt, also GPIO.LOW. Nur wie schreibe ich das richtig in der ganzen Zeile? Dazu kommen muss dann wohl sowas in der Art:
GPIO.LOW for led in self.leds if not active_led == led

Re: Problem: LEDs am Raspberry Pi über Blynk-app und Python-Code steuern

Verfasst: Freitag 18. Februar 2022, 20:00
von __deets__
Ja, als zweite Liste, verknüpft mit der ersten. Oder du machst das alles etwas mehr zu Fuß, mit einzelnen LEDs und if-Verzweigungen.

Re: Problem: LEDs am Raspberry Pi über Blynk-app und Python-Code steuern

Verfasst: Samstag 19. Februar 2022, 09:38
von stefanpc81

Code: Alles auswählen

def blink(self, active_led):
    for led in self.leds:
        if active_led == led:
            GPIO.output(self.leds, (GPIO.HIGH, GPIO.LOW))
        if not active_led == led:
            GPIO.output(self.leds, (GPIO.LOW, GPIO.HIGH))
Damit läuft zwar endlich das Blinken, aber mit dem gewünschten Abschalten mit dem virtuellem Pin auf aus bzw. 0 bleibt der letzte LED-Strang an. Mit VPin = 1 fängt er aber wieder wie gewünscht zu blinken an. Irgendwo muss also noch ein Fehler sein um beide LEDs auf LOW zu setzen. Ich habe es auf gut Glück versucht, in der Methode run() nach dem "while True" Zweig den folgenden Code zu testen, leider ohne Erfolg:

Code: Alles auswählen

while False:
    GPIO.output(self.leds, GPIO.LOW)
:

Re: Problem: LEDs am Raspberry Pi über Blynk-app und Python-Code steuern

Verfasst: Samstag 19. Februar 2022, 14:06
von stefanpc81
Hallo,
so, ich habe nochmals über den Quellcode geschaut und eine ergänzende Idee bekommen:

Code: Alles auswählen

@isblinking.setter
def isblinking(self, value):
    if value:
        self._blink_event.set()
    else:
        self._blink_event.clear()
        GPIO.output(self.leds, GPIO.LOW)
Und siehe da, es macht jetzt alles wie es sein soll! Ich möchte euch abschließend nochmals für eure große Hilfe bedanken!
Viele Grüße und ein schönes Wochenende,
Stefan