In diesem Artikel zeige ich dir, wie du einen Schrittmotor mit einem Arduino steuerst und ihn direkt vom PC aus kontrollierst – über eine serielle Verbindung und eine selbst gebaute GUI in Python. Ideal für Maker, Hobbyisten und alle, die in die Welt der Automatisierung einsteigen wollen.
🏋️ Was du brauchst
Hardware:
- Arduino Uno (oder Nano/Mega)
- Schrittmotor (z. B. NEMA 17)
- Treiber wie A4988 / DRV8825 / TB660
- Externes Netzteil (z. B. 24V)
- USB-Kabel
Software:
- Arduino IDE
- Python 3
- Bibliothek:
pyserial
,tkinter

⚙️ Schritt 1: Arduino-Code
Der Arduino hört auf die serielle Schnittstelle und führt Befehle wie a300
aus.
Der erste Buchstabe bestimmt den Motor, die Zahl die Anzahl der Schritte.
#define dirPin 2
#define stepPin 3
String inputString = "";
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
digitalWrite(dirPin, HIGH); // Richtung: HIGH = im Uhrzeigersinn
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) {
char inChar = (char)Serial.read();
if (inChar == '\n') {
processCommand(inputString);
inputString = "";
} else {
inputString += inChar;
}
}
}
void processCommand(String cmd) {
if (cmd.length() < 2) return;
char motor = cmd.charAt(0);
int steps = cmd.substring(1).toInt();
if (motor == 'a') {
for (int i = 0; i < steps; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(450);
digitalWrite(stepPin, LOW);
delayMicroseconds(450);
}
}
}
🚀 Schritt 2: Python GUI
Mit Python und Tkinter bauen wir ein simples GUI mit Schieberegler und Knopf zum Senden.

import tkinter as tk
import serial
import time
# COM-Port anpassen (z. B. COM8 unter Windows)
try:
ser = serial.Serial('COM8', 9600)
time.sleep(2)
print("Verbindung mit Arduino hergestellt!")
except:
ser = None
print("Fehler: Keine Verbindung zu COM8")
def sende_befehl():
schritte = slider.get()
befehl = f"a{schritte}\n"
if ser:
ser.write(befehl.encode())
print(f"Gesendet: {befehl.strip()}")
root = tk.Tk()
root.title("Schrittmotor-Steuerung")
tk.Label(root, text="Schritte wählen:").pack()
slider = tk.Scale(root, from_=1, to=1000, orient=tk.HORIZONTAL)
slider.set(300)
slider.pack(padx=20, pady=10)
tk.Button(root, text="Motor starten", command=sende_befehl).pack(pady=10)
root.mainloop()
🔄 Ergebnis
Wenn alles richtig verbunden und hochgeladen ist:
- Du startest dein Python-Programm
- Wählst z. B. 300 Schritte im Schieberegler
- Klickst auf „Motor starten“
- Der Motor führt genau diese Schritte aus
🎓 Fazit
Mit nur wenigen Zeilen Code steuerst du deinen Schrittmotor direkt vom PC aus. Diese Technik kannst du später auf mehrere Motoren, Roboterarme oder sogar eine kleine CNC-Maschine erweitern.
Speichere dir diesen Artikel, folge mir für mehr DIY-Tech-Projekte und schreib mir, wenn du Hilfe brauchst!
#arduino #python #tkinter #schrittmotor #serialcommunication #makerprojekt #automatisierung #cnc #diytechnik