Schrittmotor Steuerung

By | 4. April 2017

Ein Schrittmotor (oft auch Stepper genannt) ist ein Synchronmotor, bei dem der Rotor bei geschickter Wahl der angesteuerten Stator-Spulen gezielt um einen Winkel gedreht werden kann.

Auf diese Weise kann man in mehreren Schritten jeden Drehwinkel, als Vielfaches des minimalen Drehwinkels anfahren. Schrittmotoren eignen sich als hochpräzise Stellmotoren. Sie können eine vorherbestimmte Anzahl von Schritten drehen und dann stehen bleiben. Ein Positionsgeber für die Rückmeldung, ob die gewünschte Position erreicht ist, wird dazu nicht zwingend benötigt.

Es gibt aus elektrischer Sicht zwei grundlegende Typen von Schrittmotoren. Unipolare und bipolare Schrittmotoren. Die einfachsten Typen haben zwei getrennte Wicklungen, auch Phasen genannt. Der Unterschied besteht in der Ansteuerung der Wicklungen:

  • Unipolare Schrittmotoren haben Wicklungen mit Mittelanzapfungen. Die Mittelanzapfungen sind mit der Versorgungsspannung verbunden, die Spulenendanschlüsse über Leistungstransistoren auf Masse. Durch das Einschalten der Transistoren kann man die Spulen jeweils zur Hälfte mit Strom durchfluten.
  • Bipolare Schrittmotoren haben einfache Wicklungen. Die Spulen werden über H-Brücken angesteuert, um sie umpolen zu können. Dadurch fliesst der Strom immer durch die ganzen Spulen. Änderung der Drehrichtung von Linear-Achsen kann Durch vertauschen der Spulenanschlüsse am Motortreiber erreicht werden.

Da man den Schrittmotor nicht direkt an die digitalen Ausgänge des Arduinos anschliessen kann, benötigt man entsprechende Treiber Bausteine, die die erforderlichen Ströme zum Betrieb des Motors bereitstellen. Der im Arduino Starterpaket enthaltene Treiber-Baustein L293 kann bis zu 600mA bereitstellen. Wenn höhere Ströme benötigt werden müssen andere Bausteine verwendet werden, beispielsweise der Typ L298 der bis zu 2A Strom liefern kann.

Wenn man den Schrittmotor in Bewegung versetzen möchte, müssen die Spulen in einer bestimmten Reihenfolge mit Spannung versorgt werden. Da es sich um einen Schrittmotor handelt bedeutet eine Umdrehung, dass diese durch eine Folge mehrer Micro-Schritte realisiert werden. Dazu müssen die Spulen mit Impulsen in einer bestimmten zeitlichen Reihenfolge angesteuert werden. Diese Schritte sind zusammen mit der erforderlichen Ansteuerungssequenz im folgenden Beispiel veranschaulicht.

Funktionsprinzip eines Schrittmotors

Wir gehen in diesem Beispiel davon aus, dass der sich Motor in Ruheposition befindet und der Südpol des Dauermagneten vom Rotor auf die 12 Uhr Position zeigt.

Schritt 1: Die beiden Südpole, bzw. Nordpole der Statorpole ziehen den Dauermagneten des Rotors in die gezeigte Position. Nur zwei Spulenhälften führen Strom. Für die Elektronik bedeutet dies: A und D müssen HIGH geschaltet werden.

Schritt 2 : Nur eine Statorzange ändert ihre magnetische Polarität und bewegt dadurch den Rotordauermagneten exakt um einen Schritt. A und C müssen dazu auf HIGH geschaltet werden.

Schritt 3: B und C werden nun auf HIGH gesetzt. Dadurch wird die Statorzange bei B umgepolt und sie zieht den Rotor um einen Schritt nach.

Schritt 4: Die Statorwicklungen B und D werden jetzt HIGH und bewegen dadurch den Rotor um einen weiteren Schritt vorwärts.

Mit vier Schritten wurde damit eine volle Umdrehung gegen die Uhrzeigerrichtung erreicht.

 Software-technische Umsetzung

Um nun beispielsweise den Schrittmotor um 9 Schritte zu bewegen, müssen die oben beschriebenen Ansteuersequenzen aneinander gereiht an den Motor gesendet werden. Dies ist in der folgenden Tabelle dargestellt:

Das Problem besteht nun also darin, zu einer gegebenen Schrittezahl, um die sich der Schrittmotor bewegen soll, die passenden Ansteuersequenzen zu bestimmen. Mit anderen Worten benötigen wir eine Abbildung einer Schrittfolge in eine Folge von 4-Steuer-Sequenzen.

Dabei hilft die Modulo-Funktion. Eine beliebige Zahl modulo 4 gerechnet ergibt immer einen Rest der zwischen 0 und 3 liegt. Beispiel:

Um unser Ansteuer-Problem zu lösen, müssen wir nur die Bezeichnung der Steuercode-Sequenzen so anpassen, dass wir im erforderlichen Raster 1-2-3-0-1-2-3-0 zählen können.

Also unser Schritt 1 wird somit zu Neu-Schritt 0. Schritt 2 zu Neu-Schritt 1 usw. Dadurch bekommen wir wenn wir 4 Schritte machen machen, nun die Steuer-Sequenz-Nummern 0,1,2,3. Zur Veranschaulichung noch einmal die obige Tabelle nun aber mit der Modulo-Schritt-Zahl in der blauen Spalte.

Für die Software-technische Umsetzung werden die vier Steuer-Sequenz-Schritte plus die Power-Off-Steuerung in einem 2-dimensionalen Array abgelegt:

Damit kann man auf einfache Art über eine entsprechende Funktion auf die Steuer-Sequenzen zugreifen und diese zur Motor-Bewegungs-Steuerung einsetzen.