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.
İçindekiler
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 🙂
Yorum Yap