Joystick ile Servo Motor Kontrolü


19.02.2019 15:01:29 Elektronik Projeler Bilgi Yolunda

Evet geldik değerli projelerimizden bir tanesine.Joystick ile çift servo kontrolü gerçekleştireceğiz.360 derece görüşlü kamera yapmayı düşünüyorsanız kullanabilirsiniz.

Joystick İle servo motor kontrol robotlarda en çok kullanılan uygulamalardan bir tanesi hem kullanım kolaylığı hemde ucuz olması tercih sebebidir.Daha yeni dijital kontrol sistemlerine göre mekanik hassasiyeti olduğundan kullanımda ergonomi ön plandadır.Bu projemizde de 2 tane servo motorun bir Joystick ile kontrolü nasıl olur bundan bahsedeceğiz.

Bu uygulama ile isterseniz bir robot kol projesi yapabilirsiniz.İki tane joystick ile toplamda 6 tane servo motor kontrol edebilirsiniz.Robot kol projesinde de 5 tane servo motor bulunmakta kolaylıkla kontrol sağlayabilirsiniz.Aşağıdaki kodu düzenleyip robot kola uyarlayabilirsiniz.


Malzemeler

  • Arduino UNO
  • 9g Servo Motor
  • Arduino Joystick
  • Breadboard
  • Jumper Kablolar

Devre Şeması

Bağlantılarınızı aşagıdaki gibi yapınız.


Devre şemamızı tasarladıysak artık kodlarımızı yazmaya başlayabiliriz.

Devre Kodları

#include <Servo.h>

Öncelikle Servo Kütüphanemizi kodumuzun en üst kısmına ekliyoruz.

int ServoHorizontalPin = 3;
int ServoVerticalPin = 4;

Servolarımızı 3.ve dördüncü pine bağloyoruz.Bir servomuz yatay hareketi sağlarken diğeri dikey hareketimizi sağlayacak.

int HorizontalPotPin = A0;
int VerticalPotPin = A1;

Joystick modülümüz yatay ve dikey eksende arduino üzerinden anolog pinler üzerinden haberleşir bunları tanımlıyoruz.

int ServoH_Min = 0;
int ServoH_Max = 180;
int ServoV_Min = 0;
int ServoV_Max = 180;

Servomuzun max. dönüş açısını belirledik.

Servo HorizontalServo;
Servo VerticalServo;

int HorizontalPotValue;
int HorizontalServoPosition;
int VerticalPotValue;
int VerticalServoPosition;

İki servo değişkeni oluşturduk ve servoya değerler atamak üzere joystick ten okuyacağımız değerleri tutacak değişkenler tanımladık.

void setup() { HorizontalServo.attach(ServoHorizontalPin); VerticalServo.attach(ServoVerticalPin); } 

Yeni oluşturduğumuz servo değişkenlerinin hareketlerini 3 ve 4. pinden gelecek değerler belirleyecek.

void loop()
{
HorizontalPotValue = analogRead(HorizontalPotPin);
VerticalPotValue = analogRead(VerticalPotPin);
HorizontalServoPosition = map(HorizontalPotValue, 0, 1023, ServoH_Min , ServoH_Max);
VerticalServoPosition = map(VerticalPotValue, 0, 1023, ServoH_Min , ServoH_Max);
HorizontalServo.write(HorizontalServoPosition);
VerticalServo.write(VerticalServoPosition);
delay(20);
}

Anolog pinlerden aldığımız değerler servolarımızın dönüş değerini belirleyecek.Oluşturmuş olduğumuz kameramız geniş bir pin alanına sahip olacak.

Projenin kaynak kodlarını buradan indirebilirsiniz.

Buraya kadar geldiysenz projeniz sorunsuz olarak çalışmaktadır.Tebrikler.Smile


Robotik Kodlama Eğitimi



Yorum Yap :


Robotik Kodlama Eğitimi

Site içi Arama


En Çok Okunanlar

Sorusu Olan Varmı?

Paylaştıgım video,dosya yada projelerle ilgili sorularınızı buradan sorabilirsiniz.
Not:Projemi siz yaparmısınız demeyin lütfen :)

Sorunuz mu var?