Joystick KY-023 adalah modul joystick analog dua sumbu (2-axis) yang dirancang untuk menyediakan input posisi (gerakan) dan juga memiliki tombol tekan tambahan.Berikut ini adalah code untuk memprogramnya :
#include <Arduino.h>
const int pinX_joystik = A0;
const int pinY_joystik = A1;
void setup()
{
Serial.begin(9600);
pinMode(pinX_joystik, INPUT);
pinMode(pinY_joystik, INPUT);
}
void loop(){
int nilaiX_joystik = analogRead(pinX_joystik);
int nilaiY_joystik = analogRead(pinY_joystik);
Serial.print("Nilai X: ");
Serial.print(nilaiX_joystik);
Serial.print(" Nilai Y: ");
Serial.println(nilaiY_joystik);
}
Berikut ini adalah penjelasan dari kode di atas :
1. Inklusi Library
#<strong>include</strong> <Arduino.h>
#include <Arduino.h>: Ini adalah library standar yang wajib ada di setiap program Arduino. Library ini menyediakan fungsi-fungsi dasar yang kita gunakan, sepertiSerial.begin(),pinMode(),analogRead(), danSerial.print()/println().
2. Deklarasi Variabel Global
const int pinX_joystik = A0;
const int pinY_joystik = A1;
const int pinX_joystik = A0;: Baris ini mendeklarasikan sebuah variabel konstanta (const int) bernamapinX_joystikdan memberikan nilaiA0padanya.A0merujuk pada pin analog 0 di papan Arduino. Pin ini akan digunakan untuk membaca nilai posisi sumbu X dari joystick. Menggunakanconstberarti nilai variabel ini tidak dapat diubah selama program berjalan, yang merupakan praktik bagus untuk pin hardware.const int pinY_joystik = A1;: Serupa dengan di atas, ini mendeklarasikanpinY_joystikdengan nilaiA1, yang akan terhubung ke pin output sumbu Y dari joystick.
3. Fungsi setup()
void setup()
{
Serial.begin(9600);
pinMode(pinX_joystik, INPUT);
pinMode(pinY_joystik, INPUT);
}
Serial.begin(9600);: Fungsi ini menginisialisasi komunikasi serial pada baud rate 9600. Ini sangat penting agar Arduino dapat mengirimkan data pembacaan joystick ke komputer Anda, yang kemudian bisa Anda lihat melalui Serial Monitor di Arduino IDE.pinMode(pinX_joystik, INPUT);: Fungsi ini mengkonfigurasi pin analog yang telah kita definisikan (pinX_joystik, yaitu A0) sebagai INPUT. Ini memberitahu Arduino bahwa pin ini akan digunakan untuk membaca sinyal tegangan yang datang dari sumbu X joystick.pinMode(pinY_joystik, INPUT);: Sama seperti di atas, ini mengkonfigurasipinY_joystik(A1) sebagai INPUT untuk membaca sinyal tegangan dari sumbu Y joystick.
4. Fungsi loop()
void loop(){
int nilaiX_joystik = analogRead(pinX_joystik);
int nilaiY_joystik = analogRead(pinY_joystik);
Serial.print("Nilai X: ");
Serial.print(nilaiX_joystik);
Serial.print("\tNilai Y: ");
Serial.println(nilaiY_joystik);
}
int nilaiX_joystik = analogRead(pinX_joystik);: Ini adalah inti dari pembacaan joystick.analogRead(pinX_joystik): Fungsi ini membaca nilai tegangan analog dari pin yang ditentukan (pinX_joystik, yaitu A0). Mikrokontroler Arduino (kebanyakan ATmega328P seperti pada Uno) memiliki ADC (Analog-to-Digital Converter) 10-bit. Ini berarti ia akan mengkonversi tegangan input (misalnya dari 0V hingga 5V) menjadi nilai digital dalam rentang 0 hingga 1023.- Nilai yang dibaca ini (antara 0-1023) kemudian disimpan dalam variabel integer
nilaiX_joystik.
int nilaiY_joystik = analogRead(pinY_joystik);: Mirip dengan sumbu X, baris ini membaca nilai tegangan analog dari pinpinY_joystik(A1) dan menyimpan hasilnya (0-1023) dalam variabelnilaiY_joystik.Serial.print("Nilai X: ");: Mencetak teks “Nilai X: ” ke Serial Monitor.Serial.print()tidak menambahkan baris baru setelah mencetak.Serial.print(nilaiX_joystik);: Mencetak nilai numerik darinilaiX_joystik(0-1023) ke Serial Monitor, melanjutkan di baris yang sama.Serial.print("\tNilai Y: ");: Mencetak tab (\t) untuk memberikan jarak, diikuti dengan teks “Nilai Y: ” ke Serial Monitor.Serial.println(nilaiY_joystik);: Mencetak nilai numerik darinilaiY_joystik(0-1023) ke Serial Monitor, dan kemudianprintln()akan menambahkan baris baru, sehingga pembacaan berikutnya akan dimulai di baris baru.
Cara Kerja Keseluruhan
Secara sederhana, kode ini melakukan hal berikut:
- Persiapan (
setup): Mengaktifkan komunikasi serial dan mengatur pin analog A0 dan A1 Arduino sebagai pin input untuk membaca sinyal analog dari joystick. - Pengulangan (
loop): Terus-menerus:- Membaca nilai tegangan dari sumbu X joystick (yang akan dikonversi menjadi nilai 0-1023).
- Membaca nilai tegangan dari sumbu Y joystick (juga dikonversi menjadi 0-1023).
- Mencetak kedua nilai ini ke Serial Monitor dalam format “Nilai X: [nilai_X] Nilai Y: [nilai_Y]”.
Ketika joystick berada di posisi tengah, Anda biasanya akan melihat nilai sekitar 511-512 untuk kedua sumbu (setengah dari 1023). Jika Anda menggerakkan joystick:
- Ke kanan, nilai X akan mendekati 1023.
- Ke kiri, nilai X akan mendekati 0.
- Ke atas, nilai Y akan mendekati 1023.
- Ke bawah, nilai Y akan mendekati 0.
Kode ini sangat mendasar dan hanya menampilkan nilai mentah. Dalam aplikasi nyata, nilai-nilai ini kemudian akan diproses lebih lanjut (misalnya, dipetakan ke rentang yang berbeda, digunakan untuk mengontrol motor, atau sebagai input game).
untuk diskusi bisa kontak dibawah ini :

Sosial media :





