Merhaba arkadaşlar bu yazımızda arduino ile robot yapımında çok kullanılan bir modül olan JOYSTİCK modülünü inceleyeceğiz. Bu modülle neler yapılabilir, arduinoda nasıl kullanılır, kodu nedir ve çalışma yapısından bahsedeceğiz ve serial monitörden oluşturduğu analog değerleri alacağız hazırsanız başlayalım. 🙂
İçindekiler
Joystick Nerelerde Kullanılır ?
Joystick özellikle uzaktan kumandalı arduino projelerinde kullanılmaktadır. Arduino ile uzaktan kumandalı araba, arduino ile uçak, drone vb birçok projede uzaktan kumanda kontrolleri için kullanılan başlıca modüllerin başında gelmektedir. Ve piyasa fiyatı oldukça uygundur.
Minik Not: Eğer elinizde üzerinde joystick olan bozuk bir oyun kolu varsa bu modülü almanıza gerek kalmayacaktır. Oyun kolundaki joystick’i rahatlıkla arduinonuzda kullanabilirsiniz.. 🙂
Resimde gördüğünüz gibi ben kendiminkini sökmüştüm 🙂
Çalışma Yapısı
Joystick içerisinde x ve y ekseninde hareket ettirebildiğimiz 2 potansiyometre bulunan bir modüldür. (Eğer potansiyometrenin arduino ile kullanımını bilmiyorsanız şu yazımızda kullanımını anlatmıştık.) Bu sayede 2 eksende analog değerler üretebilmektedir. Ayrıca üzerinde bir de buton bulunan joystick modülü ile tıklamaları arduino ile tespit edebilmekteyiz. Peki bu buton ne işimize yarayacak derseniz de örneğin bir rc araba yaptınız joystick le yön kontrollerini yapıyorsunuz butonla da farlarını açıp kapaya bilirsiniz bu şuan ürettiğim bir örnek sizde farkedersiniz ki bu modülle binlerce proje yapılabilir. 🙂
Joystick X ve Y ekseninde 0 ile 1023 arasında değerler üretir. Joystick kolunu hareket ettirmediğiniz de yani orta konumdayken X ve Y eksen değerleri yaklaşık olarak 500 ile 512 arasında okunacaktır. Basit bir kodla bunu istediğimiz şekilde okuyabilir projelerimizde kontrol aracı olarak rahatlıkla kullanabiliriz.. Tabi bu teorik bilgi 😛 Birde biz inceleyelim 😀
Joystick topunu hareket ettiğimizde X ve Y eksenlerinin değerleri resimdeki yönlerdeki gibi artacak ve azalacaktır.
Modülümüz hakkında yeterli bilgiye sahip olduğumuza göre isterseniz projemize geçelim 🙂
Malzeme Listesi
1- Herhangi bir arduino modeli
2- Joystick Modülü
3- Breadbord ve Jumper kablolar (Bize 5 adet yeterli)
Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz
Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir. 🙂
Arduino İle Joystick Kullanımı Devre Şeması
Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.
Yazılım
Bu modülle çalışabilmek için bir kütüphaneye ihtiyaç duymuyoruz.
//DONANIM PLUS ELEKTRONİK //TASARIM TOLGA SOYTEPE int xPin = A0; // x eksenindeki potumuzu a0 a baladık int yPin = A1; //y eksenindeki potumuzu a1 e bağladık int buton_pin = 2 ; // modüldeki buton pinimizi 2. dijital pine bağladık int buton_durum; // tek butundan led açıp kapayacağımız için birde butonun durumunu atayabileceğimiz değişken oluşturduk int led = 3; // ledimizi 3. pine bağladık int x_degeri, y_degeri; //Joystick üzerinden alınan koordinat bilgisini yazdıracağımız değişkenler atadık void setup() { pinMode(xPin, INPUT); pinMode(yPin, INPUT); // Girişleri tanımladık pinMode(buton_pin, INPUT); digitalWrite(buton_pin, HIGH); delay(200); } void loop() { x_degeri = analogRead(xPin); //x eksenindeki konum y_degeri = analogRead(yPin); //y eksenindeki konum Serial.println("X DEGERI: "); Serial.print(xPin); Serial.println("---------------------------------------------"); // serial monitöre yazdırmasını istedik aldığımız değerleri Serial.println("Y DEGERI: "); Serial.print(yPin); delay(200); if (!digitalRead(buton_pin) && (!buton_durum)) //butona basıldıgında { buton_durum = 1; digitalWrite(led,HIGH); Serial.println("LED YANIYOR"); } else if (digitalRead(buton_pin) && (buton_durum)) //butona basılmadıgında { buton_durum = 0; digitalWrite(led,LOW); Serial.println("LED SÖNDÜ"); } }
Projede kullanılan yazılım kodlarını buradan indirebilirsiniz 🙂
Ana Yazılım ;
Kodları yükledikten sonra serial monitörü açıyoruz.. 🙂
Joystick’i ileri doğru ittiğimizde yaklaşık olarak 1010 ile 1020 arası değerler alıyoruz.. Teorik bilgide 1023 diyordu bunlar hep amerikanın oyunları 😛
Joystick’i geri doğru ittiğimizde de yaklaşık olarak 0 ile 1 arası değerler alıyoruz..
Joystick’i boşta tuttuğumuz da ise yaklaşık olarak 515 ile 520 arası değerler alıyoruz..
Butona bastığınızda ise ledin yandığını göreceksiniz 🙂
Bu modül ile daha öncede dediğim gibi binlerce proje yapılabilir; rc araba ,rc tekne yada uçak yapmanız gerekense basit bir if döngüsü yazmak, nasıl derseniz; mesela 0-10 aralığı geldiğinde bir şey yapsın. Eğer bir rc araçsa geri gidebilir mesela.. Boşta durduğunda ne değeri geliyordu ?? hatırladım 510-520 mesela bu aralık geldiğinde arabanın freni varsa fren yapsın 🙂 diğerleri de aynı mantık.. kodu tam yazmayacağım, en azından şimdilik. İlerleyen zamanlarda bu modülle bir sürü proje yapacağız.. Neyse konu dağılmadan devam edeyim 🙂 kodu tam yazmayacağım, çünkü yazılımcılık böyle bir şey eksikleri tamamlayarak ilerlemeniz gerekiyor. Bu sayede öğreniyorsunuz.. Size tavsiyem kodları kopyalamak tan ziyade anlamaya çalışın. Mesela 2 tane arduino sayfası açın kopyaladığınız kod birinde olsun, sizde ona bakarak diğer sayfaya yazın o zaman sizde göreceksiniz yazılımın ne kadar basit ve eğlenceli olduğunu. Belkide dersiniz nereden biliyorsun.. Bende tıpkı sizin gibi başladım internetten araştırarak, kopyalayarak, anlayarak varsa düşündüğünüz projeler yada fikirler bize ulaşın, birlikte yapalım, yardımcı olalım ama yeter ki yapalım.. Galiba bu sefer çok konuştum 🙂 Bu yazıyıda burada bitirelim.. 🙂
Bir yazının daha sonuna geldik umarım faydalı olmuştur .. Anlamadığınız veya kafanıza takılan yerler olursa yorumda veya kişisel sosyal medya hesaplarımdan ulaşabilirsiniz. Konu ile ilgili video eğer istenirse en kısa sürede yazıya eklenecektir. Kolay gelsin 🙂
Yorum Yap