Kaydol
Giriş Yap
Parolanızı mı unuttunuz

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Üzgünüz, gönderi ekleme izniniz yok.

ARDUİNO İLE JOYSTİCK KULLANIMI

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. 🙂

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-modülü-özellikleri

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

İlginizi Çekebilecek Diğer Yazılar