#include <Servo.h> //including the library of the Servo Motor
Servo Xservo;
Servo Yservo;
int Xpin = A0; // menginisialisasi A0 sebagai gerakan sumbu X pada joystick
int Ypin = A1; // menginisialisasi A1 sebagai gerakan sumbu Y pada joystick
int Spin = 2; // menginisialisasi pin digital 2 sebagai tombol tekan joystick
int XSpin = 9; // menginisialisasi pin digital 9 sebagai pin sinyal kontrol servo
int YSpin = 10; // menginisialisasi pin digital 10 sebagai pin sinyal kontrol servo
// mendeklarasikan variabel untuk menyimpan nilai baca
int WVx;
int WVy;
int Xval;
int Yval;
int Sval;
int dt = 200; // menginisialisasi variabel penundaan
void setup()
{
Serial.begin(9600);
pinMode(Xpin, INPUT);
pinMode(Ypin, INPUT);
pinMode(Spin, INPUT);
pinMode(XSpin, OUTPUT);
pinMode(YSpin, OUTPUT);
Xservo.attach(XSpin); //mengaktifkan pin 9 untuk Xservo
Yservo.attach(YSpin); //mengaktifkan pin 10 untuk Yservo
digitalWrite(Spin, HIGH); // menginisialisasi Spin HIGH(1) pada tombol tekan joystick
}
void loop()
{
Xval = analogRead(Xpin); // Membaca nilai dari A0
WVx = (180. / 1023) * Xval; // Menghitung nilai pergerakan sumbu X pada joystick
Yval = analogRead(Ypin); // Membaca nilai dari A1
WVy = (180. / 1023.) * Yval; // Menghitung nilai pergerakan sumbu Y pada joystick
Sval = digitalRead(Spin); // Membaca nilai dari pin digital 2
Xservo.write(WVx); // Memindahkan servo menggunakan gerakan X pada joystick
Yservo.write(WVy); // Memindahkan servo menggunakan gerakan Y pada joystick
delay(dt);
Serial.print("X Value = ");
Serial.print(Xval); // menampilkan nilai sumbu X pada monitor serial
Serial.print(" Y Value = ");
Serial.print(Yval); // menampilkan nilai sumbu X pada monitor serial
Serial.print("Switch State is");
Serial.println(Sval); // menampilkan nilai tombol tekan pada monitor serial
}