Bauteil · Treiber

A4988 Stepper Driver

Die billige Trägerplatine, die den Strom in eine Schrittmotorspule regelt. Grenze mit dem Messgerät einstellen, Sense-Widerstand-Falle und wann zum TMC greifen.

Was es ist

Ein A4988-Träger ist ein briefmarkengroßes Board zwischen Mikrocontroller und bipolarem Schrittmotor. Du gibst ihm zwei Signale – einen Puls und eine Richtung –, und es erledigt alles andere: die Spulen in der richtigen Sequenz bestromen und, entscheidend, regeln, wie viel Strom hineingeht.

Dieser zweite Job ist derjenige, der zählt und den Leute überspringen. Eine Schrittmotorwicklung ist eine niederohmige Induktivität, typisch 2 bis 4 Ohm. 24 V über 2,8 Ω angeschlossen, und das Ohmsche Gesetz gibt 8,6 A, was einen 1,7-A-Motor in Sekunden zerstört. Der A4988 vermeidet das, indem er die Versorgung zehntausendfach pro Sekunde zerhackt und den mittleren Strom auf dem eingestellten Wert hält.

Also hat das Board genau eine Einstellung: ein Trimmpoti, das die Stromgrenze setzt. Richtig eingestellt, und der Treiber ist unsichtbar. Falsch eingestellt, und du hast entweder einen schwachen Motor, der Schritte verliert, oder einen heißen, der gart.

Ein A4988-Trägerboard von oben mit acht vergoldeten Pads auf jeder Seite. Die linke Pad-Spalte lautet ENABLE, MS1, MS2, MS3, RESET, SLEEP, STEP und DIR, mit hervorgehobenem STEP und DIR. Die rechte Spalte lautet VMOT, GND, 2B, 2A, 1A, 1B, VDD und GND, mit rot hervorgehobenem VMOT. Ein Trimmpotentiometer oben ist als VREF-Trimmpoti zum Messen mit Messgerät beschriftet, und ein gerippter Kühlkörper bedeckt den Treiberchip. Zwei kleine Sense-Widerstände unten auf dem Board sind als R100 gleich 0,1 Ohm oder R050 gleich 0,05 Ohm ausgewiesen, mit Warnung, die eigenen abzulesen, bevor man etwas rechnet.
Sechzehn Pads, ein Trimmpoti, zwei winzige Widerstände, die die Arithmetik ändern. STEP und DIR sind die einzigen Pins, die dein Sketch zur Laufzeit anfasst. SVG herunterladen

Pinbelegung

Pin Richtung Was er tut
VMOT Strom hinein 8–35 V Motorversorgung. Braucht 100 µF darüber, nah dran.
GND (Motorseite) Strom Hochstrom-Rückleitung
VDD Strom hinein 3–5,5 V Logikversorgung, wenige mA
GND (Logikseite) Strom Muss Masse mit der Motorversorgung teilen
1A, 1B Ausgang Eine Motorspule
2A, 2B Ausgang Die andere Motorspule
STEP Eingang Eine steigende Flanke = ein Mikroschritt
DIR Eingang High oder Low wählt die Richtung
ENABLE Eingang Low-aktiv. Auf Masse legen zum Bestromen.
RESET Eingang Muss high sein. Mit SLEEP brücken.
SLEEP Eingang Muss high sein, damit der Treiber läuft
MS1, MS2, MS3 Eingang Microstep-Auflösung; intern nach unten gezogen

Zwei Pins erklären die meisten „tut nichts“-Meldungen: ENABLE offen oder high gelassen (er ist low-aktiv, muss also herunter gezogen werden), und RESET offen gelassen (muss high sein, weshalb jede Verdrahtungsanleitung sagt, RESET mit SLEEP zu brücken).

Verdrahtung an einen Arduino

Arduino 5V  ──── VDD
Arduino GND ──── GND (logic)  ──┬── GND (motor)
                                └── PSU −
PSU + (12–24 V) ──── VMOT ──┬── 100 µF electrolytic ──┘
                           
Pin 3  ──── STEP            RESET ──┬── SLEEP
Pin 4  ──── DIR                    
Pin 5  ──── ENABLE          MS1, MS2, MS3 ──── 5 V  (1/16 stepping)

Motor coil A ──── 1A, 1B
Motor coil B ──── 2A, 2B

Nicht verhandelbar:

  • 100-µF-Elko über VMOT und GND, physisch nah am Board. Das ist der häufigste Grund für ein Board, das beim Einschalten stirbt.
  • Gemeinsame Masse zwischen Arduino und Motorversorgung. Ohne sie hat das STEP-Signal keine Referenz und der Treiber sieht Rauschen.
  • Niemals den Motor im bestromten Zustand abstecken. Eine unterbrochene bestromte Spule erzeugt eine Spitze ohne Wohin.
  • Spulenpaarung zählt; Polarität innerhalb eines Paars nicht. Wenn der Motor brummt ohne zu drehen, sind die Paare falsch. Dreht er falschherum, zwei Drähte eines Paars tauschen.

Die Stromgrenze einstellen – die Zahlen

Vref = I_phase × R_sense × 8

Miss Vref zwischen Metallschraube des Trimmpotis und einem Massepin, bei versorgtem VMOT und abgestecktem Motor. Ziele auf 70–85 % des Motornennstroms: Das letzte Fünftel kauft sehr wenig Drehmoment und viel Hitze.

Zielstrom R_sense = 0,1 Ω (R100) R_sense = 0,05 Ω (R050)
0,6 A 0,48 V 0,24 V
1,0 A 0,80 V 0,40 V
1,2 A 0,96 V 0,48 V
1,5 A 1,20 V 0,60 V
1,7 A 1,36 V 0,68 V

Lies die Markierung auf den zwei schwarzen SMD-Widerständen nahe der Unterkante, bevor du rechnest. 1,2 V auf einem R050-Board einzustellen verlangt 3 A durch einen für 1,7 A ausgelegten Motor.

Nutze einen Keramikschraubendreher. Ein metallener, der das Poti mit etwas anderem auf einem live Board brückt, ist ein routinierter Weg, einen Treiber zu zerstören.

Was du physisch einstellst, ist das Spitzendrehmoment, das der Motor liefern kann – das T_peak im Sinusgesetz, das alles regiert, was ein Schrittmotor tut. Zu niedrig, und der Rotor hängt bei gleicher Last weiter hinterher und rutscht früher durch; zu hoch, und du bekommst Hitze, die du nicht brauchtest.

Microstepping

MS1 MS2 MS3 Auflösung Schritte/Umdrehung
low low low Vollschritt 200
high low low Halb 400
low high low Viertel 800
high high low Achtel 1600
high high high Sechzehntel 3200

Alle drei high ist die normale Wahl. Es lohnt sich, klar zu sagen warum: Microstepping macht die Maschine unter Last nicht genauer – der Fehler, den Last verursacht, ist unverändert, egal wie fein du den Schritt teilst. Was es tut, ist das Klingeln des Rotors bei jedem Schritt zu stoppen, was der Unterschied zwischen einer Maschine ist, die schreit, und einer, die summt, und zwischen einer Oberfläche mit sichtbarer Schrittwelligkeit und einer ohne.

Der Preis ist Pulsrate. Bei 1/16 auf einer 80-Schritte/mm-Achse brauchen 100 mm/s 8.000 Pulse pro Sekunde. Ein Arduino Uno, der Schritte per Bit-Banging ausgibt, ist irgendwo bei 10.000–15.000 pro Sekunde am Ende, was eine echte Decke für eine Spindelachse mit 400 Schritten/mm ist.

Strom, Hitze und das Strombudget

Die eigene Verlustleistung des A4988 ist bescheiden – der Schmerz ist Wärmedichte, nicht Gesamtwatt. Grob 0,5 W pro Phase bei 1 A in einem Gehäuse mit fast keinem Kupfer zum Verteilen. Die Grenzen in der Praxis:

Kühlung Sicherer Dauerstrom
Nackter Chip, stehende Luft ~1,0 A
Aufgeklebter Kühlkörper ~1,2 A
Kühlkörper plus bewegte Luft ~1,5 A
Alles darüber DRV8825 oder TMC2209 nehmen

Temperatur­abschaltung kündigt sich nicht an. Der Treiber stoppt, der Motor bleibt mitten in der Bewegung stehen, der Treiber kühlt ab und startet neu, und was du beobachtest, ist eine Achse, die „zufällig“ ein Stück Position verliert. Eine Achse, die spät in einem langen Job oder in warmem Raum öfter versagt, ist thermisch, bis das Gegenteil bewiesen ist.

Versorgungsseitig denke daran, dass sich der Chopper wie ein Abwärtswandler verhält: Der aus einer 24-V-Versorgung gezogene Strom liegt deutlich unter dem Phasenstrom, also budgetiere auf Leistung statt Phasenströme zu addieren. Jeder Motor bei 1,2-A-Grenze an 2,8-Ω-Wicklungen verbrät etwa 8 W, und das tut er, wann immer er bestromt ist – auch im Stillstand. Siehe das Roboter-Strombudget.

Minimaler funktionierender Code

const int STEP_PIN = 3, DIR_PIN = 4, EN_PIN = 5;

void setup() {
  pinMode(STEP_PIN, OUTPUT);
  pinMode(DIR_PIN, OUTPUT);
  pinMode(EN_PIN, OUTPUT);
  digitalWrite(EN_PIN, LOW);        // active low — energise the coils
  digitalWrite(DIR_PIN, HIGH);
}

void loop() {
  for (int i = 0; i < 3200; i++) {  // one revolution at 1/16
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(2);           // datasheet minimum is 1 us
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(300);         // this delay is the speed
  }
  delay(1000);
}

Gut für einen Banktest, falsch für eine Maschine: Die Schrittrate springt direkt auf voll, was oberhalb der Anlaufrate des Motors ein Brummen und keine Bewegung gibt. Nutze AccelStepper oder dein eigenes Bewegungsprofil für alles, was irgendwo ankommen muss. Genau beobachten, was dieser rampenlose Befehl mit dem Rotor tut, kannst du im Schrittmotor-Simulator.

Welchen Strom wirklich einstellen

Der Nennstrom auf einem Motortypenschild setzt die Kühlbedingungen eines Prüfstands voraus – auf eine große Aluplatte geschraubt, in stehender Luft bei 25 °C. Deine Maschine ist ein gedruckter Halter in warmem Raum.

Eine Arbeitsregel, mit Begründung statt nur Zahl:

Situation Grenze einstellen auf Warum
Reichlich Drehmoment­reserve, leise gewünscht 60–70 % des Nennwerts Drehmoment fällt linear, Hitze fällt quadratisch
Normale Maschine 70–85 % des Nennwerts Die übliche Antwort
Wirklich drehmoment­begrenzt 90–100 % des Nennwerts Nur mit Kühlkörper und Luftstrom
Über Nennwert Niemals Du kaufst kein Drehmoment, nur Hitze

Warum das untere Ende weniger kostet, als es aussieht, steht in der zweiten Spalte. Drehmoment ist proportional zum Strom, aber Hitze ist proportional zum Strom im Quadrat. Von 1,7 A auf 1,2 A herunterzugehen gibt 29 % des Drehmoments auf und entfernt die Hälfte der Hitze:

1.7 A: P = 2 × 1.7² × 2.8 = 16.2 W per motor
1.2 A: P = 2 × 1.2² × 2.8 =  8.1 W per motor

Wenn die Auslegungs­rechnung sagt, du nutzt 12 % des verfügbaren Drehmoments, haben die aufgegebenen 29 % nie etwas getan.

Abschalten, und der Pin, den die meisten Bauten ignorieren

ENABLE existiert, weil ein Schrittmotor im perfekten Stillstand seinen vollen eingestellten Strom verbrennt. Das ist anders als jeder andere Motor, den ein Anfänger kennt, und es hat Folgen:

// Two energised NEMA 17s at 1.2 A dissipate ~16 W doing nothing at all.
digitalWrite(EN_PIN, HIGH);   // active low, so HIGH = coils off

Wann nutzen:

  • Zwischen Jobs auf X und Y. Eine Plotter- oder Laserbrücke hat keinen Grund, im Leerlauf Position zu halten, und 16 W Hitze in einen gedruckten Rahmen über eine Stunde zählen.
  • Niemals an einer Z-Achse, die Gewicht hält, außer die Mechanik ist selbsthemmend. Eine T8-Spindel treibt nicht zurück, also ist Abschalten sicher. Ein riemengetriebenes Z fällt in dem Moment, in dem du den Strom kappst.
  • Niemals mitten in der Bewegung. Der Rotor läuft weiter, das Feld nicht, und du hast die Position weggeworfen, ohne zu wissen, um wie viel. Anhalten, dann abschalten.

Der Haken, der Leute überrascht: Nach dem Abschalten rastet der Rotor auf den nächsten Detent ein – die magnetische Ruheposition ganz ohne Strom –, was bis zu einem vollen Schritt von dort entfernt sein kann, wo er gehalten wurde. Auf einer Riemenachse mit 80 Schritten/mm sind das 0,2 mm unangekündigte Bewegung, also entweder nach jedem Abschalten neu homen, oder akzeptieren, dass Leerlauf-Abschalten und Sub-Zehntel-Genauigkeit nicht zusammengehen.

SLEEP ist die tiefere Version: Es schaltet auch den internen Regler ab, zieht Mikro- statt Milliampere, braucht aber etwa 1 ms zum Aufwachen und setzt die interne Schrittposition des Treibers auf den Home-Mikroschritt zurück. Dieser letzte Teil ist die Falle – Aufwachen aus SLEEP kann den Motor um bis zu einen vollen Schritt versetzen. Für fast jede Hobbymaschine ist ENABLE der Pin, den du willst, und SLEEP der Pin, den du auf high brückst und vergisst.

Fehlerbehebung

Symptom Ursache Lösung
Gar nichts passiert ENABLE high oder RESET offen ENABLE auf low legen; RESET mit SLEEP brücken
Motor vibriert, dreht nicht Spulenpaare überkreuz verdrahtet Mit Messgerät auf Ohm neu paaren
Board starb beim Einschalten Kein Pufferkondensator an VMOT 100-µF-Elko, nah an den Pins
Stoppt mitten in Bewegung, startet später neu Temperatur­abschaltung Vref senken; Kühlkörper und Luftstrom ergänzen
Schwach, rutscht unter leichter Last durch Vref zu niedrig Neu messen; Sense-Widerstands­markierung prüfen
Motor schreiend heiß Vref zu hoch Neu rechnen – richtigen R_sense genutzt?
Schrittverluste nur bei hohem Tempo Versorgungsspannung zu niedrig VMOT erhöhen; Strom hilft nicht
Schrittverluste nur beim Beschleunigen Rampe zu aggressiv Beschleunigung senken oder Vref erhöhen
Laut bei jedem Schritt Vollschritt – MS-Pins offen MS1–MS3 auf high legen
Auf der Bank ok, im Rahmen defekt Endschalter- oder STEP-Leitung fängt Störungen Signalleitungen weg von Motorkabeln führen

A4988 oder die Alternativen?

Treiber Strom Mikroschritt Geräusch Wann ihn wählen
A4988 1 A / 1,5 A gekühlt 1/16 Hörbar Billig, überall, gut dokumentiert
DRV8825 1,5 A / 2,2 A gekühlt 1/32 Hörbar Du brauchst mehr Strom oder feinere Schritte
TMC2208 ~1,2 A 1/256 Fast lautlos Geräusch zählt
TMC2209 ~1,7 A 1/256 Fast lautlos Geräusch zählt, plus sensorloses Homen
L298N 2 A — — DC-Motoren. Keine Stromregelung.
TB6612FNG 1,2 A — — DC-Motoren, effizient

Die L298N- und TB6612FNG-Zeilen stehen da, weil beide Datenblätter Schrittmotoren erwähnen und beide technisch einen drehen. Keiner regelt Strom, also gibt es einen Bruchteil des Drehmoments und viel Abwärme. Es sind DC-Motortreiber; nutze sie zum Räder antreiben.

Die TMC-Treiber sind das Mehrgeld wert, sobald die Maschine irgendwo lebt, wo man sie hört. Gleicher Job, glattere Strom­wellenform, und ein damit bestückter Drucker macht Lüfter- statt Motorgeräusch.

Wo er verwendet wird

Dieser Treiber treibt beide Achsen des Stiftplotter-Baus, und ihn korrekt einzustellen ist ein Checkpoint auf dem Präzisions­bewegungs-Lernpfad. Die komplette Verdrahtungs- und Vref-Anleitung behandelt das Vorgehen Schritt für Schritt.

Den Graphen erkunden

Verwendet in diesen Bauprojekten

Projekte, Lernpfade und Simulatoren, die A4988 Stepper Driver verwenden.

Vergleich

Alternativen

Fragen

FAQ zu A4988 Stepper Driver

Wie berechne ich Vref für einen A4988?

Vref gleich gewünschter Phasenstrom mal Sense-Widerstandswert mal acht. Für 1,2 A Ziel auf einem Board mit 0,1-Ohm-Widerständen sind das 1,2 × 0,1 × 8 = 0,96 V, gemessen zwischen Schleifer des Trimmpotis und Masse bei an VMOT versorgtem Board und abgestecktem Motor. Das kritische Detail ist der Sense-Widerstand: Träger werden entweder mit 0,1 Ohm markiert R100 oder 0,05 Ohm markiert R050 geliefert, und mit dem falschen zu rechnen schickt exakt den doppelten Strom durch deinen Motor.

Warum wird mein A4988 so heiß, dass er abschaltet?

Fast immer ist die Stromgrenze zu hoch eingestellt. Ein nackter A4988 schafft etwa 1 A dauerhaft; mit Kühlkörper und bewegter Luft etwa 1,5 A. Darüber löst seine Temperaturabschaltung aus, der Motor bleibt mitten in der Bewegung stehen und startet nach dem Abkühlen neu – was wie zufälliger Schrittverlust aussieht. Miss Vref neu gegen den tatsächlich vorhandenen Sense-Widerstand, klebe den Kühlkörper auf und richte einen Lüfter darauf. Wenn du wirklich mehr als 1,5 A brauchst, ist der A4988 das falsche Bauteil.

Was ist der Unterschied zwischen A4988 und DRV8825?

Der DRV8825 schafft mehr Strom (etwa 1,5 A nackt, 2,2 A gekühlt), geht bis 1/32-Microstepping statt 1/16 und verträgt höhere Motorspannung mit 45 V. Er ist pinkompatibel, passt also in denselben Sockel – aber seine Vref-Formel ist anders, Vref gleich Strom mal 0,5, und sein Trimmpoti dreht andersherum. Einen einzustecken ohne die Formel neu zu lesen ist ein gängiger Weg, einen Motor zu garen.

Brauche ich wirklich den Kondensator über VMOT?

Ja. Ein 100-µF-Elko zwischen VMOT und Masse, physisch nah am Board, ist Pflicht statt Empfehlung. Der Chopper zieht Strom in scharfen Bursts, und ohne Pufferkapazität nearby verwandelt die Induktivität deiner Zuleitungen diese Bursts in Spannungsspitzen, die die 35-V-Grenze des Chips überschreiten. Boards, die im Moment des Einschaltens sterben, sind meist daran gestorben.

Was tun MS1, MS2 und MS3, wenn ich sie offen lasse?

Sie haben interne Pull-downs, also wählt offen lassen Vollschritt – 200 Schritte pro Umdrehung und ein Motor, der bei jedem Schritt hörbar klingelt. Lege alle drei auf high für 1/16-Schritt, was die meisten Bauten nutzen. Es macht die Maschine unter Last nicht genauer, aber es stoppt das Klingeln, was leiser macht und die Oberfläche verbessert. Der Preis ist sechzehnmal so viele Pulse pro Millimeter, die dein Mikrocontroller liefern muss.

Kann ein A4988 einen DC-Motor oder ein Servo treiben?

Nein. Es ist ein bipolarer Schrittmotortreiber: Er erwartet zwei Spulen und treibt sie mit einer bestimmten Stromsequenz. Ein DC-Motor braucht eine H-Brücke wie L298N oder TB6612FNG; ein Hobby-Servo braucht ein 50-Hz-PWM-Signal und gar keinen Treiber. Die STEP- und DIR-Schnittstelle des A4988 hat für beide keine Bedeutung.

Weiterführende Literatur

Quellen