Cara Membaca Joystick Analog dengan Arduino Uno — Simulasi Online
Joystick analog pada dasarnya adalah dua potensiometer dalam satu tuas: satu untuk sumbu mendatar, satu untuk sumbu tegak, plus sebuah tombol tekan. Template ini membaca sumbu Y di A0, sumbu X di A1, dan tombolnya di D2.
Komponen yang dipakai
- Arduino Uno
- Joystick
Cara kerja
- Pin VERT joystick ke A0, HORZ ke A1, dan tombol SEL ke D2; daya dari 5V dan GND.
- analogRead membaca posisi tuas tiap sumbu sebagai nilai 0 sampai 1023.
- Tuas di tengah menghasilkan nilai sekitar 512; digeser ke tepi mendekati 0 atau 1023.
- Tombol tekan joystick dibaca sebagai input digital di D2.
Konsep yang dipelajari
Kode program
/*
Joystick: baca posisi X/Y analog dan tombol tekan.
Rangkaian: VCC->5V, GND->GND, VERT->A0, HORZ->A1, SEL->D2.
Geser knob joystick di kanvas dan lihat nilainya di Serial Monitor.
Tekan tombol (klik knob) untuk melihat status tombol.
*/
#define PIN_VERT A0
#define PIN_HORZ A1
#define PIN_SEL 2
void setup() {
Serial.begin(9600);
pinMode(PIN_SEL, INPUT_PULLUP);
Serial.println(F("Joystick siap. Geser knob-nya!"));
}
void loop() {
int vert = analogRead(PIN_VERT);
int horz = analogRead(PIN_HORZ);
int sel = digitalRead(PIN_SEL);
String arah = "";
if (vert > 800) arah += "atas ";
else if (vert < 200) arah += "bawah ";
if (horz > 800) arah += "kiri ";
else if (horz < 200) arah += "kanan ";
if (arah == "") arah = "tengah ";
if (sel == LOW) arah += "(ditekan)";
Serial.print(F("X=")); Serial.print(horz);
Serial.print(F(" Y=")); Serial.print(vert);
Serial.print(F(" -> ")); Serial.println(arah);
delay(250);
}