3D-Drucker, Plotter, Kamera-Slider, Zahnriemenachsen, Dosierpumpen: Überall, wo etwas um einen genauen Winkel oder eine genaue Strecke fahren soll, ohne dass ein Geber die Position zurückmeldet, arbeitet ein Schrittmotor. Er dreht bei jedem Impuls um einen festen Winkel, bei den verbreiteten NEMA-17-Motoren um 1,8°, also 200 Schritte pro Umdrehung.
Ansteuern lässt er sich nicht wie ein Gleichstrommotor mit einfacher Spannung. Seine zwei Wicklungen brauchen abwechselnd Strom in wechselnder Richtung, und dieser Strom muss geregelt werden. Ein Treiber wie der A4988 erledigt das: Er enthält zwei H-Brücken, regelt den Strom und erzeugt Mikroschritte. Der Mikrocontroller gibt nur noch zwei Signale vor: Richtung und Schritt.
Schaltplan
- IC1, A4988: Schrittmotortreiber mit zwei H-Brücken für bis zu 35 V und 2 A. Meist steckt er auf einem kleinen Modul, das Messwiderstände, Ladungspumpen-Kondensatoren und ein Potentiometer für die Referenzspannung schon mitbringt.
- STEP: Jede steigende Flanke bewegt den Motor um einen (Mikro-)Schritt.
- DIR: legt die Drehrichtung fest.
- ENABLE (aktiv Low): Low schaltet die Endstufen ein. High macht den Motor stromlos, er lässt sich dann frei drehen.
- MS1–MS3 an +5 V: wählen 1/16-Schritt.
- RESET und SLEEP (aktiv Low) an +5 V: Treiber dauerhaft aktiv.
- C1, 100 μF / 25 V: direkt an VMOT des Moduls. Er fängt die Spannungsspitzen ab, die beim Schalten der Wicklungen entstehen.
- Motor: bipolarer NEMA 17, zum Beispiel 1,7 A Nennstrom und 1,5 Ω je Spule. Spule A und Spule B sind die beiden Wicklungspaare.
So funktioniert die Schaltung
Im Motor sitzen zwei Wicklungen um einen Rotor mit Permanentmagnet. Fließt Strom durch Spule A, richtet sich der Rotor danach aus. Nimmt Spule B den Strom auf und gibt A ihn ab, folgt der Rotor einen Schritt weiter. Kehrt sich die Stromrichtung in A um, geht es weiter. Vier solche Vollschritte ergeben eine elektrische Periode.
Im Vollschritt schaltet der A4988 beide Spulen jeweils auf 70,7 % des eingestellten Stroms, nur das Vorzeichen wechselt. Im Mikroschritt dagegen bildet er Sinus und Kosinus in Stufen nach. Bei 1/16-Schritt sind das 16 Stufen pro Vollschritt, also 3200 Schritte pro Umdrehung:
Stromregelung (Chopper): Ein Schrittmotor mit 1,5 Ω Wicklungswiderstand würde an 12 V Gleichspannung 8 A ziehen und verbrennen. Der A4988 schaltet die Brücke deshalb ein, bis der Strom den Sollwert erreicht, dann für eine feste Zeit ab, und wieder ein. Den Strom misst er an einem kleinen Widerstand in der Brücke. Weil die Wicklung eine Spule ist, steigt der Strom nicht sofort (Spule an Gleichspannung); deshalb verwendet man eine Versorgung, die weit über der Nennspannung des Motors liegt: Je höher sie ist, desto schneller erreicht der Strom seinen Sollwert, und desto schneller kann der Motor drehen.
Die H-Brücken im Treiber arbeiten wie die H-Brücke für Gleichstrommotoren, nur zweimal und mit Stromregelung. Wie Motortreiber allgemein aufgebaut sind, steht unter Motortreiber.
Dimensionierung
1. Strom wählen. Der Motor verträgt 1,7 A. Ohne Kühlkörper schafft der A4988 auf dem Modul etwa 1 A pro Spule; das reicht für die meisten Achsen und hält den Motor kühl. Du stellst den Spitzenstrom ITrip = 1,0 A ein.
2. Referenzspannung. Der Treiber schaltet ab, wenn die Spannung am Messwiderstand RS ein Achtel der Referenzspannung erreicht:
Auf dem Pololu-Modul ist RS = 0,068 Ω, auf vielen Nachbauten 0,1 Ω (Aufdruck „R100“). Für 1,0 A:
Mit 0,1-Ω-Widerständen wären es 0,80 V. Du misst UREF zwischen dem Schleifer des Potentiometers und Masse und drehst, bis der Wert stimmt.
3. Verluste im Treiber. Jede Brücke hat typisch 0,32 Ω oben und 0,32 Ω unten. Im Mikroschritt ist der Effektivstrom einer Spule 1,0 A / √2 = 0,71 A:
Mit den Höchstwerten von 0,43 Ω sind es 0,86 W. Das schafft das kleine Gehäuse auf dem Modul mit dem aufgeklebten Kühlkörper; über 1,2 A gehört ein Lüfter dazu (Wärme und Kühlung).
4. Grenzdrehzahl. Bei jedem Vollschritt muss sich der Strom in einer Spule von −0,71 A auf +0,71 A umkehren. Mit 2,8 mH und 12 V dauert das ungefähr:
Oberhalb von etwa 1500 Vollschritten pro Sekunde (7,5 Umdrehungen pro Sekunde) erreicht der Strom seinen Sollwert nicht mehr, das Drehmoment bricht ein. Mit 24 V verdoppelt sich diese Grenze. Die Gegenspannung des drehenden Motors senkt sie in der Praxis weiter.
5. Schrittfrequenz. Für eine Umdrehung pro Sekunde bei 1/16-Schritt braucht der Treiber 200 · 16 = 3200 Impulse pro Sekunde, alle 312 μs einer. STEP muss mindestens 1 μs High und 1 μs Low sein.
Arduino-Programm
const int DIR = 2, STEP = 3, EN = 4;
const long PRO_UMDREHUNG = 200L * 16; // 1,8° und 1/16-Schritt
void drehe(long schritte, unsigned int pause_us) {
digitalWrite(DIR, schritte > 0 ? HIGH : LOW);
for (long i = 0; i < labs(schritte); i++) {
digitalWrite(STEP, HIGH);
delayMicroseconds(2); // mindestens 1 μs High
digitalWrite(STEP, LOW);
delayMicroseconds(pause_us);
}
}
void setup() {
pinMode(DIR, OUTPUT);
pinMode(STEP, OUTPUT);
pinMode(EN, OUTPUT);
digitalWrite(EN, LOW); // Endstufen ein
}
void loop() {
drehe(PRO_UMDREHUNG, 300); // eine Umdrehung in etwa 1 s
delay(500);
drehe(-PRO_UMDREHUNG / 2, 600); // halbe Umdrehung zurück, halb so schnell
delay(500);
}
Der Motor springt hier sofort auf volle Geschwindigkeit. Für schnellere Fahrten muss er beschleunigen, sonst verliert er Schritte. Die Bibliothek AccelStepper erzeugt dafür Rampen.
Bauteilliste
| Bezeichner | Wert/Typ | Hinweis |
|---|---|---|
| IC1 | A4988-Modul | mit Kühlkörper; UREF einstellen |
| C1 | 100 μF / 25 V | direkt an VMOT und GND des Moduls |
| M1 | NEMA 17, bipolar | z. B. 1,7 A, 1,5 Ω, 2,8 mH je Spule |
| Netzteil | 12 V, ≥ 2 A | GND mit dem Arduino verbinden |
Varianten
DRV8825. Pinkompatibel zum A4988-Modul, bis 45 V und 2,2 A, mit 1/32-Schritt. Auf dem Pololu-Modul gilt I = 2 · UREF; 1,0 A brauchen also 0,5 V.
TMC2209. Deutlich leiser durch eine andere Stromregelung, Strom und Mikroschritt per UART einstellbar, bis etwa 2 A. Erste Wahl für 3D-Drucker und alles, was nachts läuft.
Kleiner unipolarer Motor. Der 28BYJ-48 mit Getriebe läuft an 5 V mit einem ULN2003 als Treiber. Er ist langsam und schwach, aber billig. Hier schaltest du die vier Wicklungshälften selbst nacheinander.
Eigene H-Brücken. Zwei Motortreiber wie der DRV8833 können einen kleinen Schrittmotor ebenfalls treiben, allerdings ohne Stromregelung: Dann darf die Versorgung nur so hoch sein, wie der Motor verträgt.
Endschalter. Ein Schrittmotor kennt seine Position nach dem Einschalten nicht. Eine Referenzfahrt gegen einen Endschalter (siehe Taster am GPIO) legt den Nullpunkt fest.
Typische Fehler
- Motor brummt, dreht aber nicht oder zittert: Spulen falsch zugeordnet. Mit dem Multimeter findest du die Paare: Zwischen den beiden Enden einer Spule misst du etwa 1,5 Ω, zwischen verschiedenen Spulen unendlich.
- Treiber stirbt beim Umstecken: Motor nie bei anliegender Versorgung an- oder abstecken. Die Induktionsspannung beim Abreißen des Stroms zerstört die Endstufe (Induktion).
- Treiber überlebt das Einschalten nicht: C1 fehlt oder sitzt weit weg. Die Induktivität langer Zuleitungen und die Keramikkondensatoren auf dem Modul bilden einen Schwingkreis, der beim Einstecken des Netzteils über 35 V überschwingen kann.
- Motor verliert Schritte: Zu schnell ohne Rampe, Strom zu klein oder Versorgung zu niedrig. Erst langsam testen, dann steigern.
- Treiber schaltet sich ab, Motor ruckelt: Übertemperatur. Strom senken oder kühlen.
- Motor wird sehr heiß: Strom zu hoch eingestellt. Ein Schrittmotor darf 60 bis 80 °C am Gehäuse haben, mehr nicht.
Selbsttest
Wie viele Impulse braucht eine Umdrehung bei 1,8°-Motor und 1/8-Schritt?
200 · 8 = 1600.
Welche Referenzspannung stellst du für 0,8 A ein, wenn RS = 0,1 Ω ist?
8 · 0,1 Ω · 0,8 A = 0,64 V.
Warum betreibt man einen Motor mit 2,6 V Nennspannung an 12 oder 24 V?
Der Treiber regelt den Strom. Die hohe Spannung lässt den Strom in der Wicklung schneller ansteigen, sodass der Motor auch bei hoher Schrittfrequenz sein Drehmoment behält.
Was bewirkt ENABLE auf High?
Die Endstufen sind aus, der Motor ist stromlos und hält seine Position nicht mehr.
Warum läuft ein Motor im Mikroschritt ruhiger?
Der Strom ändert sich in vielen kleinen Stufen entlang einer Sinuskurve statt in Sprüngen. Das Magnetfeld dreht dadurch gleichmäßig weiter.