Kontrol Motor Stepper Presisi: 28BYJ-48 dengan Arduino UNO & Joystick
Komponen dan Perlengkapan
- Arduino UNO – 1 unit
- Motor Stepper DC 5V 28BYJ-48 – 1 unit
- Driver Motor Stepper ULN2003 – 1 unit
- Papan Roti (generic) – 1 unit
- Kabel Jumper (generic) – 1 set
- Joystick Analog (Generic) – 1 unit
Tentang Proyek Ini
Hardware yang Diperlukan:
- Papan Arduino UNO
- Motor stepper 28BYJ-48 (dengan papan driver ULN2003A)
- Joystick
- Sumber daya 5V
- Papan roti
- Kabel jumper
Rangkaian kontrol motor stepper dengan Arduino dan joystick: Diagram skematik rangkaian proyek ditunjukkan di bawah (semua terminal ground dihubungkan bersama).
dan gambar berikut menunjukkan rangkaian fritzing:
Motor stepper terhubung ke papan ULN2003A yang disuplaikan dengan sumber daya eksternal 5V. Garis kontrol (IN1, IN2, IN3 dan IN4) dari papan ini terhubung ke Arduino sebagai berikut: IN1 ke pin Arduino 11, IN2 ke pin Arduino 10, IN3 ke pin Arduino 9, IN4 ke pin Arduino 8.
Papan joystick memiliki 5 pin: GND, +5V, VRX, VRY dan SW dimana: GND dan +5V adalah pin suplai daya, VRX adalah output potensiometer sumbu X, VRY adalah output potensiometer sumbu Y, SW adalah terminal tombol push (terminal lainnya terhubung ke GND). Output potensiometer sumbu X (VRX) terhubung ke pin analog Arduino A0, output potensiometer sumbu Y (VRY) juga dapat digunakan. Pin switch (SW) tidak digunakan dalam contoh ini. Menggunakan potensiometer sumbu X dan sumbu Y kita dapat mengontrol dua motor stepper secara independen.
"Jadi teman-teman jika Anda suka proyek ini jangan lupa untuk mengikuti dan menyukainya"
Kode
Kode: (C/C++) Pastikan untuk menambahkan semua pustaka yang disertakan dalam kode ini.
//proyek ini dibuat oleh 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);
if( (val > 500) && (val < 523) ) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
} else {
while (val >= 523) {
int speed_ = map(val, 523, 1023, 5, 500);
stepper.setSpeed(speed_);
stepper.step(1);
val = analogRead(joystick);
}
while (val <= 500) {
int speed_ = map(val, 500, 0, 5, 500);
stepper.setSpeed(speed_);
stepper.step(-1);
val = analogRead(joystick);
}
}
}
Skematik
Lihat gambar skematik yang tersedia.