Precieze Stappenmotorcontrole: 28BYJ-48 met Arduino UNO & Joystick
Onderdelen en Benodigdheden
| Arduino UNO | × | 1 |
| 28BYJ-48 DC 5V stappenmotor | × | 1 |
| ULN2003 stappenmotor driver | × | 1 |
| Breadboard | × | 1 |
| Jumper wires | × | 1 set |
| Analoge joystick (generiek) | × | 1 |
Over dit Project

Benodigde Hardware
- Arduino UNO board
- 28BYJ-48 stappenmotor (met ULN2003A driverboard)
- Joystick
- 5V voedingsbron
- Breadboard
- Jumper wires
Schakeling
Het schakelschema is hieronder weergegeven (alle ground-klemmen zijn met elkaar verbonden).


De stappenmotor is aangesloten op het ULN2003A-board, dat gevoed wordt door een externe 5V-bron. De besturingslijnen (IN1, IN2, IN3, IN4) zijn als volgt verbonden met de Arduino:
- IN1 → Arduino pin 11
- IN2 → Arduino pin 10
- IN3 → Arduino pin 9
- IN4 → Arduino pin 8
De joystick heeft 5 pennen: GND, +5V, VRX, VRY en SW:
GND en +5V zijn voedingspennen
VRX is de X-as potentiometer-uitgang
VRY is de Y-as potentiometer-uitgang
SW is de drukknop-klem (de andere kant is verbonden met GND)
De X-as uitgang (VRX) is aangesloten op Arduino analoge pin A0. De Y-as (VRY) kan ook gebruikt worden. De schakelpin (SW) wordt in dit voorbeeld niet gebruikt. Met de X- en Y-as potentiometers kunnen twee stappenmotoren onafhankelijk worden bestuurd.
"Als je dit project leuk vindt, vergeet niet te volgen en te liken!"
Code
// Dit project is gemaakt door BEASTIDREES62
// include Arduino stappenmotor bibliotheek
#include <Stepper.h>
// definieer aantal stappen per omwenteling
#define STEPS 32
// definieer stappenmotor besturingspennen
#define IN1 11
#define IN2 10
#define IN3 9
#define IN4 8
// initialiseer stappenmotor bibliotheek
// Let op: volgorde is IN4, IN2, IN3, IN1 voor correcte fasering
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);
// joystick pot output verbonden met Arduino A0
#define joystick A0
void setup() {
// geen setup nodig
}
void loop() {
// lees analoge waarde van de potentiometer
int val = analogRead(joystick);
// als joystick in het midden staat → stop de motor
if ((val > 500) && (val < 523)) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
} else {
// beweeg de motor in de eerste richting
while (val >= 523) {
// map snelheid tussen 5 en 500 rpm
int speed_ = map(val, 523, 1023, 5, 500);
// stel motorsnelheid in
stepper.setSpeed(speed_);
// beweeg de motor (1 stap)
stepper.step(1);
val = analogRead(joystick);
}
// beweeg de motor in de andere richting
while (val <= 500) {
// map snelheid tussen 5 en 500 rpm
int speed_ = map(val, 500, 0, 5, 500);
// stel motorsnelheid in
stepper.setSpeed(speed_);
// beweeg de motor (1 stap achteruit)
stepper.step(-1);
val = analogRead(joystick);
}
}
}
Schema's

Productieproces
- Geïntegreerde QR, RFID en Temperatuurverificatie Toegangscontrolesysteem
- Zelfbouw autonom Nerf Sentry-turret – Slimme Nerf-pistool met stappenmotoren, camera en Arduino
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Uitgebreide bibliotheek voor bipolaire stappenmotoren met Arduino
- Servo-gestuurde obstakelvermijdende robot: Bouw met Arduino & HC-SR04
- Geautomatiseerde Tinder & Bumble Swiper met Arduino UNO en Stappenmotor
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Geavanceerde Motor Besturingsschakelingen: Latching, Stop, en Tijdvertraging Technieken
- Stapelmotoren: typen, kenmerken en praktische toepassingen
- Millport SmartLathez 1740 CNC Draaibank – Precisie & Vermogen
- Field-Oriented Control: de sleutel tot soepel, efficiënt EV-motor-prestaties