- Bahan Diperlukan
- Rajah Litar
- Modul Joystick
- Kod dan Penjelasan
- Mengawal LED menggunakan Joystick dengan Arduino
Perkara pertama yang terlintas di fikiran kita untuk mendengar perkataan Joystick adalah pengawal permainan. Ya, sama persis dan boleh digunakan untuk tujuan permainan. Selain permainan, ia mempunyai banyak aplikasi lain dalam elektronik DIY. Joystick ini tidak lain hanyalah gabungan dua potensiometer untuk pesawat X dan Y masing-masing. Ia membaca voltan melalui potensiometer dan memberikan nilai analog ke Arduino, dan nilai analog berubah ketika kita menggerakkan batang kayu bedik (yang merupakan penunjuk potensiometer).
Di Litar ini, kami menghubungkan Joystick dengan Arduino hanya dengan mengendalikan empat LED sesuai pergerakan Joystick. Kami telah meletakkan 4 LED sedemikian rupa sehingga mewakili arah pergerakan batang kayu bedik. Joystick ini juga mempunyai butang tekan yang boleh digunakan untuk pelbagai tujuan lain atau tidak boleh digunakan. LED tunggal juga dipasang pada suis kayu bedik, kerana butang kayu bedik ditekan bahawa LED tunggal akan menyala.
Bahan Diperlukan
- Arduino UNO
- Modul Joystick
- LED-5
- Perintang: 100ohm-3
- Menyambung wayar
- Papan roti
Rajah Litar
Modul Joystick
Joystick boleh didapati dalam pelbagai bentuk dan saiz. Modul Joystick khas ditunjukkan pada gambar di bawah. Modul Joystick ini biasanya memberikan Output Analog dan voltan output yang disediakan oleh modul ini terus berubah mengikut arah di mana kita menggerakkannya. Dan kita boleh mendapatkan arah pergerakan dengan menafsirkan perubahan voltan ini menggunakan beberapa mikrokontroler. Sebelum ini kami menghubungkan Joystick dengan AVR dan Raspberry Pi.
Modul kayu bedik ini mempunyai dua paksi seperti yang anda lihat. Mereka adalah paksi-X dan paksi-Y. Setiap paksi JOYSTICK dipasang ke potensiometer atau periuk. Titik tengah pot ini dihalau keluar sebagai Rx dan Ry. Oleh itu, Rx dan Ry adalah titik berubah untuk pot ini. Semasa Joystick dalam keadaan bersedia, Rx dan Ry bertindak sebagai pembahagi voltan.
Apabila kayu bedik digerakkan di sepanjang paksi mendatar, voltan pada pin Rx berubah. Begitu juga, apabila ia bergerak di sepanjang paksi menegak, voltan pada pin Ry berubah. Oleh itu, kami mempunyai empat arah Joystick pada dua output ADC. Apabila tongkat digerakkan, voltan pada setiap pin naik tinggi atau rendah bergantung pada arah.
Di sini, kami menyambungkan modul Joystick ini dengan Arduino UNO yang dilengkapi dengan mekanisme ADC (Analog ke Digital Converter) bawaan seperti yang ditunjukkan dalam video di hujungnya. Ketahui lebih lanjut mengenai penggunaan ADC Arduino di sini.
Kod dan Penjelasan
Kod Arduino yang lengkap disebutkan di akhir.
Dalam kod di bawah, kami telah menentukan paksi X dan Y modul Joystick untuk pin analog A0 dan A1 masing-masing.
#menentukan kegembiraanX A0 #menentukan kegembiraanY A1
Sekarang, dalam kod di bawah ini, kami menginisialisasi PIN 2 Arduino untuk Switch (butang tekan) modul Joystick dan nilai buttonstate dan buttonstate1 akan menjadi 0 pada permulaannya.
butang int = 2; int buttonState = 0; butang intState1 = 0;
Dalam kod di bawah ini, kami menetapkan tingkat baud menjadi 9600 dan mendefinisikan Pin 7 sebagai pin output dan pin butang sebagai Pin input. Pada mulanya, pin butang akan tetap tinggi sehingga Switch akan ditekan.
batal persediaan () {pinMode (7, OUTPUT); pinMode (butang, INPUT); digitalWrite (butang, TINGGI); Serial.begin (9600); }
Di sini, dalam kod ini kita membaca nilai dari pin analog A0 dan A1 dan mencetak secara bersiri.
int xValue = analogRead (kegembiraanX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Syaratnya, untuk menghidupkan dan mematikan LED sesuai pergerakan poros Joystick, ditentukan dalam kod di bawah. Di sini kita hanya mengambil nilai voltan analog pada pin A0 dan A1 dari Arduino. Nilai analog ini akan berubah semasa kita menggerakkan kayu bedik dan LED akan menyala mengikut pergerakan kayu bedik.
Keadaan ini adalah untuk pergerakan batang Joystick dalam arah paksi -Y
if (xValue> = 0 && yValue <= 10) {digitalWrite (10, TINGGI); } lain {digitalWrite (10, RENDAH);}
Keadaan ini adalah untuk pergerakan batang Joystick dalam arah paksi -X
if (xValue <= 10 && yValue> = 500) {digitalWrite (11, TINGGI); } lain {digitalWrite (11, RENDAH);}
Keadaan ini adalah untuk pergerakan batang Joystick dalam arah paksi + X
if (xValue> = 1020 && yValue> = 500) {digitalWrite (9, TINGGI); } lain {digitalWrite (9, RENDAH);}
Keadaan ini adalah untuk pergerakan batang Joystick dalam arah paksi + Y
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, TINGGI); } lain {digitalWrite (8, RENDAH);}
Apabila kita menggerakkan batang joystick secara menyerong maka satu kedudukan akan datang apabila nilai analog X dan Y masing-masing adalah 1023 dan 1023, kedua Pin 9 dan Pin 8 LED akan menyala. Kerana memenuhi syarat LED. Jadi, untuk menghilangkan ketidakcocokan itu, kita telah memberikan syarat bahawa jika nilai (X, Y) adalah (1023, 1023) maka kedua LED tetap dalam keadaan OFF
if (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, RENDAH); digitalWrite (8, RENDAH); }
Keadaan di bawah digunakan untuk mengoperasikan LED yang disambungkan ke Pushbutton Switch. Semasa kami menekan tombol Joystick, LED akan menyala dan mengunci sehingga butang dilepaskan. Pilihannya menggunakan suis butang Tekan pada modul Joystick.
jika (buttonState == RENDAH) {Serial.println ("Switch = High"); digitalWrite (7, TINGGI); } lain {digitalWrite (7, RENDAH);}
Mengawal LED menggunakan Joystick dengan Arduino
Setelah memuat naik kod ke Arduino dan menyambungkan komponennya seperti di rajah litar, kita sekarang dapat mengawal LED dengan Joystick. Kita dapat menyalakan empat LED di setiap arah sesuai dengan pergerakan batang Joystick. Joystick mempunyai dua potensiometer di dalamnya, satu untuk pergerakan paksi-X dan satu lagi untuk pergerakan paksi-Y. Setiap potensiometer mendapat 5v dari Arduino. Oleh kerana kita menggerakkan kayu bedik, nilai voltan akan berubah dan nilai analog pada pin Analog A0 dan A1 juga akan berubah.
Oleh itu, dari Arduino, kami membaca nilai analog untuk paksi X dan Y dan menyalakan LED mengikut pergerakan paksi Joystick. Suis tekan butang pada modul Joystick digunakan untuk mengawal LED tunggal di litar seperti yang ditunjukkan dalam video di bawah.