Schrittmotor per serieller Kommunikation mit Python GUI steuern – Schritt für Schritt

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

Arduino & Treiber

⚙️ 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

Previous Article

Wie du einen Schrittmotor mit Arduino steuerst (Anschlussschema + Code) - TB660 - Arduino Mega

Next Article

Was ist BACnet? – Das offene Kommunikationsprotokoll für die Gebäudeautomation

Write a Comment

Leave a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨