Hinweis: Dieses Beispiel ist für einen 28BYJ-48-Getriebeschrittmotor mit ULN2003-Treiber wie im Bild ausgelegt. Die Verkabelung setzt die 5-V-Motorvariante voraus, prüfe den Aufdruck. Rund 2048 Vollschritte ergeben ungefähr eine Umdrehung der Abtriebswelle. Die genaue Zahl hängt vom Getriebe ab und liegt bei manchen Varianten näher bei 2038. Für genaue Winkel musst du sie am verwendeten Motor bestimmen.
Ein Schrittmotor ist ein präziser Motor, der in diskreten (klar abgegrenzten) Schritten rotiert. Er wird häufig in Projekten verwendet, bei denen eine genaue Positionierung und Bewegung erforderlich ist, wie zum Beispiel in CNC-Maschinen, 3D-Druckern oder Kamerasteuerungen. In diesem Beispiel zeigen wir, wie ein Schrittmotor mit einem Arduino gesteuert werden kann, um den Motor eine bestimmte Anzahl von Schritten in eine Richtung zu bewegen.
Beispiel-Verkabelung:
Rotes Kabel: VCC / + des ULN2003-Moduls → +5 V einer externen Stromquelle mit ausreichend Strom für den Motor. Den fünfpoligen Motorstecker in die passende Buchse des Treibermoduls stecken.
Schwarzes Kabel: GND / − (Schrittmotortreiber) → Minuspol der Stromquelle und GND (Arduino)
Grünes Kabel: IN1 (Schrittmotortreiber) → Digitaler Pin 8 (Arduino)
Gelbes Kabel: IN2 (Schrittmotortreiber) → Digitaler Pin 9 (Arduino)
Blaues Kabel: IN3 (Schrittmotortreiber) → Digitaler Pin 10 (Arduino)
Oranges Kabel: IN4 (Schrittmotortreiber) → Digitaler Pin 11 (Arduino)
(Hinweis: Ein Treiber ist eine elektronische Schaltung, die den Motor mit dem nötigen Strom und der nötigen Spannung versorgt, da der Arduino alleine dafür nicht leistungsfähig genug ist.)
Arduino-Code zur Steuerung des Schrittmotors:
#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
myStepper.setSpeed(6);
}
void loop() {
myStepper.step(stepsPerRevolution);
delay(1000);
myStepper.step(-stepsPerRevolution);
delay(1000);
}
Funktionsweise:
Die Stepper.h-Bibliothek ermöglicht es, den Schrittmotor in diskreten Schritten zu bewegen, was eine präzise Steuerung der Position erlaubt. Die Variable stepsPerRevolution enthält die angenommene Zahl der Vollschritte pro Umdrehung der Abtriebswelle. Im Beispiel sind es ungefähr 2048.
Der Schrittmotor wird über einen Treiber an die digitalen Pins 8, 9, 10 und 11 des Arduino angeschlossen. In der Setup-Funktion wird die Geschwindigkeit auf ungefähr 6 Umdrehungen pro Minute gesetzt. In der Loop-Funktion bewegt sich die Abtriebswelle abwechselnd ungefähr eine Umdrehung in eine Richtung und dann zurück, mit einer Sekunde Pause dazwischen. Die Pinreihenfolge im Stepper-Konstruktor unterscheidet sich absichtlich von der Reihenfolge IN1 bis IN4 am Treiber.
Dieses Setup eignet sich für langsame Bewegungen kleiner Modelle. Getriebespiel und mögliche Schrittverluste begrenzen die Genauigkeit. Der Motor meldet seine tatsächliche Position nicht an den Arduino zurück.
Hinweis Stromversorgung: Versorge die hier beschriebene 5-V-Motorvariante über das ULN2003-Modul aus einer externen 5-V-Stromquelle. Eine unzureichende Versorgung kann zu Schrittverlusten, Spannungseinbrüchen und Neustarts führen. GND von Netzteil, Treiber und Arduino müssen verbunden sein.