Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial
Komponenten und Zubehör
| Arduino Nano R3 | 1 |
| Joystick | 1 |
| 28BYJ-48 Schrittmotor | 2 |
| ULN2003 Treibermodul | 2 |
Apps und Online-Dienste
- Visuino – Grafische Entwicklungsumgebung für Arduino
- Arduino IDE
Über dieses Projekt
Bei Arduino-Projekten mit Schrittmotoren (CNC-Maschinen, Plotter, animierte Kunst) kommt oft der Moment, wo man die Motoren manuell steuern muss. Analoge Joysticks sind günstige, einfache Module für variable Geschwindigkeitssteuerung – ideal für Schrittmotoren. Mit klassischem Arduino-Code ist das jedoch nicht trivial.
In diesem Tutorial zeige ich, wie einfach es ist, einen Arduino Nano mit Visuino zu programmieren, um 2 Schrittmotoren per Joystick zu steuern.
Schritt 1: Komponenten
- Ein Arduino-kompatibles Board (ich nutze Arduino Nano, jedes andere geht auch)
- Ein Joystick (aus günstigem 37-Sensor-Set)
- Zwei 5V Schrittmotoren mit Treiberplatinen (28BYJ-48 mit ULN2003)
- Ein K2 Breadboard-Netzteil mit Adapter (Bild 2) oder andere 5V-Quelle für die Motoren
- 17 Female-Female Jumper-Kabel
Schritt 2: Schrittmotoren mit Strom und Masse versorgen
- Masse (schwarz) und Strom (rot) an jedes Schrittmotor-Treibermodul (Bild 1)
- Weitere Masse (schwarz) an GND-Pin des Arduino (Bild 2)
- Andere Enden der Stromversorgung (rot) von den Treibern an „+“ Power-Pins des K2-Netzteils (Bilder 3, 4)
- Andere Enden der Masse (schwarz) von den Treibern und Arduino an „-“ Ground-Pins des K2-Netzteils (Bilder 3, 4)
- Power-Select-Schalter des K2-Netzteils auf 5V stellen (Bild 5)
- Bild 6 zeigt den GND-Pin des Arduino Nano
Schritt 3: Schrittmotoren mit Arduino verbinden
- Falls nicht geschehen: Schrittmotor-Stecker in Treiberplatinen stecken
- Female-Female Jumper (blau, grün, gelb, orange) an IN1–IN4 des ersten Treibers (Bild 1)
- Female-Female Jumper (blau, grün, gelb, orange) an IN1–IN4 des zweiten Treibers (Bild 1)
- IN1 (blau) vom ersten Motor → Digital Pin 2 Arduino (Bild 2)
- IN2 (grün) → Digital Pin 3 (Bild 2)
- IN3 (gelb) → Digital Pin 4 (Bild 2)
- IN4 (orange) → Digital Pin 5 (Bild 2)
- IN1 (blau) vom zweiten Motor → Digital Pin 6 (Bild 3)
- IN2 (grün) → Digital Pin 7 (Bild 3)
- IN3 (gelb) → Digital Pin 8 (Bild 3)
- IN4 (orange) → Digital Pin 9 (Bild 3)
- Bild 4 zeigt Digital 2–9 am Arduino Nano (rot). Blau: Verbindungen aus Schritt 2.
Schritt 4: Joystick mit Arduino verbinden
- Female-Female Kabel an Joystick: Masse (schwarz), Strom (rot), VRx (lila), VRy (grau) (Bild 1)
- Masse (schwarz) → GND-Pin Arduino (Bild 2)
- Strom (rot) → 5V-Pin Arduino (Bild 2)
- VRx (braun) → Analog Pin 1 (A1) (Bild 3)
- VRy (grau) → Analog Pin 0 (A0) (Bild 3)
- Bild 4: GND, 5V, A0, A1 am Nano (rot). Blau: vorherige Verbindungen.
Schritt 5: Visuino starten & Arduino-Board-Typ wählen
Voraussetzungen:
- Arduino IDE (≥ 1.6.7) installiert: arduino.cc
- Visuino installiert: visuino.com
- Visuino starten (Bild 1)
- Auf „Tools“ beim Arduino-Komponenten-Icon klicken (Bild 1)
- Im Dialog Arduino Nano auswählen (Bild 2)
Schritt 6: In Visuino: Schrittmotor-Komponenten hinzufügen & verbinden
- In Komponenten-Werkzeugkasten „step“ filtern, „4 Wire Stepper Motor“ wählen (Bild 1), zweimal in Designbereich ziehen
- „Out“-Box von Stepper1 anklicken, um alle Out-Pins gleichzeitig zu verbinden (Bild 2)
- Maus über „Digital“ Eingang von „Digital[ 2 ]“ Kanal der Arduino-Komponente bewegen – Visuino verteilt Kabel automatisch korrekt (Bild 2)
- „Out“-Box von Stepper2 anklicken (Bild 3)
- Maus über „Digital“ Eingang von „Digital[ 6 ]“ Kanal bewegen – automatische Verteilung (Bild 3)
Schritt 7: Schrittmotor-Eigenschaften setzen & Pins für Geschwindigkeitssteuerung hinzufügen
Für Geschwindigkeitssteuerung Pins zum Property „Steps Per Second“ hinzufügen:
- Stepper1 wählen (Bild 1)
- Object Inspector: „Steps Per Second“ = „0“ (Bild 1)
- Pin-Button bei „Steps Per Second“ → „Float SinkPin“ (Bild 2)
- Stepper2 wählen (Bild 3)
- „Steps Per Second“ = „0“ (Bild 3)
- Pin-Button → „Float SinkPin“ (Bild 4)
Schritt 8: Dead Zone Scaled Analog Komponenten hinzufügen & verbinden
Analog-Pins (Joystick) liefern normierte Werte 0.0–1.0. Umrechnung auf ±300 Steps/Sekunde nötig. Joystick in Mittelposition ungenau → „Dead Zone“ um Zentrum als 0.5 definieren:
- „zone“ filtern, „Dead Zone Scaled Analog“ wählen (Bild 1), zweimal in Designbereich
- DeadZoneScaled1.Out → Stepper1.StepsPerSecond (Bild 2)
- Arduino.Digital[14]/Analog[0].Out → DeadZoneScaled1.In (Bild 3)
- DeadZoneScaled2.Out → Stepper2.StepsPerSecond (Bild 4)
- Arduino.Digital[15]/Analog[1].Out → DeadZoneScaled2.In (Bild 5)
Schritt 9: Dead Zone Scaled Analog Eigenschaften setzen
- DeadZoneScaled1 wählen (Bild 1)
- „Output Range“ aufklappen (Bild 1)
- Max = „300“ (Bild 1)
- Min = „-300“ (Bild 2)
- DeadZoneScaled2 wählen (Bild 3)
- „Output Range“ aufklappen (Bild 3)
- Max = „300“ (Bild 3)
- Min = „-300“ (Bild 4)
Schritt 10: Arduino-Code generieren, kompilieren & hochladen
- In Visuino F9 drücken oder Button (Bild 1) → Code generieren & Arduino IDE öffnen
- In Arduino IDE Upload klicken → Kompilieren & Hochladen (Bild 2)
Schritt 11: Und spielen...
Glückwunsch! Projekt abgeschlossen.
Bild 1 und Video zeigen das verbundene, eingeschaltete Projekt.
Joystick steuert die Schrittmotoren: Hoch/Runter → Vorwärts/Rückwärts von Motor 1. Links/Rechts → Motor 2.
Bild 2 zeigt das vollständige Visuino-Diagramm.
Visuino-Projektdatei zum Download: FQM7EG7IPOA2W5T.zip (in Visuino öffnen: visuino.com)
Herstellungsprozess
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Pflanzengesundheit mit TinyML bewerten: Praktischer Leitfaden
- Handheld Geigerzähler mit Arduino Nano selbst bauen
- ThimbleKrox: Fingermontierte Maussteuerung mit Arduino Micro & MPU-6050
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
- DIY Arduino Kakerlaken-Steuerung – Bauen für unter 30 €
- Arduino Uno & Bluetooth: Fernsteuerung eines Autos – Schritt-für-Schritt-Anleitung
- Arduino Roboterarm per Android-App & Bluetooth steuern
- 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno – Bau, Code & Test