29 Mart 2024 Cuma
Arduino Projeleri

Arduino ile Servo Motor Kullanımı

1.6kviews

Merhaba Toprak Hattı takipçileri

Bu gün arduinonun ve teknolojinin olmazsa olmazı servo motor kullanımını öğrenicez.

Öncelikle servo motoru tanıyalım:

Servo motor 0 ila 180 derece arasında 1 derece hassasiyetle dönebilen motor çeşididir. Tam tur atamaz. Genellikle robot kol gibi tam tur dönmesine gerek olmayan, hassas açılı yerlerde kullanılır. Servo motor içerisinde bir adet DC motor bulunur. DC motorun ucuna bağlı dişli sisteminin yardımıyla servo mili daha fazla yük kaldırabilmektedir. Bu işlem sırasında servonun dönüş hızı da yavaşlamış olur. Kullanılan dişli sistemine göre servo motorların kaldırabileceği yük değişir.

Servoların kaldırabileceği yük tork gücü üzerinden ifade edilir. Servo motorların torku, motor miline bağlı 1 cm uzunluğundaki çubuğun kaldırabileceği maksimum yük olarak tarif edilir.

Piyasada bulunan servolar genellikle 1,4 kgf.cm torka sahiptir. Bu da demek oluyor ki, motor milinize bağlı 1 cm uzunluğunda bir çubuk varsa ve bu çubuğun ucuna bağlı yük 1,4 kilogramdan fazlaysa motorunuzun gücü mili döndürmeye yetmez.

Eğer çubuğun uzunluğu 10 cm ise en fazla 140 gram kaldırabilirsiniz.

Kaliteli dişli sistemine sahip daha güçlü servo motorlar da vardır. Projede kullanılacak servo motorun seçimi, taşıyacağı maksimum yüke göre yapılmalıdır.

Servo motorun üç adet bağlantı kablosu bulunmaktadır. Bu kablolar genellikle kırmızı, turuncu (bazen sarı) ve siyah (bazen kahverengi) olmaktadır. Bu renkler kabloların görevini göstermektedir. Kırmızı renk besleme (genellikle 5 volt) bağlantısını, siyah veya kahverengi renk de toprak bağlantısını göstermektedir. Geriye kalan turuncu kablo ise motorun açısını belirleyecek olan veri bağlantısıdır.

Motorun dönüş açısının belirlenmesi için veri hattı üzerinden PWM adı verilen özel kare dalga sinyalleri yollanmaktadır. PWM sinyali belirli bir süre 5 volt, belirli bir süre 0 volt düzeyinde verilen gerilimdir. 5 volt düzeyinde geçen süreye “görev zamanı”, toplam süreye de “PWM periyodu” denir. Servo motorun kontrolü için ayarlanmış özel görev zamanları ve PWM periyotları vardır. Bu ayarlar dışındaki PWM sinyalleri servo motoru düzgün çalıştıramaz.

Arduino’nun servo.h kütüphanesini kullanarak servo motorları kontrol edebiliriz. Bu kütüphaneden kullandığımız bazı fonksiyonlara değineceğim.

servomotor.attach(pin) fonksiyonunda servo motorun hangi pinden sinyal alacağını belirleriz.

servomotor.write(pos); fonksiyonunda servo motorun açısını ayarlamak için kullanılır.

Artık yukardaki genel bilgiyi devreye dökme vakti geldi ne dersiniz?

Malzeme Listesi:

  • 1 Adet Servo Motor
  • 1 Adet Arduino
  • 1 Adet 100k Potansiyometre
  • Yeteri Kadar Jumper Kablo

Devre Şeması:

 

Bağlantı şemasından da anlaşılacağı üzere uygulama devremiz potansiyometre ile servo motor kontrolü.

Gerekli devre kodları:

/*
////////////////////////////////////////////
/           MEHMET DUSGUN                  /
/ www.toprakhattı.com/servo-motor-kontrolu /
/         tarih 2018.01.23                 /
////////////////////////////////////////////
                                          */
#include <Servo.h>

Servo servoM;  // Servoyu kontrol etmek için nesnemizi oluşturuyoruz.

int potpin = A5;  // Potansiyometremizi bağladığımız analog pinimiz belirtiyoruz.Pot A5'a bağlı diyoruz yani
int val;    // Analog pinden gelen değeri tutacağımız değişken,tipi integer

void setup() {
  servoM.attach(11);  // Servonun bağlandığı pini belirtiyoruz.
}

void loop() {
  val = analogRead(potpin);            // Potansiyometreden gelen değeri okuyoruz. Bu değer 0 ile 1024 arasında
  val = map(val, 0, 1023, 0, 180);     // Bu okunan değeri 0 ile 180 arasına oranlıyoruz.
  servoM.write(val);                   //Servonun 0 ile 180 derece arasında belirlenen değere göre hareket etmesini sağlıyoruz.
  delay(15);                           // devrenin sağlıklı işlemi için kısa bir bekleme
}

Elimizden geldiğince en temeli olarak anlatmaya çalıştım arkadaşlar. Aklınıza takılan kısım olursa soru sormaktan çekinmeyin. Cevaplamaktan son derece memnun oluruz.

Leave a Response

mdusgun
Don't keep up on your dreams. Keep sleeping.