Motorsteuerung eines Schrittmotors (Stepper Motor)

Arduino Stepper Schrittmotor
Stepper-Motor-Steuerung

Um einen Schrittmotor zu steuern benötigt man eine H-Bridge. Hier der LD293D. Auch, wenn die Schaltung recht komplex aussieht, ist das Prinzip relativ einfach. Die Ausgänge das Arduino-Boards werden durch die vier Schaltstufen der H-Bridge verstärkt und an den Stepper-Motor geschickt.

Die Arduino-Software kommt mit der Stepper-Library. Das Beispiel MotorKnob (File>Examples>Stepper>MotorKnob) zeigt, wie sie benutzt wird.

H-Bridge mit externer Stromversorgung
Bipolarer Stepper mit H-Bridge und externer Stromversorgung

Ein unipolarer Steppermotor wird übrigens ganz ähnlich angeschlossen und es kann auch der selbe Code verwendet werden:

Unipolarer Stepper auf dem Breadboard
Ein unipolarer Steppermotor auf dem Breadboard. Die gelben Anschlüsse sind die gemeinsamen Verbindungen des jeweils roten und schwarzen Magnetanschlusses.

67 Kommentare zu „Motorsteuerung eines Schrittmotors (Stepper Motor)

  1. Hallo Stefan,
    ich nehme mal diese Seite hier um auch von mir ein Lob an dich zu bringen, wirklich sehr gelungene Page, sehr Informativ, es macht auch mir riesigen Spaß hier alles nach zu lesen und zu bauen.
    Bitte weiter so!

    LG
    Axel

  2. Erreicht der Schrittmotor dann seine volle Leistung? Das Arduino kann schließlich nur 40 mA pro Pin liefern, die meisten Schrittmotoren benötigen jedoch deutlich mehr, in meinem Fall 1,2 A.
    Meine Alternative wäre gewesen über ein MOSFET die V+ Leitung der externen Stormversorgung freizuschalten und GND von Arduino und Netzteil zu verbinden.

    Gruß
    Florian

  3. @Florian: Du hast schon recht. Das ist natürlich total vom Motor abgängig. Ich habe im unteren Teil des Artikels noch ein Bild von einem Schaltplan mit Netzteil. Das sollte mehr Strom liefern. (Bei dem Regler allerdings nur 500mA)

  4. Sprich wenn ich das Netzteil wie von dir gezeichnet anschließe, ich benutze eine SN75441ONE H-Bridge, bekommt der Motor mehr Leistung?

  5. Ist es eigentlich möglich, diese Schrittmotorsteuerung mit einer Powerpointpräsentation anzuregen. Z.B. Über Visual Basic?

  6. Hy alle,

    ich brauch dringend hilfe bekomm den befehl nicht hin.

    Ausgangssituation: 1 stepper, 1 usb
    Programmablauf:

    USB = 5 Volt —> Step +100 —> Stepper stopp & warten auf USB = 0 Volt

    wenn USB = 0 Volt —> Step -100 —> Stepper stopp & warten auf USB 5 Volt

    und weiter loopen!

    das mit dem stepper vor und zurück per usb high oder low funktioniert soweit nur bleibt mein stepper nicht stehen und wartet auf das high oder low signal vom usb?!?!?!

    ich bin bisschen überfordert hab erst vor ner woche mit C angefangen…

    vielen dank für die hilfe

    Greez Daniel

  7. Hallo Stefan,

    tolle Seite!
    Ich bin absoluter newbe was Arduino und Programieren angeht.
    Deshalb die Frage:
    Ich habe einen Arduino Uno, ein Motorshield Rev3, einen Schrittmotor und einen Poti.
    Jetzt würde ich gerne die Geschwindigkeit des Motors mit dem Poti Vorwärts und Rückwärts laufen lassen.
    Eine externe 12V Stromquelle habe ich bis jetzt am Motorshield angeschlossen. Brauche ich trotz shield noch eine hbridge? Und kann die Stromquelle weiterhin am shield bleiben, oder muss ich da etwas besonderes mit dem Ground beachten?
    Bin da leider etwas unsicher, und möchte den Arduino ja auch nicht beschädigen.

    Danke schon mal im Vorraus…
    Dirk

  8. Hi Dirk,

    also das Motorshield (Gute Wahl im Übrigen) ist die H-Bridge. Du brauchst also keine weitere für den Motor. Der Ground vom externen Netzteil ist auch schon über das Shield mit Arduino verbunden. Ist also alles ganz einfach – musst du nichts weiter beachten und beschrieben ist alles hier: http://arduino.cc/en/Main/ArduinoMotorShieldR3

    Liebe Grüße

    Stefan“

  9. Hallo,

    Ich versuche folgendes projekt zu verwirklichen. Und zwar möchte ich ein Solarpanel nach der Sonne über einen schrittmotor ausrichten. Das ganze soll über fotowiderstände funktionieren. Da ich noch nicht arg mit der Materie vertraut bin ist meine frage wie ich den Stepper der über ein Motor shield ansteuer über die fotowiderstände. Könnte mir da jemand bei helfen?

  10. Kleiner Hinweis für Interessierte:
    „Um einen Schrittmotor zu steuern…“ exakt hier ist auch die grösste Limitierung! Diese Stepper lib erlaubt genau EINEN Stepper zu steuern, aber nicht 2 oder mehr gleichzeitig, da die step() Funktion eine Block-Funktion ist. Man kann also immer nur einen Motor noch dem anderen steuern, nicht 2 oder mehr gleichzeitg…

  11. Hallo,

    ich hätte da mal ein oder zwei probleme ich benutze einen Monipolaren Schrittmotor.
    In dem oben stehenden program sind in Stepper stepper(STEPS, 8, 9, 10, 11); 4 pins angegeben, der monipolare schrittmotor bedient sich aber nur 2 pins (bei mir 10 und 11)wie genau wirken sich die anderen beiden pins aus? außerdem möchte ich den schrittmotor nicht über einen potenziometer, sondern über einen festen ablauf steuern. ich habe also „val – previous“ durch eine schrittzahl ersetzt. das sollte doch auch funktionieren oder?. wenn ich as programm uploade (ich habe auch schon versucht die beiden anderen Pins heraus zu löschen.) fängt der schrittmotor an zu vibrieren, statt sich zu drehen.
    ich hoffe ihr könnt mir helfen. Danke!

  12. Hallo Stefan,

    ich habe ein ähnliches Problem, wie Kirito es beschrieben hat. Ich bin mir aber ziemlich sicher, dass ich einen Schrittmotor habe (Sanyo 103-547-52500). Laut Herstellerangaben, kann der Schrittmotor uni- und bipolar betrieben werden.
    Ich habe es jetzt mal mit der bipolaren Steuerung versucht und dabei deinen Schaltplan mit externer Spannungsquelle verwendet.
    Starte ich MotorKnob vibriert mein Schrittmotor allerdings nur, bzw bewegt sich nur vor und zurück.
    Woran könnte das liegen?
    Und eine weitere Frage, die aber vermutlich nichts mit meinem Problem zu tun hat:
    Müsste die externe Spannungsquelle nicht auf beiden Seiten des L293D angeschlossen werden?

  13. Achso,

    was ich noch erwähnen wollte. Mein Schrittmotor hat eine Nennspannung von 2,2V (Stangstrom 0,7A, Widerstand 3,5 Ohm).
    Das L293D hat an den Anschlüssen für die Spule allerdings 3,8V (im Ruhezustand).
    1. Wie kann ich die Spannung senken?
    2. Habe ich dadurch evt. den Schrittmotor schon beschädigt?

    Gruß
    Wade

  14. Hinweis:
    Ich habe inzwischen auch die Schaltung für unipolare Schrittmotoren ausprobiert (allerdings mit dem L293D IC) und der Motor zuckt immer noch lediglich vor und zurück und ich weiß nicht, woran das liegen könnte.

    Gruß
    Wade

  15. hallo ,
    ich und mein Freund erhielten von unserem Lehrer den Auftrag ein kleines Auto zu bauen und es mit Hilfe von Arduino so zu programieren das es möglichst nah an eine Wand fährt ohne diese zu berühren.
    Da ich und mein Freund von all dem Programmiern keine Ahnung haben hoffen wir nun durch eure Hilfe Tipps zu erhalten wie wir das durch das programmiern schaffen können

  16. was ich noch ergänzen sollte ist das uns dafür ein Motor-Shield ,ein Motor (3-12V), eine Batterie (7.2V) und ein Ping-Sensor zur Verfügung stehen.
    Vielen Dank im voraus:)

  17. Hallo,

    die oben abgebildete Schaltung mit L293 ohne und mit externer Spannungsversorgung funktioniert in meinem Nachbau grundsätzlich mit dem Beispielsketch MotorKnob, in dem ich die Schrittzahl angepasst habe. Allerdings drehen die angeschlossenen (unterschiedlichen) Stepper alle nur 5 Umdrehungen und bleiben dann mit zuckendem Motor stehen. Schrittzahl und Geschwindigkeit habe ich testweise verändert. Für den Poti habe ich einen 2k und einen 10 k ausprobiert. Das Ergebnis ist immer dasselbe.

  18. Ich habe einen recht kräftigen Steppermotor für 3V mit 3A. Das wären also 9Watt Leistungsaufnahme. Rein vom Gefühl her war mir das ein bisschen viel für diese H-Bridge. Ein Blick in das Datenblat zeigt: dieser Schaltkreis ist nur für eine Motorspannung zwischen 4,5 und 36 Volt verwendbar.

    Damit ist auch teilweise die obige Frage beantwortet, ob ein Schrittmotor mit einer Nennspannung von 2,2 Volt mit dieser Schaltung betrieben werden kann. Im Prinzip also nicht, aber vielleicht besteht die Möglichkeit (wenn der Motor 6 Anschlussdrähte hat) dessen Spulen seriell und den Motor dann als bipolaren Motor zu verwenden. Somit würden benötigte Spannung wenigstens auf 4,4 Volt klettern. Für einen Dauerbetrieb ist das allerdings nicht geeignet.

  19. Hallo Stefan,
    kann ich mit oben genannter Steuerung einen Schrittmotor stufenlos steuern?
    Ich kenne mich mit Arduinos und Schrittmotoren bis dato gar nicht aus.
    Deine Seite ist sehr interessant und übersichtlich aufgebaut. Vielen Dank dafür!

  20. Das ist nicht sooo unteresaant und ehher dumm und unnötig aber es gibt immer menschen die daran spaß haben ne?!

  21. Guten Tag, das hier ist eine tolle Seite…

    Ich habe ein Problem ich benötige eine Schrittmotorsteuerung mit Endschalter und Geschwindigkeitsregelung über Poti. Habe schon einiges versucht, nur bin ich leider nicht zu dem Ergebnis gekommen das ich erreichen möchte.
    Wenn mir einer einen Schaltplan inkl. Materialliste und den passenden Code zusenden könnte wäre das echt super. Ich würde Ihn auch für seine mühe entlohnen.
    Mit freundlichen Grüßen
    Marc

  22. Hallo Stefan (falls du das noch liest),

    müßte bei Bild 2 und 3 nicht Pin 16 des ICs an der externen Spannung, statt an 5V hängen?

  23. Kommentar hier drüber bitte ignorieren. Hatte das irgendwie so in Erinnerung, dass der IP Symetrisch ist und die Versorgung über Enable läuft.

  24. Lag vermutlich daran, dass bei der Google Bildersuche nach „293d“ das erste Bild 12V auf 8 und 16 hat. O_O

  25. Wie funktioniert die Ansteuerung wenn man einen externen Controller verwendet, also man nur einen Taktausgang benötigt, rechts/links und Start/Stopp?

  26. Hallo
    Hier ist der Quellcode angezeigt, mit dem man die steps vorher schon bestimmen kann. Hab ich auch verstanden, danke dafür.

    Allerdings will ich ein Touchpanel einbauen, mit dem der Nutzer Geschwindigkeit und steps selber eingeben kann. Wie mache ich das? Ich würde mich sehr über Ideen freuen.

    Liebe Grüße,
    Mimoza

  27. Guten Tag
    Beim googeln bin ich auf Ihre Seite gestossen.
    Ist ja eigentlich ganz verständlich erklärt.
    Ich frage aber trotzdem an, da ich absoluter Neuling bin.

    Ich möchte eine Apperatur bauen in welcher der Schrittmotor vor und zurücklaufen soll, gegen Ender beider Laufrichtungen soll der motor langsamer werden und zum stillstand kommen.

    Der Motor soll mit einer langlebigen Batterie betrieben werden (1 Tag sollte das ding laufen bevor ich es aufladen muss.)

    Nun braucht der Schrittmotor aber auch kräftig zu sein. den es wirkt eine unregelmässige Gegenkraft auf den Motor.

    Zudem sollte das ganze kompakt sein damit ich es Innen verbauen kann. In einem „Waadenbein“ sollten alle Teile platz finden inklusive Laufschiene welche die Bewegungsrichtung richtet. (Theoretisch wäre auch ein unterbau möglich, lieber aber ohne)

    Meinen Sie dies ist machbar, und welchen Motor und Batterie würdest du mir empfehlen?

    Controller könnte Arduino oder Rasperi Pi sein habe da schon beides im Internet gesehen.

    Für Ihre Hilfe währe ich Ihnen sehr dankbar.

    Freundliche Grüsse
    P.S.

  28. Ich habe ein Proplem mein schritmottor funktonirt nicht kurz bevor das Proplem auftrat begann er zu Rauchen und zu brennen wer kann mir helfen.
    wie bringe ich den zum laufen ,wäre super wenn ich eine antworrt bekämme. hab das Arduino in die Steckdose get an und es mit 230 V geladen um es zu laden ber es begann zu schmelzen also kann mir bitte jemand helfen isch Habe sonst nur Einsen in der Schulle bitte helft mier.
    Libe Grüße Wimet Markus

  29. Ich habe ein Proplem mein schritmottor funktonirt nicht kurz bevor das Proplem auftrat begann er zu Rauchen und zu brennen wer kann mir helfen.
    wie bringe ich den zum laufen ,wäre super wenn ich eine antworrt bekämme. hab das Arduino in die Steckdose get an und es mit 230 V geladen um es zu laden ber es begann zu schmelzen also kann mir bitte jemand helfen isch Habe sonst nur Einsen in der Schulle bitte helft mier.
    Libe Grüße Wimet Markus <B

  30. Pingback: cash advances
  31. Pingback: Predrag
  32. Pingback: telefoonhoesjes
  33. Pingback: iq iq
  34. Pingback: Aleksandar
  35. Pingback: gitano
  36. Pingback: UGT phenotyping
  37. Pingback: laws
  38. Pingback: bitcoincasino us
  39. Pingback: 안전놀이터
  40. Pingback: archiwnetrze.pl
  41. Pingback: hard fuck on bed
  42. Pingback: blog here
  43. Pingback: top pokies sites

Die Kommentare sind geschlossen.