Ana içeriğe atla

# 11 | Joystick ile 2 Servo Motor Kontrolü


Servo Motor Nedir? Nasıl Çalışır?



Yapı olarak dc veya ac motor tiplerine benzeseler de bu sistemlere ek olarak iç yapısında bir potansiyometre ve motor milinin konumunu ölçen bir kontrol devresi bulunur. Ayrıca servo motor 3 bağlantı ucuna sahiptir. GND(toprak), 5V, Sinyal pinleri.  Bunlardan ikisi motoru çalıştırırken diğer ucu ise sistemin giriş birimine motor şaftının konumunu bildirir.

DC Servo Motor

DC Servo motorun içerisinde bir adet dc motor bulunmasından dolayı dc servo motor ismini almıştır. Fakat dc motora ek olarak bir kontrol devresi ve çıkışında mil görevi gören bir potansiyometre ile dc motorun milini kontrol eder.

Potansiyometre

Dönme momentine göre lineer bir direnç artışına sebep olur. Bu özelliğinden faydalanılarak potansiyometrenin o anki direnç değerine göre servo motorun anlık konumu belirlenir. Tüm bu işlemleri yapan kısım ise dc servo motorda kontrol devresi olarak anılır.

Kontrol Devresi

Potansiyometrenin direnç değerine göre servo motorun o an hangi açıda bulunduğunu tespit eder. Bu görevinin dışında servo motorun sinyal ucundan gelen bilgiye göre gitmesi gerektiği konumu belirler.

Eğer servo mili sinyal ucundan gönderilen açıda ise motor çalışmaz. Çalışıyorsa da içerisindeki dc motorun çalışmasını durdurur. Fakat kontrol devresi motorun  istenilen açıda olmadığını tespit ederse doğru açıyı yakalayana kadar motor hareket etmeye başlar. Fakat bu çalışma o kadar hassas işler ki istenilen açı yakalandığı anda çok küçük hata payı ile motoru durdurur. Bu işlemi ise açıya yaklaşıldıkça dc motorun hızını düşürerek yapar. Yani eğer mil büyük bir uzaklık kat edecekse, motor bütün gücüyle çalışacaktır  Eğer küçük bir açı için hareket edecekse motor daha yavaş dönecektir. Buna orantısal kontrol denir ve bu kontrol potansiyometre ile sağlanmaktadır.

PWM Sinyali

Motora yazılımsal olarak dönme miktarı ise PWM modülü ile belirlenir. PWM sinyali kare dalgalardan oluşur. Kare dalga 1 konumunda iken motora güç gider. 0 konumuna geldiğinde ise motora güç gitmez. Servo motorlarda açısal hareketin gerçekleşmesi için bir kare dalga 20 mili saniyeden oluşan palse şeklinde gönderilmesi gerekir aksi taktirde çalışmaz. Servo motorların açısal adım sayıları ise iki şekilde belirlenir.1-2 ms arasında gönderilen palse yada 1,25-1,75 arasında gönderilen palse miktarı ile belirlenir. Yani açı palse değerleri standarttır. Bu değerlere uygun 20 ms’lik palseler üreterek dc servo motorların kontrolü sağlanır.


Joystick Nedir? Nasıl Çalışır?

Joystick basitçe mekanik bir düzlemsel hareketi  elektriksel bir değere dönüştürülmesi için kullanılır. Bunun için de 2 adet “ayarlı direnç” – potansiyometre  kullanılır. Birisi mekanik olarak “x” diğeri de “y” yönünde hareketi algılar. Bunlar mekanik olarak birbirine bağlı olduğu için x ve y yönünde hareket ettirildiğinde hareket ettirilen mesafeye orantılı olarak direnç değeri değişir.

Şimdi aşağıdaki şekilde görüldüğü gibi bu dirençlerin bir ucunu +5V diğer ucunu da 0V (GND) ye bağlarsak dirençlerin orta bacakları bize pozisyonla orantılı olarak bir voltaj değeri verecektir. Örneğin her iki direnç te orta pozisyonda ise dirençlerin orta bacaklarından yaklaşık 2,5V alacağız. Jostick’i bir yöne doğru itince yönüne bağlı olarak ya 5 volta doğru yükselecek ya da 0 Volta doğru gidecek.

Biz de bunu Arduinonun AD çeviricisine bağlarsak buradan bir dijital pozisyon verisi elde edebiliriz.

Tabii burada Joystick’in mekanik yapısına bağlı olarak sıradan bir potansiyometre  ile yapılmış ise +5Volt ve 0 volt skalasında kullanılmasına aşağıda soldaki şekilde görüldüğü gibi imkân yoktur.


DEVREMİZ


KODLAR


#include <Servo.h>
Servo motor1;
Servo motor2;
void setup() {
  motor1.attach(5);
  motor2.attach(6);
}
void loop() {
  int x=analogRead(A0);
  int y=analogRead(A1);

  int xmap=map(x,0,1023,0,180);
  int ymap=map(y,0,1023,0,180);

  motor1.write(xmap);
  motor2.write(ymap);
  }

Yorumlar

Bu blogdaki popüler yayınlar

#9 | Lazerli Güvenlik Sistemi Nasıl Yapılır?

  Odanız için basit bir lazerli güvenlik sistemi kurmak ister misiniz? Şimdiye kadar öğrendiğimiz kod yapıları ve sensörleri kullanarak çok rahat tasarlayabilirsin. Lazer ışığının algılanabilmesi için LDR kullandım. LDR lazer ışığını alamadığında yani lazerin önünde bir şey geçtiğinde Arduino buna tepki verecektir. Böylece kapıdan birinin girip girmediğini anlayabilirsiniz. Daha önceden de öğrendiğimiz gibi LDR ışığın şiddetiyle değişen bir dirençtir. LDR çıkışı Arduino'nun analog girişine bağlanmıştır. Arduino analog girişini sürekli kontrol etmelidir. Eğer analog girişin değeri belirli bir değerin altına düşer ise Arduino, lazer ışığı ile LDR arasından bir şey geçtiğini anlayacaktır. DEVRE KODLAR int led = 4 ; int buzzer = 5 ; int ldr = A4 ; void setup ( ) {   Serial . begin ( 9600 ) ;   pinMode ( led , OUTPUT ) ;   pinMode ( buzzer , OUTPUT ) ; } void loop ( ) {   int ldrdeger = analogRead ( ldr ) ;   Serial . println ( ldrdeger...

Keypad Nedir? Nasıl Kullanılır?

  KEYPAD NEDİR? NASIL ÇALIŞIR? Keypadler kapı kilidi, atm, hesap makinesi, güvenlik sistemleri , asansör gibi bir çok cihazda yaygın olarak kullanılmaktadır.  Keypad’teki tuşlar satır ve sütun halinde düzenlenmiştir. 4X4 tuş takımında 4 satır ve 4 sütun vardır. Aşağıdaki şekle dikkat edilirse bir butona basıldığında o butonun bulunduğu satır ve sütunlara ait uçların birbirleriyle bağlandıkları görülür. Örneğin 6 tuşuna basıldığında 2. satır ve 3. sütun birbirine bağlanır veya ‘2’ tuşuna basıldığında 1. satır ile 2. sütuna ait uçlar birbirlerine bağlanır.  8 tane iki uçlu jumper kablomuzu alalım. Ardından sırasıyla soldan başlayarak kablolarımızı keypad'e yerleştirelim. Bu prensipten faydalanılarak mikrodenetleyiciler satır ve sütunlara bağlı olan pinlerini sürekli kontrol eder. Bu sayede tuş takımından basılan tuşlar mikrodenetleyici tarafından algılanarak işleme tabi tutulabilir.  Artık keypad hakkında gerekli her şeyi bildiğimize göre, onu Arduino ya bağlamay...