in , ,

BeğendimBeğendim

ARDUİNO İLE JOYSTİCK MODÜLÜ KULLANARAK ÇİFT SERVO KONTROLÜ

Merhaba arkadaşlar arduino ile projelerimizde oldukça hızlı ilerlemeye çalışıyoruz. Bu yazımızda bir arduino ile joystick kullanarak iki servo nasıl kontrol edilir bunu öğreneceğiz. Eğer joystick kullanımını bilmiyorsanız “Arduino ile joystick kullanımı” yazımızda anlatmıştık buradan ayrıca bakabilirsiniz.. 🙂

Bugün ki projemizden bahsedeyim sizlere, joystickle servo kontrolünü nerelerde kullanabiliriz falan işte. 🙂

Bu projeyle robot kol yapılabilir yada rc bir aracınız vardır hani şu benzinlilerin den (Normal uzaktan kumandalı da olur tabiki de 🙂 sadece gaz çubuğu yerine npn bağlamanız gerekir.. ) servonun birini direksiyona birini de gaza bağlayabilirsiniz daha önceki yazımızda da anlattığımız gibi modül içinde pot barındırdığından gaz hassasiyetini rahatlıkla ayarlayabilirsiniz.. Yada bir kepçe yapar kum falan kazarsınız.. Bu size kalmış ama tabi bunları yapabilmeniz için bu proje biraz daha geliştirilmeli diye düşünüyorum mesela kablosuz kontrol edebilmelisiniz. Nasıl yapacağız dediğinizi duyar gibiyim 🙂 ama içiniz rahat olsun bu modülle yapılabilecek bir çok projeyi yapacağız.. Eğer varsa istediğiniz önce şunu yapalım derseniz bize bildirin yapalım 🙂

Çok konuşmadan projeye geçeyim istiyorum.. Galiba sizde öyle 😀

Ben hazır modül almamıştım bildiğiniz üzere (tabi eski yazımızı okuduysanız… ) bu projede onu kullandım. Bence sizde bu tür geri dönüşümler yapmalısınız hem paranızdan tasarruf hemde bu tür hurdaları çalıştırıp kullanabilmek gerçekten güzel bir his veriyor 🙂

Modülün çıkış uçlarını buldum ve jumper kablolar bağladım aşağıda gördüğünüz gibi..

Biraz ilkel ama idare eder. 🙂 Şimdi malzeme lisyesine geçelim.

Malzeme Listesi

1- Herhangi bir arduino modeli

2- Joystick modülü

3- 2 adet servo motor

4- led ve led için direnç 220 Ohm

5- PullDown direnci için 10 K direnç

ARDUİNO İLE JOYSTİCK MODÜLÜ KULLANARAK ÇİFT SERVO KONTROLÜ DEVRE ŞEMASI

Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.

Eğer sizde fark ettiyseniz bu devre bize şu yazımızda anlattığımız pot ile servo kontrolünü hatırlattı… Hatırlattı değil mi 🙂 Neyse hatırlamadıysanız tekrar okuyabilirsiniz.. Bu proje arduino ile pot servo kontrolünü dahada pekiştireceğiz.

Minik Not: Gördüğünüz üzere devrede iki tane güç kaynağı var önemli olan nokta ise GND uçları birbirine bağlanmalıdır.

Neredeyse unutuyordum gördüğünüz üzere birde puştun dan butonumuz var 🙂 haliyle birde pull down direnci. Sanırsam bunu da şu yazımızda anlatmıştık. Devre oldukça basit, şimdi sıra yazılımda..

YAZILIM

Devreyi kurduktan sonra alt tarafta yer alan kodları Arduino kartımıza yükleyelim..

Bu modülle çalışabilmek için bir kütüphaneye ihtiyaç duymuyoruz..

Devreyi kurduktan sonra alt tarafta yer alan kodları Arduino kartımıza yükleyelim. 

KOD

//DONANIM PLUS ELEKTRONİK
//TASARIM TOLGA SOYTEPE
//JOYSTİCK İLE ÇİFT SERVO KONTROLÜ
//2019
#include <Servo.h> // SERVO KÜTÜPHANESİNİ EKLİYORUZ

int yatayservo = 3; // YATAY SERVO PİNİ
int dikeyservo = 4; // DİKEY SERVO PİNİ
int yataypotpin = A0; //JOYSTİCK YATAY POT PİNİ
int dikeypotpin = A1; // JOYSTİCK DİKEY POT PİNİ
int yatayservoMin = 0; // YATAY SERVO MİNİMUM DEĞERİ
int yatayservoMax = 180; //YATAY SERVO MAX DEĞERİ
int dikeyservoMin = 0; // DİKEY SERVO MİN DEĞERİ
int dikeyservoMax = 180; // DİKEY SERVO MAX DEĞERİ

int pushButton = 5; // JOYSTİCK BUTON PİNİ
int led=10; // BUTON İLE YAKACAĞIMIZ LED PİNİ

Servo YatayServo; // YATAY VE DİKEY SERVOLARI TANIMLADIK
Servo DikeyServo;
 
int YatayPotDegeri;
int YatayServoPozisyon; // POZİSYONLARI ATAYACAĞIMIZ DEĞİŞKENLERİ TANIMLADIK
int DikeyPotDegeri;
int DikeyServoPozisyon;
 
void setup()
{
  YatayServo.attach(yatayservo);
  DikeyServo.attach(dikeyservo); // GEREKLİ GİRİŞ ÇIKIŞLARI BELİRLEDİK
  pinMode(pushButton, INPUT);
  pinMode(led,OUTPUT);
  
}
 
void loop()
{
int buttonState = digitalRead(pushButton); // BUTONDAN HIGH DEĞERİ GELİYORSA YAK KOŞULUNU OLUŞTURDUK
  if(buttonState==HIGH){
    digitalWrite(led,HIGH);
    }
    else
    {
      digitalWrite(led,LOW);
      }
    
  YatayPotDegeri  = analogRead(yataypotpin);// ANALOG DEĞERLERİ OKUYUP DEĞİŞKENLERE YAZDIRDIK
  DikeyPotDegeri  = analogRead(dikeypotpin);
  
  YatayServoPozisyon  = map(YatayPotDegeri, 0, 1023, yatayservoMin , yatayservoMax); //POTTAN GELEN 0-1023 DEGERİNİ 0-180 E ORANLADIK
  DikeyServoPozisyon  = map(DikeyPotDegeri, 0, 1023, yatayservoMin , yatayservoMax);
  
  YatayServo.write(YatayServoPozisyon); // ÇIKAN SONUÇLARI SERVOLARA YAZDIRDIK
  DikeyServo.write(DikeyServoPozisyon);
  delay(10); // ARDUİNONUN SAĞLIKLI ÇALIŞABİLMESİ İÇİN 10 MS'LİK BİR BEKLEME SÜRESİ EKLEDİK
}

Projede kullanılan yazılım kodlarını buradan indirebilirsiniz 🙂

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 🙂

Yazar Tolga Soytepe

Ara sıra yazılımcı :)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

ARDUİNO İLE JOYSTİCK KULLANIMI

Arduino İle Kedi Oyun Lazeri Yapımı