- Material Diperlukan
- Diagram Sirkuit
- Modul Joystick
- Kode dan Penjelasan
- Mengontrol LED menggunakan Joystick dengan Arduino
Hal pertama yang terlintas di benak kita saat mendengarkan kata Joystick adalah pengontrol game. Ya, itu persis sama dan bisa digunakan untuk tujuan bermain game. Selain bermain game, ia memiliki banyak aplikasi lain dalam elektronik DIY. Joystick ini tidak lain adalah kombinasi dari dua potensiometer untuk bidang X dan Y masing-masing. Ini membaca tegangan melalui potensiometer dan memberikan nilai analog ke Arduino, dan nilai analog berubah saat kita menggerakkan poros joystick (yang hanya merupakan penunjuk potensiometer).
Di Sirkuit ini, kami menghubungkan Joystick dengan Arduino hanya dengan mengontrol empat LED sesuai pergerakan Joystick. Kami telah menempatkan 4 LED sedemikian rupa sehingga mewakili arah gerakan poros joystick. Joystick ini juga memiliki push button yang bisa digunakan untuk berbagai keperluan lain atau bisa dibiarkan idle. Sebuah LED juga dipasang ke sakelar joystick, karena tombol joystick ditekan, satu LED akan menyala.
Material Diperlukan
- Arduino UNO
- Modul Joystick
- LED-5
- Resistor: 100ohm-3
- Menghubungkan kabel
- Papan tempat memotong roti
Diagram Sirkuit
Modul Joystick
Joystick tersedia dalam berbagai bentuk dan ukuran. Modul Joystick tipikal ditunjukkan pada gambar di bawah ini. Modul Joystick ini biasanya menyediakan Output Analog dan tegangan output yang diberikan oleh modul ini terus berubah sesuai dengan arah yang kita pindahkan. Dan kita bisa mendapatkan arah pergerakan dengan menginterpretasikan perubahan tegangan tersebut menggunakan beberapa mikrokontroler. Sebelumnya kami menghubungkan Joystick dengan AVR dan Raspberry Pi.
Modul joystick ini memiliki dua sumbu seperti yang Anda lihat. Mereka adalah sumbu X dan sumbu Y. Setiap sumbu JOYSTICK dipasang ke potensiometer atau pot. Titik tengah pot ini diusir sebagai Rx dan Ry. Jadi Rx dan Ry adalah poin variabel ke pot ini. Saat Joystick dalam keadaan standby, Rx dan Ry bertindak sebagai pembagi tegangan.
Saat joystick digerakkan sepanjang sumbu horizontal, tegangan pada pin Rx berubah. Demikian pula, ketika digerakkan sepanjang sumbu vertikal, tegangan pada pin Ry berubah. Jadi kami memiliki empat arah Joystick pada dua output ADC. Saat tongkat digerakkan, tegangan pada setiap pin naik atau turun tergantung arah.
Di sini, kami menghubungkan modul Joystick ini dengan Arduino UNO yang dilengkapi dengan mekanisme ADC (Analog to Digital Converter) bawaan seperti yang ditunjukkan pada video di bagian akhir. Pelajari lebih lanjut tentang menggunakan ADC Arduino di sini.
Kode dan Penjelasan
Kode Arduino Lengkap disebutkan di bagian akhir.
Dalam kode di bawah ini, kami telah menentukan sumbu X dan Y dari modul Joystick untuk pin analog A0 dan A1 masing-masing.
# Tentukan joyX A0 # Tentukan joyY A1
Sekarang, dalam kode di bawah ini, kami menginisialisasi PIN 2 Arduino untuk Switch (tombol tekan) dari modul Joystick dan nilai buttonstate dan buttonstate1 akan menjadi 0 di awal.
tombol int = 2; int buttonState = 0; int buttonState1 = 0;
Pada kode di bawah ini, kami mengatur baud rate menjadi 9600 dan mendefinisikan Pin 7 sebagai pin keluaran dan pin tombol sebagai pin masukan. Awalnya, pin tombol akan tetap tinggi sampai Switch akan menekan.
batal penyiapan () {pinMode (7, OUTPUT); pinMode (tombol, INPUT); digitalWrite (tombol, HIGH); Serial.begin (9600); }
Di sini, dalam kode ini kita membaca nilai dari pin analog A0 dan A1 dan mencetak secara serial.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Kondisi, untuk menyalakan dan mematikan LED sesuai pergerakan poros Joystick, ditentukan dalam kode di bawah ini. Di sini kita hanya mengambil nilai tegangan analog pada pin A0 dan A1 dari Arduino. Nilai analog ini akan berubah saat kita menggerakkan joystick dan LED akan menyala sesuai dengan gerakan joystick.
Kondisi ini untuk pergerakan poros Joystick dalam arah sumbu -Y
if (xValue> = 0 && yValue <= 10) {digitalWrite (10, HIGH); } lain {digitalWrite (10, LOW);}
Kondisi ini untuk pergerakan poros Joystick dalam arah sumbu -X
if (xValue <= 10 && yValue> = 500) {digitalWrite (11, HIGH); } lain {digitalWrite (11, LOW);}
Kondisi ini untuk pergerakan poros Joystick dalam arah sumbu + X.
if (xValue> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } lain {digitalWrite (9, LOW);}
Kondisi ini untuk pergerakan poros Joystick dalam arah sumbu + Y.
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } lain {digitalWrite (8, LOW);}
Ketika kita menggerakkan poros joystick secara diagonal maka satu posisi datang ketika nilai analog X dan Y masing-masing akan menjadi 1023 dan 1023, baik Pin 9 dan Pin 8 LED akan menyala. Karena sudah memenuhi kondisi LED. Jadi untuk menghilangkan ketidaksesuaian tersebut kita telah memberikan syarat bahwa jika nilai (X, Y) adalah (1023, 1023) maka kedua LED tetap dalam kondisi OFF.
if (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
Kondisi di bawah ini digunakan untuk mengoperasikan LED yang terhubung ke Sakelar Tombol Tekan. Saat kita menekan sakelar Joystick, LED akan menyala dan mengunci sampai tombol terlepas. Ini opsional untuk menggunakan sakelar tombol Push pada modul Joystick.
if (buttonState == LOW) {Serial.println ("Switch = High"); digitalWrite (7, TINGGI); } lain {digitalWrite (7, LOW);}
Mengontrol LED menggunakan Joystick dengan Arduino
Setelah mengunggah kode ke Arduino dan menghubungkan komponen sesuai diagram rangkaian, sekarang kita dapat mengontrol LED dengan Joystick. Kita dapat MENGAKTIFKAN empat LED di setiap arah sesuai gerakan poros Joystick. Joystick memiliki dua potensiometer di dalamnya, satu untuk pergerakan sumbu X dan satu lagi untuk pergerakan sumbu Y. Setiap potensiometer mendapatkan 5v dari Arduino. Jadi saat kita menggerakkan joystick, nilai tegangan akan berubah dan nilai analog pada pin Analog A0 dan A1 juga akan berubah.
Jadi, dari Arduino, kita membaca nilai analog untuk sumbu X dan Y dan menyalakan LED sesuai gerakan sumbu Joystick. Sakelar tombol tekan pada modul Joystick digunakan untuk mengontrol LED tunggal di sirkuit seperti yang ditunjukkan pada video di bawah ini.