gpiozero Frage zu Buttons

  • Hallo zusammen!

    Ich bin neu in dem Forum und habe auch was den raspberry angeht noch nicht wahnsinnig viel Erfahrung gesammelt. Daher bitte ich schonmal um Entschuldigung, falls mein Problem etwas "abstrakt" beschrieben wird :)

    Ich versuche in einer simplen Schaltung in der nur LEDs und Buttons verbaut sind mithilfe der gpiozero Bibliothek mehrere LEDs mit dem Druck auf einen einzelnen Button zu steuern. Es soll noch eine Bedingung vorgeschaltet sein.

    Beispiel:

    3 Buttons, 3 LEDs.

    LED 1 und LED 2 sind bereits eingeschaltet.

    Wenn ich nun Button 3 drücke, soll LED 3 angehen und gleichzeitig LED 1 ausgehen - Jedoch eben nur, wenn diese vorher bereits eingeschaltet war.

    Um solch Strukturen würde ich gerne ein kleines Programm mit gpiozero schreiben, jedoch habe ich einfach nicht die passende Funktion / Syntax gefunden.

    Ich habe vorhin lange gesucht, weil ich dachte, dass dies doch eigentlich ein simples bzw. geläufiges Problem seien müsste, aber wirklich fündig bin ich nicht geworden...

    Ich danke schonmal recht herzlich für alle Antworten :)

    Viele Grüße,

    Nimrod

  • Danke Hyle, für die schnelle Antwort:)

    Auf der Seite war ich vorhin auch schon und dachte mir, dass ich die Funktionen ja eigentlich irgendwie an

    button.when_pressed = ...

    anhängen könnte. Ich bekomme einzelne LEDs damit an, soweit so gut, aber ich schaffe es nicht, mehrere LEDs darüber zu steuern. Ist das die falsche Funktion oder mache ich was in der Syntax falsch? Ich hab es nur mit Kommas oder mit eckigen Klammern versucht:

    button1.when_pressed = LED1.on, LED2.on

    und

    button1.when_pressed = [LED1.on, LED2.on]

    nur leider beides ohne Erfolg.

  • Hier ist ein Bild vom aktuellen Stand.

    3 Buttons, 6 LEDs (3 grün, 3 rot)

    Die roten sind noch nicht zugewiesen, sollen aber, wenn möglich, beispielsweise angehen wie in der Situation gerade beschrieben:


    ledg1 und ledg2 sind bereits eingeschaltet. Wenn ich auf Btn3 klicke schaltet sich beispielsweise ledg3 an, ledg1 aus und gleichzeitig ledr1 an.

    Hoffe, das hilft weiter. Ich sage auf jeden Fall schonmal Danke!


  • Das hab ich auch nicht erwartet :) Ich war nur auf der Suche nach einem allgemeinen Beispiel, das mir Aufschluss über die Syntax gibt. Will es ja nicht von jemand anders erledigt haben sondern eben selbst verstehen. Ich schau, dass ich den Code bereitstelle, nochmals Danke :)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!