Cara mengakses modul joystick menggunakan Arduino

Cara mengakses modul joystick menggunakan Arduino

Penjelasan Singkat

Modul joystick adalah komponen yang berbentuk seperti tuas atau tongkat yang dapat digerakan ke berbagai arah untuk mendapatkan posisi yang diinginkan.

Pada umumnya modul ini memiliki 2 axis yaitu axis X dan axis Y dan 1 push button. Pengaplikasian modul ini banyak dijumpai pada joystick game PlayStasiun, X-Box, pengendali servo motor, kursi motor, dan lain – lain.

Modul ini yang banyak dipakai yaitu tipe bi-axial. Tipe joystick ini merupakan tipe yang sama dengan yang digunakan pada gagang kendali analog pada konsol Sony Playstation, X-box.

Berikut adalah gambar dari modul joystick bi-axial :

Modul Joystick Bi-axial

Spesifikasi dari modul bi-axial

  • Terdapat dual-axis X,Y
  • Dimensi : 4cm x 2.6cm x 3.2cm
  • Terdapat 2 potentiometers untuk 2 axis
  • Terdapat 1 switch (push button)
  • pin pin kaki: +5Vcc – GND – VRx – VRy – SW

Tutorial Pertama mengakses modul joystick

Mengakses modul untuk pengecekan axis x,y, dan pushbutton dengan komunikasi port serial, dan tidak memerlukan library tambahan dari pihak ketiga.

Bahan yang diperlukan untuk tutorial ini antara lain :

  • Arduino Uno
  • Komputer + Software IDE Arduino
  • Modul Joystick Bi-axial
  • Kabel Jumper

Skema yang perlu dirangkaikan

Untuk contoh pemrograman

/* www.nyebarilmu.com */

int button_Pin = 2;
int x_Pin = A1; //Nama alias pin A1 yaitu xPin
int y_Pin = A0; //Nama aliasa pin A0 yaitu yPin

//nilai default
int x_Position = 0;
int y_Position = 0;
int buttonState = 0;

void setup() {
//inisialisasi komunikasi serial pada 9600bps
Serial.begin(9600);
//deklarasi xPin dan yPin sebagai input
pinMode(x_Pin, INPUT);pinMode(y_Pin, INPUT);
//deklarasi buttonPin sebagai input dengan kondisi pull-up
pinMode(button_Pin, INPUT_PULLUP);
}

void loop() {
//Pembacaan kondisi
x_Position = analogRead(x_Pin);y_Position = analogRead(y_Pin);
buttonState = digitalRead(button_Pin);

//menampilkan hasil pada serial monitor
Serial.print("X: ");Serial.print(x_Position);
Serial.print(" | Y: ");Serial.print(y_Position);
Serial.print(" | Button: ");Serial.println(buttonState);

delay(100); //waktu tunda sebesar 100ms
}

Keterangan :

Pada contoh diatas dapat mengakses 3 fungsi sekaligus dari joystick sebagai pengecekan awal kondisi dari modul sudah dikatakan dalam kondisi bagus atau tidak.

[irp]


Tutorial Kedua

Mengakses modul joystick untuk mengendalikan 2 servo (axis x dan axis y) yang dapat dimanfaatkan dalam berbagai aplikasi.

Bahan yang diperlukan untuk tutorial ini antara lain :

  • Arduino Uno
  • Komputer + Software IDE Arduino
  • Modul Joystick Bi-axial
  • 2 servo mini
  • Kabel Jumper

Rangkaian yang perlu dirangkaikan

Tutorial arduino mengakses modul joystick untuk mengendalikan 2 servo

Koding pemrograman

#include <Servo.h>

const int servo1 = 3;      //servo 1
const int servo2 = 5;       //servo 2
const int joyH = A0;
const int joyV = A1;

int servoVal;

Servo myservo1;
Servo myservo2;

void setup() {
  myservo1.attach(servo1);
  myservo2.attach(servo2);
  Serial.begin(9600);
}


void loop(){
    outputJoystick();
    servoVal = analogRead(joyH);
    servoVal = map(servoVal, 00, 1023, 00, 180);

    myservo2.write(servoVal);

    servoVal = analogRead(joyV);
    servoVal = map(servoVal, 00, 1023, 70, 180);

    myservo1.write(servoVal);
    delay(15);
}

void outputJoystick(){

    Serial.print(analogRead(joyH));
    Serial.print ("***");
    Serial.print(analogRead(joyV));
    Serial.println ("************");
}

Hasil untuk kedua program diatas, akan segera menyusul.

Selamat mencoba!
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

>> CMIIW <<

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *