Merhaba arkadaşlar, bu uygulamamızda daha önce kullanmasını öğrendiğimiz Joystick Modülünden okuduğumuz açı bilgisine göre Servo Motorları kullanacağız.


Joystick Modülü, temel olarak 2 adet potansiyometre ve 1 adet push button’dan oluşmaktadır. Arduino’ya 0 ve 1023 değerleri arasında veriler gönderebiliyor. Ve servo motorlarımıza bu veriyi açı olarak yansıtabilmemiz için map() fonksiyonunu kullanarak bu değerleri 0 ve 180 derece açılar arasına taşımamız gerekiyor.


Malzeme Listesi:


Bağlantı Şeması:

Not: Bu şemadaki Joystick Modülü Robolink Market’ten alacağınız Joystick Modülüne göre farklı pin sıralaması bulundurmaktadır. Bu şema, size gönderilen Joystick Modüllerinin pin sırlamasına göre çizilmiştir. Eğer elinizde pin sıralaması farklı olan bir Joystick Modülü varsa pin bağlantıları şu şekilde olmalıdır: GND -> GND, +5V -> +5V, VRX -> A0, VRY -> A1. Bu projede SW pinine sahip butonu kullanmayacağız.


Kod:

#include <Servo.h> //Servo motorlarımızı kullanmamız için gerekli olan kütüphaneyi dahil ediyoruz
Servo servo1; // İlk servomuza servo1 ismini veriyoruz
Servo servo2; //ikinci servomuza servo2 ismini veriyoruz
int x_ekseni = 0; //X eksenimizin Analog 0 pinine bağlı olduğunu tanımlıyoruz
int y_ekseni = 1; //Y eksenimizin Analog 1 pinine bağlı olduğunu tanımlıyoruz
int servoDeger; //Servo motorlarımıza açı verecek olan değişken ismini servoDeger olarak tanımlıyoruz
void setup()
{
servo1.attach(3); //İlk servomuzun Dijital 3 pinine bağlandığını tanımlıyoruz
servo2.attach(5); //İkinci servomuzun Dijital 5 pinine bağlandığını tanımlıyoruz
}
void loop()
{
servoDeger = analogRead(x_ekseni); //Joystick modülümüzün X ekseninden gelen verilerini okuyoruz ve servoDeger değişkenine tanımlıyoruz
servoDeger = map(servoDeger, 0, 1023, 0, 180); //Joystick modülümüzden gelen verileri 0 ve 180 derece açıları arasına dönüştürüyoruz
servo1.write(servoDeger); //0 ve 180 derece açıları arasına dönüştürdüğümüz değeri servomuza yazdırıyoruz
servoDeger = analogRead(y_ekseni); //Joystick modülümüzün Y ekseninden gelen verilerini okuyoruz ve servoDeger değişkenine tanımlıyoruz
servoDeger = map(servoDeger, 0, 1023, 0, 180); //Joystick modülümüzden gelen verileri 0 ve 180 derece açıları arasına dönüştürüyoruz
servo2.write(servoDeger); //0 ve 180 derece açıları arasına dönüştürdüğümüz değeri servomuza yazdırıyoruz
delay(15); //Verilerin sağlıklı bir şekilde okunması için 15 milisanye bekleme süresi tanımlıyoruz
}

Başlangıç:

Kodumuzu Arduino’ya yükleyelim. Yükleme tamamlanınca Joystick Modülümüzü elimize alalım ve yavaşça X ve Y eksenlerinde hareket ettirelim. Biz hareket ettirdikçe Servo motorlarımızın da hareket yönüne ve açısına bağlı olarak dönmeleri gerekiyor. Eğer bu proje sırasında bir problemle karşılaşırsanız lütfen yorum yazmaktan çekinmeyin. Size yardımcı olmayı çok isteriz 🙂

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz