Arduino Servo Motor Kullanımı

Arduino Servo Motor Kullanımı

Bu yazımızda bir motor çeşidi olan servo motorları inceleyecez ve projeler yapacaz. Hadi başlayalım.

Servo Motor Nedir ?

Servo motorlar oldukça çok kullanım alanına sahip olan, 0 ile 180 derece arasında dönüş açısına sahip olan motor çeşitleridir. Bu motor çeşidindi RC araçların sağa veya sola dönmesi, bir kolun kısıtlı şekilde hareketi gibi yerlerde kullanılır. Genelde 0ile 180 derece hareket etmektedirler fakat özel servo motorlarında bu değer 0 ile 360 arasına kadar çıkmaktadır.

Servo motor

Servo motorlar kendi içlerinde oldukça çeşit ve yapıya sahiptir. Servo motorlar kuvvetleri ile ölçülür. Örneğin benim bu projede kullanacağım ve yukarıda resimdeki servo motor 9 gr kuvvete karşılık vermektedir. Bunun ihtiyaca göre daha büyükleri bulunur.

20 Kg Servo Motoru

Servo motorlar aslında basit bir şekilde bir motor, bir potansiyometre ve sürücüden oluşmaktadır. Potansiyometre acıyı belirler ve sınırsız dönüşü engeller. Servo motorlar hakkında birazcik bilgi edindiğimize göre projemize başlayalım.

Proje 1

Bu projemizde servo motor sürekli olarak 0 ile 180 derece arasında döndürecegiz ve böylelikle servo motorumuz hangi açılarda çalıştıgını görmüş olacaz. Malzemeleri sıralamak ile başlayalım;

  • 1 Adet Arduino Uno
  • 1 Adet servo motor
  • Jumper kablolar

Bu malzemeler ile yapacağımız servo motor projesine kod satırlarını oluşturmakla başlayalım. Burada önemli olan ve bilinmesi gereken ise servo.h kütüphanesine dikkat etmemizdir. Simdi kod satırlarını oluşturalım.

//omerfarukyildiz.com
#include<Servo.h> // servo kutuphanesini tanımladık.
int deger; // Deger adında degişken tanımladık.
Servo servo; // Servo kutuphanesinden servonun bacagını tanımladık.
void setup()
{
servo.attach(8); // servomuz digital pininin bağlı oldugunu pin belirttik ve açtık. 
}
void loop()
{ 
for(deger=0;deger<=180;deger++){ // Burda ise for ile 0 derecen başlayıp 180 dereceye kadar hareket etmesini sağladık. 
servo.write(deger);
delay(10); 
}
  delay(1000);
  
  for(deger=180;deger>=0;deger--){  //Burda ise for ile 180 derecen başlayıp 0 dereceye kadar hareket etmesini sağladık. 
servo.write(deger);
delay(10);
}
  delay(1000); // yukarıda işlemler bitince 1 saniye mola verecek ve işlemler tekrar devam edecek. 
}

Yukarıda servo kutuphanenesi yardımıyla ve for yapısı ile ilk önce servonun deresini 0 dan artırarak 180 getirdik. Daha sonra ise sınıra gelen servoyu 180 den tek tek düşürerek 0 dereceye getirmiş olduk. Daha sonra ise bu işlemler bitince 1 sanşye bekledikten sonra aynı işlemler tekrar tekrar edilecektir.

DİKKAT: Servo.h kütüphanesini Arduino programından Araçlar>kütüphane Yönet’e tıkladıktan sonra Servo.h yazıp arattıktan sonra servo başlıklı kütüphane indirmeniz gerekmektedir. Bu işlemi yapmazsanız kodunuz çalışmayacaktır.

Bu işlemleri gerçekleştirdikten sonra ise sırada şemayı oluşturma işlemi var;

Proje 1 Şeması

Yukarıdaki şekilde oluşturduğumuz şemaya Yukarıda oluşturduğumuz Arduino kodunu yerleştirdiğimizde servo motor 0 dan 180 derece dönecek ve ardından aynı şekilde fakat tam tersi yöne şekilde devam edecektir.

Proje 2

Bu projemizde ise Servo motorları joystick modulu ile kullanmayı ele alacaz. Şimdi malzemeleri listeleyelim;

  • 1 Adet Arduino Uno
  • 1 Adet breadboard
  • 2 Adet Servo motor
  • Jumper kablolar

Bu proje için malzemeleri sıraladığımıza göre hadi kod satırlarını oluşturmaya başalayalım.

#include <Servo.h> //servo kutuphanesi tanımladık.
int servox = 8; //X ekseninin servosunu tanımladık.
int servoy = 9; //Y ekseninin servosunu tanımladık.
int xekseni = A0; //Joystickten gelen x ekseninin tanımladık.
int yekseni= A1; //Joystickten gelen x ekseninin tanımladık.
int servoacimin = 0; // Servo degerlerinin acısını sınırlanırını belirledik.
int servoacimax = 180; // Servo degerlerinin acısını sınırlanırını belirledik.
Servo servoydeger; //Kutuphaneden tanımlama yapıyoruz.
Servo servoxdeger; //Kutuphaneden tanımlama yapıyoruz.
int deger1; // Gerekli degişkenleri tanımlıyoruz.
int deger2;
int deger3;
int deger4;
void setup()
{
servoydeger.attach(servox); //Servo hareketi için gerekli olan portlar açılıyor.
servoxdeger.attach(servoy); //Servo hareketi için gerekli olan portlar açılıyor.
}
void loop()
{
deger1 = analogRead(xekseni); //deger1 degişkenine analog deger tanımlanıyor.
deger3 = analogRead(yekseni); //deger3 degişkenine analog deger tanımlanıyor.
deger2  = map(deger1, 0, 1023, servoacimin , servoacimax); //deger 2 degişkeninde x servosunun sınırları belirleniyor.
deger4  = map(deger3, 0, 1023, servoacimin , servoacimax); //deger 4 degişkeninde y servosunun sınırları belirleniyor.
servoydeger.write(deger2); 
servoxdeger.write(deger4);
  delay(10); // bu islemlerin süresi 1 milisaniye olarak belirleniyor.
}

Yukarıda oluşturduğumuz kod satırlarında kütüphane dikkat etmemiz gerekmektedir. Bunun haricinde yabancı olduğunuz fonksiyonlar ise servo motorun kütüphanesinden çekilen fonksiyonlardır.  Yukarıda oluşturduğumuz kodlara uygun şimdi şemayı oluşturalım.

Proje 2 Devre Şeması

DİKKAT: Eğer elinizde bu joystickten bulunmuyor ise aşağıdaki fotoğraftaki Joystickten bulunuyor ise aşağıda oluşturduğumuz bağlantı şemalarına dikkat ederek yapınız.

Joystick

Eğer elinizde bundan bulunmakta ise Kablo bağlantıları şu şekilde yapınız;

  • GND  —> GND pini
  • +5V   —> 5V pini
  • VRx   —> Analog0
  • VRy   —> Analog1

şeklinde bağlarsanız yaptımız proje sıkıntısız çalışacaktır. Bu yazımızda servo motorları başit bir şekilde anlatamaya ve çeşitli projeler anlatamaya çalıştık.

Diğer Arduino yazılarımıza ulaşmak için Tıklayın.

Java programlama dili derslerimiz için Tıklayın.

Bize yorum yaparak ve sosyal medya adreslerimizden takip ederek destek olabilirsiniz.

Yazı gezinmesi

Mobil sürümden çık