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.

Board: Arduino Uno1 komponen
Rangkaian simulasi Joystick (analog X/Y) dengan Arduino Uno di NOVIOT

Komponen yang dipakai

  • Arduino Uno
  • Joystick

Cara kerja

  1. Pin VERT joystick ke A0, HORZ ke A1, dan tombol SEL ke D2; daya dari 5V dan GND.
  2. analogRead membaca posisi tuas tiap sumbu sebagai nilai 0 sampai 1023.
  3. Tuas di tengah menghasilkan nilai sekitar 512; digeser ke tepi mendekati 0 atau 1023.
  4. Tombol tekan joystick dibaca sebagai input digital di D2.

Konsep yang dipelajari

Joystick sumbu X dan YDua input analog sekaligusNilai tengah analog (sekitar 512)Tombol tekan joystick

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);
}

Template Arduino Uno lainnya