1 Taster soll GPIOs der Reihe nach Schalten

  • Hallo,
    Da ich mit meinen Recherchen nicht weiter komme, habe ich mich hier im Forum angemeldet.
    Grüße euch alle und Danke auch an eure Tutorials, die mir bis jetzt sehr geholfen haben :thumbs1:
    Meine Programmierkenntnisse sind bescheiden, bis gar nicht vorhanden,
    deswegen auch meine Anfrage.
    Ich habe es aber trotzdem geschafft Relais mit scripte und wiringPi zu schalten.
    Für eine komfortabele Bedienung steuere ich die einzelnen Relais über den Webbrowser mit PHP.
    In den PHP-Dateien sind lediglich die Pfade der scripte im /home/pi( .sh) eingetragen.
    Nun zu meinem Anliegen.
    Ich möchte zusätzlich, vor Ort, die einzelnen Relais, mit nur "einem Taster" oder Button, der Reihe nach schalten.
    Es werden 3 Relais benötigt, dafür habe ich GPIO 13, 19 und 26 vorgesehen.
    Es soll immer nur ein Relais aktiv sein. Deswegen schalte ich bevor ich den gewünschten
    GPIO auf 0 schalte die übrigen sicherheitshalber auf 1.
    hier eines von den 3 Scripten:

    #!/bin/sh
    gpio -g write 19 1
    gpio -g write 26 1
    gpio -g write 13 0

    Ich brauche eine Script, dass abfragt welcher GPIO auf "0" ist.
    Dann müsste der auf "1" und der nächste auf "0" geschaltet werden.
    Beim nächsten Tasten der nächste usw.
    Das ich nur ein Taster und kein Schalter benutzen möchte soll der aktivierte GPIO bis zum nächsten
    interrupt auf "0" bleiben.
    Es wäre super wenn ich Hilfe bekommen würde, am besten anhand eines Beispiel-scriptes.
    Hoffe ich konnte mein Anliegen einigermaßen verständlich erklären.
    Bedanke mich recht herzlich


  • Es wäre super wenn ich Hilfe bekommen würde, am besten anhand eines Beispiel-scriptes.

    Wie weit bist du denn mit deinen Versuchen bisher bekommen? Hast du schon einen Ansatz, den man anpassen könnte?

    Einmal editiert, zuletzt von pintman (31. März 2016 um 09:08)

  • Ich habe für ein Projekt mal ein Skript geschrieben, welches die Eingaben von vier Tastern in Tastatureingaben wandelt. Dieses starte ich standalone beim Booten mit.
    Das lässt sich sicherlich problemlos für deinen Zweck anpassen.


    Zusätzlich musst du natürlich noch ein weiteres Skript schreiben, welches die GPIO nach deinen Vorstellungen schaltet. Ich denke mal, das wird nicht sonderlich schwierig.

  • Danke für die Antworten,
    ich merke schon dass es für mich etwas schwieriger wird.
    ich behelfe mich zur Zeit damit, dass im script bei jedem Schalten eine Datei anlegen lasse und diese bei jedem Tasten zum jeweiligen GPIO zugeordnet/umbenannt wird.
    Die Zuordnungen heißen "cdin" "auxin" und "phonoin"
    Ich würde lieber die /sys/class/gpio/gpioNUMMER/value auslesen lassen und je nach Zustand 0/1
    weiter verfahren.

    #!/bin/sh

    if [ -f /home/pi/cdin ]
    then
    mv cdin auxin
    gpio -g write 13 1
    gpio -g write 19 0
    elif
    [ -f /home/pi/auxin ]
    then
    mv auxin phonoin
    gpio -g write 19 1
    gpio -g write 26 0
    elif
    [ -f /home/pi/phonoin ]
    then
    mv phonoin cdin
    gpio -g write 26 1
    gpio -g write 13 0
    fi


    Der obige Script funktioniert soweit, ist aber bestimmt nicht elegant :D

Jetzt mitmachen!

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