Mengemudi 28BYJ-48 Stepper Motor Control dengan Joystick
Komponen dan persediaan
| | × | 1 | |
| 28BYJ-48 Motor Stepper DC 5V | | × | 1 | |
| Driver motor stepper ULN2003 | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| Joystick analog (Generik) | | × | 1 | |
Tentang proyek ini
Perangkat Keras yang Dibutuhkan:
- Motor stepper 28BYJ-48 (dengan papan driver ULN2003A)
Kontrol motor stepper dengan Arduino dan rangkaian joystick:Diagram skema rangkaian proyek ditunjukkan di bawah ini (semua terminal yang diarde terhubung bersama).
dan gambar berikut menunjukkan sirkuit fritzing:
Motor stepper terhubung ke papan ULN2003A yang disuplai dengan sumber daya eksternal 5V. Jalur kontrol (IN1, IN2, IN3 dan IN4) papan ini terhubung ke Arduino sebagai berikut:IN1 ke Arduino pin 11IN2 ke Arduino pin 10IN3 ke Arduino pin 9IN4 ke Arduino pin 8
Papan joystick memiliki 5 pin:GND, +5V, VRX, VRY dan SW di mana:GND dan +5V adalah pin catu dayaVRX adalah output potensiometer sumbu-XVRY adalah output potensiometer sumbu-YSW adalah terminal tombol tekan (terminal lainnya terhubung ke GND). Output dari potensiometer sumbu X (VRX) terhubung ke pin analog Arduino A0, output potensiometer sumbu Y (VRY) juga dapat digunakan. Pin sakelar (SW) tidak digunakan dalam contoh ini. Dengan menggunakan potensiometer sumbu X dan sumbu Y, kita dapat mengontrol dua motor stepper secara independen.
"Jadi teman-teman jika kamu suka proyek jadi jangan lupa untuk mengikuti dan menyukainya"
Kode
KODE:C/C++
pastikan untuk menambahkan semua pustaka yang termasuk dalam kode ini//proyek ini dibuat oleh BEASTIDREES62 https://id.arduino.cc/?code=MTxqeHweG6vL2cur&state=amxEcTB2bnNiYjluTUxmRExWaWZnOXIzUk1BLWRqZTZYUGtJNG stepper motor library#include // tentukan jumlah langkah per putaran#define STEPS 32 // tentukan pin kontrol motor stepper#define IN1 11#define IN2 10#define IN3 9#define IN4 8 // inisialisasi stepper libraryStepper stepper(LANGKAH, IN4, IN2, IN3, IN1); // output joystick pot terhubung ke Arduino A0#define joystick A0 void setup(){ } void loop(){ // membaca nilai analog dari potensiometer int val =analogRead(joystick); // jika joystic di tengah ===> hentikan motor if( (val> 500) &&(val <523) ) { digitalWrite(IN1, LOW); digitalWrite(IN2, RENDAH); digitalWrite(IN3, RENDAH); digitalWrite(IN4, RENDAH); } else { // gerakkan motor ke arah pertama while (val>=523) { // petakan kecepatan antara 5 dan 500 rpm int speed_ =map(val, 523, 1023, 5, 500); // setel kecepatan motor stepper.setSpeed(speed_); // gerakkan motor (1 langkah) stepper.step(1); val =analogRead(joystick); } // gerakkan motor ke arah lain while (val <=500) { // memetakan kecepatan antara 5 dan 500 rpm int speed_ =map(val, 500, 0, 5, 500); // setel kecepatan motor stepper.setSpeed(speed_); // gerakkan motor (1 langkah) stepper.step(-1); val =analogRead(joystick); } } }
Skema