Arduino Uno ile DC Servo Motor Uygulaması-1
Servo, mekanizmalardaki açısal-doğrusal pozisyon, hız ve ivme kontrolünü hatasız bir şekilde yapan tahrik sistemidir. Başka bir deyişle hareket kontrolü yapılan bir düzenektir. Servo motorlar, robot teknolojilerinde en çok kullanılan motor olmakla birlikte, RC (Radio Control) uygulamalarda da kullanılır. RC servo motorlar ilk olarak uzaktan kumandalı model araçlarda kullanılmıştır. Servolar, istenilen pozisyonu alması ve yeni bir komut gelmediği sürece bulunduğu pozisyonu değiştirmemesi amacıyla tasarlanmıştır.
Görsel 1.1: SG90 mikro servo motor
Servo motor içerisinde küçük bir DC motor, dişli yapısı, karşılaştırıcı devre ve potansiyometre bulunur. Dönüş açısı 0-180 derecedir. Servo motorların içerisinde motorun hareketini sağlayan bir DC motor bulunur. Bu motorun dışında bir dişli mekanizması, potansiyometre ve bir motor sürücü devresi bulunur. Potansiyometre, motor milinin dönüş miktarını ölçer. Servo içerisindeki DC motor hareket ettikçe potansiyometre döner. Kontrol devresi motorun bulunduğu pozisyon ile istenilen pozisyonu karşılaştırarak motor sürme işlemi yapar. Servolar diğer motorlar gibi harici bir motor sürücüye ihtiyaç duymadan çalışır. Genellikle çalışma açıları 180° ile sınırlıdır ancak 360° çalışma açısına sahip özel amaçlı servo motorlar da vardır. Servolar genellikle 4,8-6 V gerilimle çalışır. 7,4 V ve daha yüksek gerilimle çalışan servolar da vardır.
Çalışma Prensibi
Servo motorlar PWM (Darbe Genişlik Modülasyonu) sinyal ile çalışır. PWM sinyaller bir mikrodenetleyiciden veya uzaktan kumandadan sağlanabilir. Servo, her 20 msn içinde bir pals değeri okur. Pals uzunluğu motorun dönüşünü belirler. Örnek olarak 1,5 msn’lik bir pals, motorun 90 derece pozisyonunu almasını sağlar (nötr pozisyon). Servolar hareket etmeleri için bir komut aldıklarında önce istenilen pozisyona hareket eder. Sonra o pozisyonda kalırlar. Servolar bulundukları pozisyonu korurken kendilerine dışarıdan bir güç uygulandığında bu güce direnirler. Bulundukları konumu sonsuza kadar koruyamazlar. Pozisyonlarını koruyabilmeleri için palsin tekrar edilmesi gerekebilir. Hareket etmeleri için gereken pals genişliklerinin minimum ve maksimum değerleri vardır. Bu değerler değişkendir. Genellikle minimum pals genişliği 1 msn, maksimum pals genişliği 2 msn’dir.
Aşağıdaki şekilde sahip oldukları PWM değerleri vardır. 1 msn duty cycle değerinde 0°, 1,5 msn duty cycle değerinde 90°, 2 msn duty cycle değerinde 180° pozisyonunu almış olur. Servo motorun sinyal uçlarından gelen sinyalin HIGH (lojik 1) seviyede kalma süresine göre servo motorun açısı değişir.
Görsel 1.2: PWM sinyaline göre servo motor pozisyonları
Servo Model No: SG90 veya MG90
SG90 küçük mekanizmalar için ideal bir servo motordur. Her marka uzaktan kumanda alıcılarına tam uyumlu olup RC araçlarla da kullanılabilir. Bunun yanı sıra birçok mikrodenetleyiciden alınabilecek PWM sinyaliyle robot projelerinde kullanılabilir. Bu servo motor ile pan-tilt mekanizması ve robotik tutucu el ürünleri sorunsuzca kullanılabilir.
Dişli kutusu plastiktir. Servo başlıkları ve diğer parçalarıyla birlikte satılır. Diğer hobi servo motorlarda olduğu gibi motor milinin elle sağa sola çevrilmesiyle dişlileri kırılabilir. Motora bu şekilde elle müdahaleden kaçınılmalıdır.
Mini servo motorlar RC arabaların direksiyon sistemlerinde, model helikopterlerde, model uçakların iniş takımları ve kontrol yüzeylerinde, robotik projelerde tutucu (gripper) ve robot kollarında sıkça tercih edilir. SG90 gibi küçük boyutlu ve plastik dişli servo motorlar, ağırlıkları sebebiyle RC dünyasında “9g servo" olarak anılır.
SG90 plastik dişli, MG90 metal dişli motora sahiptir. 3 pine sahiptir. İkisi besleme, biri sinyal giriş kablosudur. Kırmızı renkli kablo +5V besleme, kahverengi renkli kablo GND (toprak, şase), turuncu renkli kablo sinyal kablosudur. Turuncu renkli kablo Arduino’dan gönderilen açı değerlerini ileten sinyal kablosudur.
Teknik Özellikler
- Boyutlar: 23.1 x 12.2 x 29 mm
- Ağırlık: 9 g
- Çalışma gerilimi: 4,8 – 6,0 V DC
- Hız @4,8 V: 0.1 sn/60°
- Zorlanma torku @6 V: 1,8 kg.cm
- Dişli kutusu: Plastik
- Dişli tipi: Plastik
- Dönüş açısı: 0-180°
- Çalışma PWM sinyali: 500-2400 μsn
- Kablo uzunluğu: 15 cm
Uygulama alanları aşağıda verilmiştir.
- Otomatik kapı
- Mini helikopter
- Mini uçak
- Mini araba
- Mini gemi
- Mini kapakçık kontrolü
- Robotik el
Servo motorlar, Servo.h kütüphanesiyle çalışır. Servo.h kütüphanesinde bulunan bazı fonksiyonlar aşağıda verilmiştir:
- attach(): Servo motorun bağlanacağı pini tanımlamak için kullanılır.
- write(): Servo motora açı bilgisi göndermek için kullanılır.
- read(): Servo motora gönderilen son açı bilgisini okumak için kullanılır.
- writeMicroseconds(): Servo motora belirtilen µsn süre boyunca HIGH seviyede sinyal göndermek için kullanılır.
- attached(): Servo motorun herhangi bir pine bağlı olup olmadığını sorgulamak için kullanılır.
- detach(): Servo motoru tanımlanmış olan pinden yazılımsal olarak ayırmak için kullanılır.
Uygulamaya Ait Şema, Bağlantı Şekli ve Görseller
Görsel 1.3: Arduino Uno ile DC servo motor uygulaması devre şeması
Görsel 1.4: Arduino Uno ile DC servo motor uygulaması devre şeması (KiCad 7.06 ile çizilmiştir)
Görsel 1.5: Arduino Uno ile DC servo motor uygulaması breadboard bağlantısı
Malzeme Listesi
Sıra No |
Adı |
Özelliği |
Miktarı |
1 |
Arduino Uno R3 |
- |
1 Adet |
2 |
Servo motor |
SG90 9 gr mikro servo |
1 Adet |
3 |
Breadboard |
830 pin |
1 Adet |
4 |
Jumper kablo |
Erkek-erkek |
- |
Uygulamaya Ait Kod
Uygulamanın Tinkercad Simülasyonu
Bu internet sitesi içeriğinde yer alan tüm eserler (yazı, resim, görüntü, fotoğraf, video, müzik vb.) İlhan DEMİR'e ait olup, 5846 sayılı Fikir ve Sanat Eserleri Kanunu ve 5237 sayılı Türk Ceca Kanunu kapsamında korunmaktadır. Bu hakları ihlal eden kişiler, 5846 sayılı Fikir ve Sanat eserleri Kanunu ve 5237 sayılı Türk Ceza Kanununda yer alan hukuki ve cezai yaptırımlara tabi olurlar. İlhan DEMİR, yasal işlem başlatma hakkına sahiptir.
BİR CEVAP YAZ