arduinopedia.com - Tutorial Arduino Mengkontrol Servo Motor menggunakan Joystick
Pada kesempatan ini arduinopedia.com akan menyajikan tutorial arduino tentang bagaimana menggunakan modul Joystick untuk mengendalikan motor servo menggunakan Arduino.
1. Pendahuluan
Joystick adalah perangkat input yang terdiri dari tuas, yang dapat bergerak dalam beberapa arah pada sumbu X dan Y. Ini adalah joystick analog - lebih akurat dan sensitif daripada joystick 'terarah' - dengan tombol 'tekan untuk memilih'. Karena analog, maka anda memerlukan dua pin untuk membaca analog pada mikrokontroler Anda untuk menentukan X dan Y. Nilai X dan Y ini digunakan untuk menafsirkan posisi tuas.
Arduino telah dibangun pada konverter ADC yang mengubah nilai 0 V - 5 V menjadi 0 sampai 1023 nilai tegangan. Bila tuas tidak terpasang, tuasnya tetap berada pada posisi tengah sumbu X dan Y dan menunjukkan nilai setengah dari 1023.
2. Hardware yang dibutuhkan
- Arduino Uno
- Breadboard
- Module joystik
- motor servo
- male to female jumper
- male to male jumper
3. Koneksi
4. Pemrograman
Anda bisa mendownload Sketsa Arduino ini disini.
#include <Servo.h> //include servo library Servo servo1; // creating servo object Servo servo2; int joystick_x = A0; // joystick x direction pin int joystick_y = A1; // joystick y direction pin int pos_x; // declaring variable to stroe horizontal value int pos_y; // declaring variable to stroe vertical value int servo1_pos=90; // storing servo position int servo2_pos=90; void setup ( ) { Serial.begin (9600) ; servo1.attach (3) ; // servo 1 attached pin servo2.attach (4) ; // servo 1 attached pin servo1.write (servo1_pos); servo2.write (servo2_pos); pinMode (joystick_x, INPUT) ; pinMode (joystick_y, INPUT) ; } void loop ( ) { pos_x = analogRead (joystick_x) ; pos_y = analogRead (joystick_y) ; if (pos_x < 300) //if the horizontal value from joystick is less than 300 { if (servo1_pos < 10) //first servo moves right { } else { servo1_pos = servo1_pos - 20; servo1.write ( servo1_pos ) ; delay (100); } } if (pos_x > 700) { if (servo1_pos > 180) { } else { servo1_pos = servo1_pos + 20; servo1.write ( servo1_pos ) ; delay (100) ; } } if (pos_y < 300) //if the vertical value from joystick is less than 300 { if (servo2_pos < 10) //second servo moves right { } else { servo2_pos = servo2_pos - 20; servo2.write ( servo2_pos ); delay (100); } } if (pos_y > 700) { if (servo2_pos > 180) { } else { servo2_pos = servo2_pos + 20; servo2.write(servo2_pos) ; delay (100) ; } } }
5.Output
Untuk mengendalikan motor servo, saat kita menggerakkan joystick secara horizontal, motor servo pertama akan bergerak ke kanan dan kiri bergantung pada posisi tuas. Sama juga saat kita menggerakkan joystick secara vertikal, motor servo lain akan bergerak ke kanan dan kiri bergantung pada posisi tuas.
Selamat mencoba!
No comments:
Post a Comment