Moteur pas à pas NEMA17 avec EasyDriver et Arduino

FunduinoDernière mise à jour le

Präzise Drehbewegungen mit dem EasyDriver als Motortreiber

Schrittmotoren sind für Anfänger zunächst eine große Hürde – sowohl bei der Auswahl als auch bei der Programmierung. Denn anders als herkömmliche Elektromotoren drehen sie sich nicht einfach los, sobald Spannung anliegt.

Dafür können sie etwas, das kein Gleichstrommotor kann: Bauteile mit einer exakten Drehbewegung versorgen. Nahezu jeder 3D-Drucker wird von Motoren dieser Art bewegt. In dieser Anleitung bringst du einen NEMA17 mit dem EasyDriver zum Drehen.

Schaltskizze mit Arduino UNO, EasyDriver-Motortreiber, externem Netzteil und NEMA17-Schrittmotor
Schaltskizze: EasyDriver zwischen Arduino, Netzteil und NEMA17

Schaltung aufbauen

Für diese Anleitung verwendest du einen NEMA17-Schrittmotor mit zwei Phasen (vier Anschlussleitungen), den EasyDriver als Motortreiber und einen Arduino UNO, der das Signal erzeugt. Als Spannungsquelle dient ein externes Netzteil mit 9 V und 1 A.

Vom Arduino gehen nur zwei Leitungen zum Treiber: Pin 8 an „Step“ und Pin 7 an „Dir“. Die Leistung für den Motor kommt aus dem Netzteil, nicht aus dem Arduino.

Schließe den Motor niemals an oder ab, solange der EasyDriver unter Spannung steht – das kann den Treiberbaustein zerstören.

Schaltskizze mit Arduino UNO, EasyDriver-Motortreiber, externem Netzteil und NEMA17-Schrittmotor
Schaltskizze: EasyDriver zwischen Arduino, Netzteil und NEMA17

Motor drehen lassen

Der Sketch macht nichts weiter, als den Pin „Step“ im Wechsel ein- und auszuschalten. Jeder Wechsel von LOW auf HIGH ist ein Schritt. Über die Länge der Pausen bestimmst du, wie schnell der Motor dreht.

Wenn du die technischen Abläufe genauer verstehen willst, lohnt ein Blick auf die Seiten des EasyDriver-Entwicklers:

NEMA17 über den EasyDriver drehen lassen
int Schrittmotor = 8;  // Pin 8 an "Step"
int Richtung = 7;      // Pin 7 an "Dir"

void setup()
{
  // Pin 8 muss ein Ausgang sein, damit hier ein Signal gesendet werden kann.
  pinMode(Schrittmotor, OUTPUT);
  // Pin 7 muss ein Ausgang sein, damit hier ein Signal gesendet werden kann.
  pinMode(Richtung, OUTPUT);
  // Das Signal für die Richtung wird zunächst auf LOW gesetzt. Dreht der Motor
  // nicht in die gewünschte Richtung, änderst du das Signal auf HIGH.
  digitalWrite(Richtung, LOW);
}

void loop()
{
  digitalWrite(Schrittmotor, HIGH);
  delay(10);
  digitalWrite(Schrittmotor, LOW);
  delay(10);
}

Hintergrund: Schrittmotor oder Gleichstrommotor?

Beide Motorarten werden mit Gleichstrom betrieben, unterscheiden sich aber im Aufbau und im Funktionsprinzip.

Gleichstrommotoren nutzen Gleichstrom, etwa aus Batterien oder Netzteilen, um eine Drehbewegung zu erzeugen. Im Bastelbereich unterscheidet man zwischen Bürstenmotoren und bürstenlosen Motoren, meist „Brushlessmotoren“ genannt. Bürstenmotoren haben Kohlebürsten, die am Kommutator entlangschleifen und die Magnetfelder im Inneren so umpolen, dass dauerhaft eine Magnetkraft wirkt. Bei Brushlessmotoren erfolgt diese Umpolung elektronisch – das macht sie effektiver und haltbarer, weshalb sie die älteren Motoren zunehmend verdrängen.

Schrittmotoren haben weder Kohlebürsten noch die übrigen mechanischen Bauteile eines Gleichstrommotors. Ein Motortreiber steuert den Strom zu jeder Magnetspule einzeln. Der Rotor dreht sich daraufhin in Abhängigkeit von den entstehenden Magnetfeldern exakt in die vorgesehene Position. Jede dieser kleinen Drehbewegungen heißt „Schritt“ – daher der Name.

Ein Schrittmotor kann außerdem ein Haltemoment erzeugen, die Drehachse also fixieren: Der Rotor bleibt in einem gleichbleibenden Magnetfeld stehen. Deshalb eignen sich Schrittmotoren hervorragend für Robotik und andere Positionieraufgaben, etwa in 3D-Druckern, Festplatten und Steuerungssystemen.

Gleichstrommotoren sind leicht zu steuern: Sie brauchen nur eine Eingangsspannung an zwei Leitungen. Über die Höhe der Spannung änderst du die Drehzahl, durch Vertauschen der Leitungen die Richtung. Schrittmotoren sind ebenfalls unkompliziert, brauchen aber einen Mikrocontroller, der den Rotor von einem Pol zum nächsten bewegt.

Der Drehzahlbereich von Schrittmotoren liegt typischerweise unter 2000 Umdrehungen pro Minute, weil ihr Drehmoment mit steigender Drehzahl abnimmt. Für den Dauereinsatz sind sie nicht gedacht – sie neigen dazu, heiß zu laufen, wenn sie länger unter Strom stehen. Gleichstrommotoren decken einen viel größeren Drehzahlbereich ab und laufen problemlos durchgehend, müssen dafür aber regelmäßig gewartet werden, besonders im industriellen Einsatz.

Ihr maximales Drehmoment bieten Schrittmotoren bei niedrigen Drehzahlen – genau das macht sie für hochpräzise Anwendungen wie Robotik und 3D-Drucker so geeignet.

Évaluer le guide

Commentaires

Poser une question ou partager une expérience

Écris-nous si quelque chose ne fonctionne pas. Indique-nous ton modèle de carte et le message d’erreur.

Nous vérifions chaque commentaire avant sa publication. Ton adresse e-mail reste chez nous.