Ada berbagai macam cara untuk mentransfer informasi dari seseorang ke mikrokontroler atau komputer, dan salah satunya adalah menggunakan joystick. Mari kita lihat bagaimana menghubungkan joystick analog dengan dua sumbu dan tombol ke Arduino.
Itu perlu
- -Arduino;
- - joystick dua sumbu;
- - 3 resistor dengan nilai nominal 220 Ohm;
- - 1 RGB atau 3 LED konvensional.
instruksi
Langkah 1
Joystick adalah perangkat yang nyaman dan mudah digunakan untuk mengirimkan informasi. Ada banyak jenis joystick dalam hal jumlah derajat kebebasan, prinsip membaca indikasi dan teknologi yang digunakan. Joystick paling sering digunakan untuk mengontrol pergerakan mekanisme apa pun, model terkontrol, robot. Joystick analog, yang akan kita lihat hari ini, adalah pegangan yang dipasang pada sambungan bola dengan dua sumbu yang saling tegak lurus. Ketika kenop dimiringkan, sumbu memutar kontak potensiometer yang dapat digerakkan, yang menyebabkan tegangan pada outputnya berubah. Juga, joystick analog memiliki tombol kebijaksanaan, yang dipicu saat Anda menekan pegangan secara vertikal.
Langkah 2
Hubungkan joystick sesuai dengan diagram di bawah ini. Hubungkan output analog X dan Y joystick ke input analog A1 dan A2 Arduino, output tombol SW ke input digital 8. Joystick ditenagai oleh tegangan +5 V.
Langkah 3
Untuk melihat dengan jelas bagaimana joystick bekerja, mari kita buat sketsa seperti itu. Mari kita deklarasikan pin, atur mode operasinya. Perhatikan bahwa dalam prosedur setup (), kita mengatur input switchPin ke level tinggi. Ini memungkinkan resistor pull-up bawaan pada port ini. Jika Anda tidak menyalakannya, maka ketika tombol joystick tidak ditekan, port Arduino ke-8 akan menggantung di udara dan menangkap pickup. Ini akan menyebabkan positif palsu yang tidak diinginkan dan kacau.
Dalam prosedur loop (), kami terus-menerus melakukan polling status tombol dan menampilkannya menggunakan LED pada output 13. Karena input switchPin ditarik ke atas, LED terus menyala, dan ketika tombol ditekan, lampu mati, dan bukan sebaliknya.
Selanjutnya, kita membaca pembacaan dua potensiometer joystick - output sumbu X dan Y. Arduino memiliki ADC 10-bit, sehingga nilai yang dibaca dari joystick berada dalam kisaran 0 hingga 1023. Di posisi tengah joystick, seperti yang Anda lihat dalam ilustrasi, nilai di wilayah 500 berada di sekitar tengah rentang.
Langkah 4
Biasanya joystick digunakan untuk mengendalikan motor listrik. Tapi mengapa tidak menggunakannya untuk mengontrol kecerahan LED, misalnya? Mari kita hubungkan LED RGB (atau tiga LED biasa) ke port digital 9, 10 dan 11 Arduino sesuai dengan diagram di atas, tentu saja tidak melupakan resistor.
Langkah 5
Kami akan mengubah kecerahan warna yang sesuai saat mengubah posisi joystick di sepanjang sumbu, seperti yang ditunjukkan pada gambar. Karena fakta bahwa joystick mungkin tidak dipusatkan secara akurat oleh pabrikan dan memiliki skala tengah tidak di sekitar 512, tetapi dari 490 hingga 525, LED mungkin sedikit menyala meskipun joystick berada di posisi netral. Jika Anda ingin benar-benar dimatikan, maka buat amandemen yang sesuai pada program.
Langkah 6
Berdasarkan diagram di atas, kita akan menulis sketsa Arduino mengontrol kecerahan LED RGB menggunakan joystick.
Pertama, kami akan mendeklarasikan korespondensi pin dan dua variabel - ledOn dan prevSw - untuk bekerja dengan tombol. Dalam prosedur setup (), tetapkan fungsi ke pin dan hubungkan resistor pull-up ke pin tombol dengan perintah digitalWrite (swPin, HIGH).
Di loop () kami menentukan penekanan tombol joystick. Saat Anda menekan tombol, kami mengganti mode pengoperasian antara mode "senter" dan mode "musik berwarna".
Dalam mode freeMode (), kecerahan LED dikontrol dengan memiringkan joystick ke arah yang berbeda: semakin kuat kemiringan di sepanjang sumbu, semakin terang warna yang sesuai bersinar. Apalagi transformasi nilai diambil alih oleh fungsi peta (nilai, dari Bawah, dari Atas, ke Bawah, ke Atas). Fungsi peta () mentransfer nilai terukur (dari Rendah, ke Tinggi) di sepanjang sumbu joystick ke rentang kecerahan yang diinginkan (ke Rendah, ke Tinggi). Anda dapat melakukan hal yang sama dengan operasi aritmatika biasa, tetapi notasi ini jauh lebih pendek.
Dalam mode discoMode (), tiga warna secara bergantian mendapatkan kecerahan dan padam. Untuk dapat keluar dari loop saat tombol ditekan, kami memeriksa setiap iterasi untuk melihat apakah tombol telah ditekan.
Langkah 7
Hasilnya adalah senter yang terbuat dari LED RGB tiga warna, yang kecerahan setiap warna diatur menggunakan joystick. Dan ketika Anda menekan tombol, mode "musik berwarna" diaktifkan. Meskipun saya menggunakannya, sebaliknya, sebagai lampu malam.
Jadi, kami belajar cara menghubungkan joystick dua sumbu analog dengan tombol ke Arduino dan membaca bacaan darinya. Anda dapat memikirkan dan menerapkan penggunaan joystick yang lebih menarik daripada contoh kami.