Relais ansteuern

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo

    Ich möchte gerne 6 LED-Lampen über den RP schalten

    Dazu nutze ich die GPIO´s 2 und 22 als Taster – werden diese geschaltet startet ein Skript.

    Dieses schaltet der reihe nach die GPIOS 21 20 26 16 19 13 diese schalten je ein Relais das dann die LED an bzw. ausschaltet.

    Soweit habe ich das auch am Laufen.

    Jetzt möchte ich gerne das wenn ich Taster 1 betätige das die GPIO´s der Reihe nach 21 20 26 16 19 13 schaltet und wenn ich Taster 2 betätige die GPIO´s umgekehrt geschaltet werden also 13 19 16 26 20 21.

    Starter ich Taster 1 schalten die Relais und starte ich NUR Taster 2 schalten die Relais auch.

    Starte ich aber beide Taster klicken die Relais auf und ab.

    Die taster habe ich so aussehen:

    previous=$(cat /sys/class/gpio/gpio2/value)

    # Endlose Schleife

    while true

    do

    # Den Zustand des Eingangs lesen

    pin=$(cat /sys/class/gpio/gpio2/value)

    # Wenn der Eingang von 0 auf 1 gewechselt hat

    if [ $pin -gt $previous ]

    then

    # Das Programm starten

    bash /home/pi/lameein2.sh

    else

    # Eine halbe Sekunde schlafen, damit der Prozessor nicht heissläuft

    bash /home/pi/lameaus2.sh

    fi

    # Der aktuelle Wert wird der alte Wert für den nächsten Durchlauf

    previous=$pin

    done

    -------------------------------

    Der zweie Taster steuert dann den GPIO 22 und startet lamein / aus .sh

    Die sehen so aus:

    Lamein.sh

    #!/bin/sh

    for Port in 21 20

    do

    echo "0" > /sys/class/gpio/gpio${Port}/value

    done

    sleep 1

    for Port in 26 16

    do

    echo "0" > /sys/class/gpio/gpio${Port}/value

    done

    sleep 1

    for Port in 19 13

    do

    echo "0" > /sys/class/gpio/gpio${Port}/value

    done

    lamaus.sh

    #!/bin/sh

    for Port in 21 20

    do

    echo "1" > /sys/class/gpio/gpio${Port}/value

    done

    sleep 1

    for Port in 26 16

    do

    echo "1" > /sys/class/gpio/gpio${Port}/value

    done

    sleep 1

    for Port in 19 13

    do

    echo "1" > /sys/class/gpio/gpio${Port}/value

    done


    wie bekomm ich das hin ohne das sich die beiden taster beißen ….

    MFG

    2 Mal editiert, zuletzt von hyle (25. August 2020 um 17:35)

  • Zur hilfreichsten Antwort springen
  • mein Mausrad wird verschlissen, wozu gibt es Code Tags?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo

    Jetzt nochmal

    Ich möchte per schalter ein GPIO schalten der ein script startet.

    Dieses script schaltet der reihe nach die GPIO´s 21 20 26 16 19 13

    wird der schalter unterbrochen gehen die GPIO´s der reihe nach wieder aus.

    Der zweite schalter macht genau das selbe nur das die GPIO´s andersherum geschaltet werden.

    13 19 16 26 20 21.

    Das funktioniert leider nur mit einem schalter. Wenn ich beider Schalter starte klicken die relais immer im kreis.

    Was muss ich ändern an meinem schalter script damit es sich nicht beißt.

    Habe alle schaltungen im Anhang.

    MFG gpioon.shlameaus.shlameaus2.shlameein.shlameein2.shtaster.shtaster2.sh

  • Habe alle schaltungen im Anhang.

    Link ist doof, nur hier hochladen gilt damit auch die Nachwelt das sehen kann wenn dein Link auch schon lange tot ist!

    Ich möchte per schalter ein GPIO schalten der ein script startet.

    ohne Code wird das nix!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    • Offizieller Beitrag

    Hallo sralus,

    ich habe Deinen Beitrag #1 aus folgendem Grund wiederhergestellt. Den ersten Beitrag eines Threads zu löschen ist doof, weil der Thread dann an den ersten User danach, der antwortet, vererbt wird.

    Btw. Bei der Gelegenheit hab ich auch gleich die Textformatierung normalisiert. ;)

  • Und vielleicht auch noch die 7 Skripte aus #5 einfügen oder was? :elektro:

    wenn du magst :lol::lol::lol::angel:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • kann mir denn einer helfen und mir sagen wie ichmeine schaltung hinbekomme ?

    Möchte also 2 GPIOS überwachen die bei kontakt ein .sh ausführen.

    diese .sh datei schaltet 6 relais die dann 6 Lampen schalten.

    Einmal sollen die lampen bei kontakt des GPIO´s von 1-6 der reihen nach angehen und wenn der kontakt gelösst wird wieder von 6-1 der reihe nach ausgehen.

    Der 2 GPIO´soll genau das gleiche machen nur andersherum. also geschlossen von 6-1 lampen an und geöffnet dann von 1-6 wieder aus.

    Bin für jeden vorschlag dankbar.

    Evtl ist es so einfachen als auf meinem alten kram aufzubauen.

    MFG

    • Offizieller Beitrag

    Bin für jeden vorschlag dankbar.

    Was die Sache hier komliziert macht, ist m.M.n. die Programmiersprache. Mit Python3 und dem Modul gpiozero wäre das sicher leichter umzusetzen, davon abgesehen, dass man nur ein Skript dafür benötigt.

  • ja sowas suche ich .. ein skript welches die beiden eingänge überwacht und ein befehl ausführen. .. das müsste doch umsetztbar sein ..

    könntst du mir ein beispiel skript schreiben `? dieses wuürde ich dann anpassen..

    MFG

  • Und es fehlen noch eine Reihe von Angaben. Was passiert denn, wenn die beiden Tasten gleichzeitig gedrückt werden? Und was heißt der Reihe nach, hört das hochzählen auf, wenn die Taste gelöst wird? Oder läuft das immer bis zum Ende?

  • ja sowas suche ich .. ein skript welches die beiden eingänge überwacht und ein befehl ausführen. .. das müsste doch umsetztbar sein ..

    könntst du mir ein beispiel skript schreiben `? dieses wuürde ich dann anpassen..

    MFG

    Du denkst immer noch, man könnte das durch mehrere Skripte lösen. Das geht nicht. Wenn du zwei Kurierfahrer losschickst, und die sollen das gleiche Auto benutzen - dann geht das Auch nicht, der eine steuert nach links, der andere nach rechts. Und hier ist das genauso: Das eine Skript schaltet die Lampe an, das andere schaltet sie aus, und wer zufällig als letztes lief hat gewonnen. Du musst also alles in einem Skript lösen, und dazu auch die Fragen aus meinem letzten Beitrag beantworten.

    • Offizieller Beitrag

    könntst du mir ein beispiel skript schreiben

    Ungern, weil gpiozero ziemlich gut dokumentiert ist.

    Hier zwei Ansätze:

    https://gpiozero.readthedocs.io/en/stable/reci…-controlled-led

    https://gpiozero.readthedocs.io/en/stable/recipes.html#ledbargraph

  • ich habe einen bewegungsmelder am anfang meiner auffahrt .. dieser schaltet ein octocopler relais.. dies schaltet ein GPIO . das wiederum schaltet ein skript welches meine Relais schalten . Die relais schalten je eine Lampe.

    Ich habe 6 lampen in meiner aufhart verbaut und diese sollen der reihe nach angehen.

    Wenn der bewegungsmelder ausschaltet sollen die Lampen der reieh nach wieder ausgehen.

    Das habe ich soweit auch hinbekommen.

    Jetzt habe ich am Ende der auffahr noch einen zweiten Bewegungsmelder. Der soll das gleiche machen wie der erste bewegungsmelde (nur umgekehrt)

    So ist meine Idee ..

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!