Arduino-Schrittmotor steuern - A4988, Verdrahtung und Tipps

Emil Voß .

27. Oktober 2026

Arduino Uno steuert einen Schrittmotor mit A4988-Treiber und MPR121-Sensor.

Ein Schrittmotor lässt sich mit einem Arduino sehr präzise positionieren, etwa für eine kleine Klappe, einen Drehregler oder eine Anzeige im Fahrzeugmodell. Entscheidend sind die richtige Kombination aus Motor und Treiber, eine saubere Stromversorgung und ein Programm, das nicht nur dreht, sondern auch Beschleunigung, Endanschläge und mögliche Schrittverluste berücksichtigt.

Die wichtigsten Punkte für einen funktionierenden Aufbau

  • Treiber erforderlich: Ein Arduino darf die Motorwicklungen nicht direkt versorgen.
  • 28BYJ-48 oder NEMA 17: Der kleine Getriebemotor eignet sich für Tests, NEMA-17-Motoren für kräftigere Mechaniken.
  • Separate Versorgung: Motor und Arduino brauchen eine passende Stromquelle mit gemeinsamer Masse.
  • STEP und DIR: Moderne Treiber wie A4988 oder DRV8825 werden meist über Schritt- und Richtungssignale gesteuert.
  • Automotive-Grenzen: Für ein echtes Fahrzeug sind Schutzschaltungen, EMV-Prüfung und eine zuverlässige Positionsrückmeldung nötig.

Schaltplan für einen Schrittmotor mit Arduino. Der A4988-Treiber steuert den Schrittmotor.

Was ein Arduino mit einem Schrittmotor tatsächlich steuert

Ein Schrittmotor dreht sich nicht einfach kontinuierlich wie ein gewöhnlicher Gleichstrommotor. Er bewegt seine Welle in festgelegten Winkelschritten. Bei einem häufig verwendeten Motor mit 1,8 Grad pro Vollschritt ergeben sich 200 Schritte für eine Umdrehung.

Der Arduino erzeugt dabei elektrische Impulse. Jeder Impuls fordert vom Treiber einen weiteren Schritt an. Ein zweites Signal legt die Drehrichtung fest. Ich finde diese klare Trennung besonders praktisch, weil sich Geschwindigkeit und Position im Programm leicht nachvollziehen lassen.

Der entscheidende Punkt wird von Einsteigern häufig übersehen. Der Mikrocontroller liefert nur Steuersignale und wenige Milliampere, während die Motorwicklungen deutlich mehr Strom benötigen. Zwischen Arduino und Motor gehört deshalb immer ein geeigneter Motortreiber.

Typische Anwendungen im Fahrzeugumfeld

In der Automobiltechnik werden kleine Schrittmotoren unter anderem für Instrumentenzeiger, HVAC-Klappen und präzise Stellmechanismen eingesetzt. Eine Temperatur- oder Luftverteilungsklappe muss beispielsweise nicht schnell rotieren, sondern zuverlässig eine bestimmte Position erreichen.

Für ein Hobbyprojekt rund um Car HiFi oder Fahrzeugelektronik kann der Aufbau einen motorisierten Drehregler, eine kleine Anzeige oder eine bewegliche Blende steuern. Für einen Prototypen auf dem Tisch ist Arduino ideal. Eine sicherheitsrelevante Funktion im fahrenden Fahrzeug würde ich damit jedoch nicht direkt ersetzen.

Die passende Kombination aus Motor und Treiber auswählen

Die beste Lösung hängt weniger vom Namen des Motors ab als von Drehmoment, Versorgungsspannung, Baugröße und gewünschter Geschwindigkeit. Ein kleiner Motor kann sehr genau sein, verliert aber bei einer schwergängigen Mechanik schnell Schritte.

Aufbau Geeignet für Stärken Grenzen Typische Kosten
28BYJ-48 mit ULN2003 Erste Tests, kleine Klappen, leichte Zeiger Günstig, 5-Volt-Versorgung, einfacher Einstieg Wenig Drehmoment, langsam, Getriebespiel Etwa 5 bis 12 Euro
NEMA 17 mit A4988 Lineare Achsen, Drehregler, kräftigere Mechaniken Gutes Drehmoment, STEP/DIR-Steuerung, weit verbreitet Externe Versorgung und Strombegrenzung nötig Etwa 20 bis 40 Euro für Motor und Treiber
NEMA 17 mit DRV8825 Mehr Spannung und feinere Schrittauflösung Mehr Mikroschritte und höherer Spannungsbereich Kann bei schlechter Einstellung warm oder laut werden Etwa 25 bis 45 Euro
NEMA 17 mit TMC2209 Leise Mechaniken und hochwertige Prototypen Sehr leiser Lauf, moderne Stromregelung Höherer Preis und mehr Konfigurationsaufwand Etwa 30 bis 60 Euro

Der 28BYJ-48 ist für den Einstieg angenehm, weil Motor und ULN2003-Platine oft als Set erhältlich sind. Seine Schwäche zeigt sich bei Last. Das Getriebe hat Spiel, und die tatsächliche Position stimmt bei einer blockierten Welle nicht mehr automatisch.

Für eine solide Mechanik greife ich meist zu einem NEMA-17-Motor mit A4988 oder einem ähnlichen STEP/DIR-Treiber. Der Treiber muss dabei auf den Nennstrom der Motorwicklungen eingestellt werden. Ein zu hoher Strom erzeugt unnötige Wärme, ein zu niedriger Strom führt zu fehlendem Drehmoment.

Vollschritt oder Mikroschritt

Mit Mikroschritten kann ein Treiber einen Vollschritt in kleinere elektrische Teilbewegungen aufteilen. Das reduziert Geräusche und Vibrationen, erhöht aber nicht automatisch die absolute Positioniergenauigkeit. Unter Last kann der Motor weiterhin Schritte verlieren.

Für eine einfache Drehbewegung reichen Vollschritte oder ein moderater Mikroschritt oft aus. Ich würde nicht mit maximaler Auflösung beginnen, sondern zuerst prüfen, ob die Mechanik leicht läuft und der Motor bei der gewünschten Geschwindigkeit zuverlässig bleibt.

Der erste Aufbau gelingt mit wenigen Bauteilen

Für einen unkomplizierten Test eignen sich ein Arduino Uno oder ein kompatibles Board, ein NEMA-17-Motor, ein A4988-Treiber und ein passendes Netzteil. Zusätzlich braucht man Kabel, einen kleinen Kondensator und eine Mechanik, die den Motor nicht sofort überlastet.

Beim A4988 werden STEP und DIR mit zwei Digitalpins des Arduino verbunden. Die Motorversorgung kommt an VMOT und GND des Treibers. Der Arduino liefert die Logikspannung, während Motor- und Logikmasse miteinander verbunden werden müssen.

  • Arduino D3 mit STEP verbinden.
  • Arduino D4 mit DIR verbinden.
  • Logic VDD des Treibers mit 5 Volt verbinden.
  • Motorversorgung an VMOT und GND anschließen.
  • RESET und SLEEP gemäß Treibermodul auf Logikpegel legen.
  • Die beiden Motorwicklungen an die Ausgänge 1A, 1B, 2A und 2B anschließen.
  • Einen Elektrolytkondensator von etwa 100 µF nahe am VMOT-Anschluss vorsehen.

Die genaue Versorgungsspannung richtet sich nach dem Treiber und Motor. Bei typischen A4988-Modulen liegt die Motorspannung häufig zwischen 8 und 35 Volt. Die zulässigen Werte des verwendeten Moduls haben aber immer Vorrang.

const int stepPin = 3;
const int dirPin = 4;

void setup() {
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);

  digitalWrite(dirPin, HIGH);
}

void loop() {
  for (int i = 0; i < 200; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1500);
  }

  delay(500);

  digitalWrite(dirPin, !digitalRead(dirPin));
}

Bei einem Motor mit 200 Vollschritten entspricht die Schleife ungefähr einer Umdrehung. Die Pausen bestimmen die Geschwindigkeit. Der gezeigte Code ist bewusst einfach gehalten. Die Arduino-Stepper-Bibliothek kann ebenfalls verwendet werden, ihre Funktion step() arbeitet bei klassischen Beispielen allerdings blockierend.

Sobald gleichzeitig Sensoren, Taster, Display oder eine Audio-Steuerung reagieren sollen, ist eine nicht blockierende Bewegungssteuerung sinnvoller. Dann werden einzelne Schritte regelmäßig im Hauptprogramm ausgelöst, statt den Arduino während einer langen Motorbewegung warten zu lassen.

Warum der Motor ruckelt oder Schritte verliert

Wenn der Motor nur summt, zittern oder in die falsche Richtung läuft, liegt das selten am Arduino selbst. Meist sind Spulenpaare vertauscht, der Strom falsch eingestellt oder die Beschleunigung zu hoch.

Die häufigsten Fehler beim Verdrahten

Ein bipolarer Motor hat zwei Wicklungspaare. Die beiden Drähte einer Wicklung müssen an ein zusammengehöriges Ausgangspaar des Treibers. Werden einzelne Drähte falsch kombiniert, arbeitet der Motor unruhig oder bleibt stehen.

Ein Multimeter hilft dabei, Wicklungen zu finden. Zwischen den beiden Drähten einer Wicklung ist ein messbarer Widerstand vorhanden. Zwischen Drähten verschiedener Wicklungen besteht dagegen normalerweise keine leitende Verbindung.

Den Motor sollte ich niemals bei eingeschalteter Versorgung ab- oder anstecken. Die dabei entstehenden Spannungsspitzen können den Treiber beschädigen. Auch eine fehlende gemeinsame Masse zwischen Arduino und Treiber sorgt für scheinbar unerklärliche Aussetzer.

Mechanik und Geschwindigkeit prüfen

Ein Schrittmotor liefert sein höchstes Haltemoment nicht automatisch bei hoher Drehzahl. Wird die Rampe zu schnell gestartet, kann die Welle Schritte überspringen. Deshalb beginne ich mit niedriger Geschwindigkeit, prüfe die Bewegung ohne Last und erhöhe die Frequenz erst danach.

Die Mechanik darf nicht klemmen. Ein schlecht ausgerichteter Gewindetrieb, eine zu straffe Klappe oder ein zu schwerer Zeiger kann mehr Kraft verlangen, als der Motor dauerhaft liefert. Leichtgängigkeit bringt oft mehr als ein größerer Motor.

Endanschläge und Positionsverlust

Ein Schrittmotor kennt seine absolute Position nur, solange kein Schritt verloren geht. Nach dem Einschalten weiß der Arduino deshalb nicht automatisch, wo sich die Mechanik befindet. Ein Endschalter kann beim Start eine definierte Referenz liefern.

Für eine Klappe oder einen Drehregler reichen oft ein Referenzschalter und eine begrenzte Schrittzahl. Bei höherer Zuverlässigkeit ergänze ich einen Encoder oder einen Positionssensor. Das ist besonders wichtig, wenn ein Blockieren nicht unbemerkt bleiben darf.

So wird aus dem Bastelaufbau ein brauchbares Auto-Projekt

Im Fahrzeug ist die elektrische Umgebung deutlich härter als auf dem Labortisch. Die Bordspannung ist nicht konstant, und beim Starten, Schalten oder Abschalten induktiver Verbraucher können Störungen auftreten. Ein Arduino-Set darf deshalb nicht direkt an eine ungeschützte 12-Volt-Leitung angeschlossen werden.

Für einen Prototypen gehören mindestens eine geeignete Sicherung, ein belastbarer DC-DC-Wandler und eine saubere Masseführung dazu. Je nach Einbauort können zusätzlich Filter, Überspannungsschutz und eine Abschirmung notwendig sein. Für ein dauerhaftes Produkt müssen außerdem Temperatur, Vibration und elektromagnetische Verträglichkeit geprüft werden.

Geeignete und ungeeignete Anwendungen

Gut geeignet sind Demonstratoren, Prüfaufbauten und nicht sicherheitsrelevante Komfortfunktionen. Dazu zählen beispielsweise ein motorisierter Regler im Showcar, eine bewegliche Anzeige oder ein Prüfstand für eine kleine Luftklappe.

Von einer direkten Steuerung von Lenksystemen, Bremsen, Airbags oder anderen sicherheitskritischen Komponenten rate ich klar ab. Solche Systeme benötigen qualifizierte Steuergeräte, definierte Diagnosefunktionen und eine Auslegung nach den Anforderungen der Automobilbranche.

Auch die Kommunikation mit dem Fahrzeugnetzwerk darf nicht unterschätzt werden. Ein Arduino verarbeitet zwar Sensorwerte und kann Motorimpulse erzeugen, ersetzt aber nicht automatisch eine robuste CAN- oder LIN-Anbindung mit Fehlererkennung und sicheren Zuständen.

Lesen Sie auch: Audi RS 3 Motor: Leistungsstarkes Design und beeindruckende Technik

Budget realistisch planen

Ein kleiner 28BYJ-48-Aufbau lässt sich meist mit 20 bis 40 Euro inklusive Board, Kabeln und Netzteil realisieren. Für einen NEMA-17-Aufbau mit stabilem Treiber, Netzteil, Endschalter und mechanischen Teilen sind eher 50 bis 100 Euro realistisch.

Teurer wird nicht der Arduino, sondern die Mechanik. Ein präziser Halter, spielfreie Lagerung und eine sichere Befestigung entscheiden oft stärker über das Ergebnis als ein Wechsel vom günstigen zum angeblich stärkeren Treiber.

Mein Praxisfazit für den nächsten Aufbau

Für den ersten Versuch würde ich einen 28BYJ-48 mit ULN2003 wählen, wenn nur eine leichte Bewegung demonstriert werden soll. Sobald Drehmoment, Geschwindigkeit oder eine belastbare Mechanik gefragt sind, ist ein NEMA 17 mit STEP/DIR-Treiber die deutlich bessere Grundlage.

Die wichtigsten Arbeitsschritte bleiben immer gleich: Motor und Treiber elektrisch passend auswählen, die Strombegrenzung korrekt einstellen, langsam starten und eine Referenzposition vorsehen. Wer diese Punkte beachtet, bekommt mit Arduino eine erstaunlich präzise Steuerung für Prototypen und Fahrzeugtechnik-Experimente.

Dieser Artikel dient ausschließlich Informations- und Bildungszwecken. Das Material wurde mit Unterstützung moderner Analyse- und Sprachwerkzeuge (KI) erstellt. Konsultieren Sie vor einer Entscheidung einen Experten.

Häufig gestellte Fragen

Für erste Tests mit leichten Klappen oder Zeigern eignet sich ein 28BYJ-48 mit ULN2003. Für mehr Drehmoment und belastbarere Mechaniken ist ein NEMA 17 mit A4988 oder einem ähnlichen STEP/DIR-Treiber besser geeignet. TMC2209 bietet sich an, wenn ein besonders leiser Lauf wichtig ist.
Verbinde Arduino D3 mit STEP und D4 mit DIR. Die Motorversorgung kommt an VMOT und GND, während Logic VDD mit 5 Volt verbunden wird; Arduino und Treiber benötigen eine gemeinsame Masse. RESET und SLEEP müssen auf einen passenden Logikpegel gelegt werden, und ein etwa 100-µF-Kondensator sollte nahe VMOT sitzen.
Häufige Ursachen sind falsch zugeordnete Wicklungspaare, eine falsch eingestellte Strombegrenzung oder ein zu schneller Start ohne Beschleunigungsrampe. Auch eine klemmende Mechanik oder zu hohe Last kann Schritte verursachen. Beginne mit niedriger Geschwindigkeit und prüfe die Bewegung zunächst ohne Last.
Ein Arduino darf nicht direkt an eine ungeschützte 12-Volt-Leitung angeschlossen werden. Für Prototypen sind mindestens eine geeignete Sicherung, ein belastbarer DC-DC-Wandler und eine saubere Masseführung erforderlich; je nach Einbauort können Filter, Überspannungsschutz und Abschirmung nötig sein. Sicherheitskritische Systeme wie Lenkung, Bremsen oder Airbags dürfen damit nicht direkt gesteuert werden.
Artikel bewerten

Durchschnitt: 5.0 / 5 · 1 Bewertung

Tags

schrittmotor motortreiber arduino mikroschritte endschalter
Autor Emil Voß
Emil Voß
Mein Name ist Emil Voß und ich bringe acht Jahre Erfahrung in der Automobilbranche mit. Schon seit meiner Kindheit fasziniert mich die Welt der Autos, insbesondere die Technik und die Möglichkeiten, das Fahrerlebnis durch hochwertige Audioanlagen zu verbessern. Ich schreibe über verschiedene Aspekte des Car Hi-Fi, von den neuesten Trends in der Audiotechnologie bis hin zu praktischen Tipps zur Installation und Optimierung von Soundsystemen. In meinen Artikeln lege ich großen Wert darauf, komplexe Themen verständlich zu erklären und aktuelle Entwicklungen im Bereich Car Hi-Fi zu beleuchten. Ich überprüfe meine Quellen sorgfältig und vergleiche Informationen, um sicherzustellen, dass meine Leser stets die genauesten und nützlichsten Informationen erhalten. Mein Ziel ist es, das Wissen über Car Hi-Fi klar und strukturiert zu präsentieren, damit jeder, egal ob Einsteiger oder erfahrener Enthusiast, das Beste aus seinem Audioerlebnis herausholen kann.
Kommentare (0)
Kommentar hinzufügen