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...

#19 | HC06 Bluetooth Modülüyle 3 LED Yakalım! (Detaylı Anlatım)

  Kod ve Devreyi indirmek için tıklayınız! HC05/06 Bluetooth Modülü Herkese merhaba bugün HC06 Bluetooth modülünü kullanarak 3 tane LED yakma projesini yapacağız. Artık neredeyse hepimizin elinde akıllı telefon mevcut. akıllı telefonumuz aracılığıyla Bluetooth üzerinden evimizdeki ışıkları, robotları veya yaptığımız devreleri kontrol edebiliriz. Bluetooth modüller Arduino kablosuz iletişiminde yaygın olarak kullanılan modüllerden biridir ve genellikle HC05 ve HC06 modülleri karşımıza çıkar. Bu modüller fiziksel tip olarak birbirlerine benzerdir. Fakat HC05 Bluetooth modülü 6 pinli HC06 modülüyse 4 pinlidir.  Özellik olarak aralarındaki tek fark ise HC05 modülünün kendisine gelen isteklere cevap verirken aynı anda başka bluetooth cihazlarına  bağlanabilmesidir.  HC06 ise sadece kendisine gelen istekleri kabul edebilir fakat başka bluetooth kartına bağlatı isteği gönderememektedir.  HC05 Bluetooth modülünün çalışma türüne Master-Slave ; HC06 modülünün türü ise s...