Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Shell Script GPIO Pins

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Shell Script GPIO Pins

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wecker6789 last edited by

      Guten Tag,

      hier ein vielleicht etwas außergewöhnliches als Thema.

      Thema: Step Motor mit IOBroker steuern.

      So mal dirket zum Problem.

      Steuern kann ich den Step-Motor natürlich mit dem IOBroker, aber da die Timings nicht so niedrig gehen, wie ich es gerne hätte.

      (wechsel zwischen High - Low - High soll 1ms betragen) hatte ich nun die Idee es über ein ausgelagertes Script zu versuchen.

      Dies sieht so aus:

      source gpio #gpio Ausgänge scharf schalten

      gpio mode 5 out #Pin 5 als Output deklarieren DIR

      gpio mode 6 out #Pin 6 als Output deklarieren STEP

      gpio mode 7 out #Pin 6 als Output deklarieren SLEEP

      Richtung=$1 #Variable Richtung(Rechts/Links/Sleep) aus dem IOBroker

      Schritte=$2 #Variable Schritte(Zahl) aus dem IOBroker

      if [ "$Richtung" == "rechts" ] #If Abfrage ob Laufrichtung rechts

      then

      gpio write 6 1 #Schreibe Direction Pin

      for((x=0;x<"$Schritte";x++)) #For Schleife mit Anzahl der Schritte

      do

      gpio write 5 1 #Schreibe Pin5 High

      sleep 0.0005 #delay von 0.0005s = 500microseconds

      gpio write 5 0 #Schreibe Pin5 auf Low

      sleep 0.0005 #delay von 0.0005s = 500microseconds

      done

      else

      fi

      if [ "$Richtung" == "links" ] #If Abfrage ob Laufrichtung links

      then

      gpio write 6 0 #Schreibe Direction Pin

      for((x=0;x<"$Schritte";x++)) #For Schleife mit Anzahl der Schritte

      do

      gpio write 5 1 #Schreibe Pin5 High

      sleep 0.0005 #delay von 0.0005s = 500microseconds

      gpio write 5 0 #Schreibe Pin5 auf Low

      sleep 0.0005 #delay von 0.0005s = 500microseconds

      done

      else

      fi

      if ["$Richtung" == "stop"] #if Abfrage Richtung stop

      then

      gpio write 5 0 #Schreibe Pin5 auf Low

      gpio write 6 0 #Schreibe Pin5 auf Low

      gpio write 7 1 #Schreibe Pin7 auf High

      else

      fi

      Nur verweigert dann der Step-Motor leider seinen Dienst.

      Ich hoffe mir kann jemand helfen.

      3918_hallo.png

      3918_beispiel.png

      MfG

      Torsten S.

      1 Reply Last reply Reply Quote 0
      • W
        wecker6789 last edited by

        okay irgendwas scheint mit der if abfrage falsch zu laufen wenn ich die raus nehme dann funktioniert es auf einmal.

        erstelle also für jede Motor Bewegung ein Script.

        mit nur den Übergabeparametern der Schritte.

        Trotzdem wäre es schön zu wissen was an der if abfrage falsch ist falls sich jemand von euch auskennt.

        MfG

        Torsten S.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        864
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        1
        2
        375
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo