Präzise Schrittmotor-Steuerung: 28BYJ-48 mit Arduino UNO & Joystick
Komponenten und Zubehör
| Arduino UNO | × | 1 |
| 28BYJ-48 DC 5V Schrittmotor | × | 1 |
| ULN2003 Schrittmotor-Treiber | × | 1 |
| Steckbrett (Breadboard) | × | 1 |
| Jumper-Kabel (generisch) | × | 1 |
| Analoger Joystick (generisch) | × | 1 |
Über dieses Projekt
Benötigte Hardware
- Arduino UNO Board
- 28BYJ-48 Schrittmotor (mit ULN2003A Treiberplatine)
- Joystick
- 5V Stromquelle
- Steckbrett
- Jumper-Kabel
Schaltplan
Der Schaltplan für die Schrittmotor-Steuerung mit Arduino und Joystick ist unten dargestellt (alle Masse-Anschlüsse sind miteinander verbunden).
Fritzing-Ansicht:
Der Schrittmotor ist mit der ULN2003A-Platine verbunden, die mit einer externen 5V-Quelle versorgt wird. Die Steuerleitungen (IN1–IN4) der Platine werden wie folgt mit dem Arduino verbunden:
- IN1 → Arduino Pin 11
- IN2 → Arduino Pin 10
- IN3 → Arduino Pin 9
- IN4 → Arduino Pin 8
Das Joystick-Modul hat 5 Pins: GND, +5V, VRX, VRY, SW:
- GND und +5V: Spannungsversorgung
- VRX: X-Achse Potentiometer-Ausgang
- VRY: Y-Achse Potentiometer-Ausgang
- SW: Taster-Ausgang (anderer Anschluss an GND)
VRX (X-Achse) wird an Arduino Analogpin A0 angeschlossen, VRY (Y-Achse) kann ebenfalls genutzt werden. Der Taster-Pin (SW) wird in diesem Beispiel nicht verwendet. Mit den X- und Y-Achsen können zwei Schrittmotoren unabhängig voneinander gesteuert werden.
„Wenn euch das Projekt gefällt, vergesst nicht, zu folgen und zu liken!\"
Code
C/C++
// Projekt von BEASTIDREES62
// https://id.arduino.cc/?code=MTxqeHweG6vL2cur&state=amxEcTB2bnNiYjluTUxmRExWaWZnOXIzUk1BLWRqZTZYUGtJNGtxODB%2Bdg%3D%3D
#include <Stepper.h>
#define STEPS 32
#define IN1 11
#define IN2 10
#define IN3 9
#define IN4 8
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);
#define joystick A0
void setup() { }
void loop() {
int val = analogRead(joystick);
// Joystick in Mittelstellung → Motor stoppen
if ((val > 500) && (val < 523)) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
} else {
// Motor in erste Richtung drehen
while (val >= 523) {
int speed_ = map(val, 523, 1023, 5, 500);
stepper.setSpeed(speed_);
stepper.step(1);
val = analogRead(joystick);
}
// Motor in andere Richtung drehen
while (val <= 500) {
int speed_ = map(val, 500, 0, 5, 500);
stepper.setSpeed(speed_);
stepper.step(-1);
val = analogRead(joystick);
}
}
}
Schaltplan
Herstellungsprozess
- Fortgeschrittene Motorkontrollschaltungen: Selbsthaltung, Stopp und Zeitverzögerung
- Schrittmotoren: Typen, Eigenschaften und praktische Anwendungen
- Feldorientierte Steuerung: Der Schlüssel zu sanfter, effizienter EV-Motorleistung
- Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
- DIY Autonomer Nerf-Sentry-Geschützturm – Intelligente Nerf Gun mit Schrittmotoren, Kamera und Arduino
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- Umfassende Bipolar-Schrittmotor-Bibliothek für Arduino
- Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
- Automatischer Tinder & Bumble Swiper mit Arduino UNO & Schrittmotor
- Millport SmartLathez 1740 CNC-Drehmaschine – Präzision & Power