Tutorial Arduino Mengkontrol Servo Motor menggunakan Joystick

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!
Previous
Next Post »