30 Mayıs 2014 Cuma

Arduino - PWM ile Servo Motor Sürme


PWM ile DC motor sürmüştük. Şimdi ise aynı yöntemle Servo motor süreceğiz.Fakat transistörlü anahtar kullanmayacağız.Çünkü servo motor kendi içerisinde PWM sinyalini algılayabilecek ekipmana sahip.





Servo Motor Nedir ?
Servo motor özellikle robotik uygulamalarda kullanılan bir motor çeşitidir. Servo motorlar da çıkış; mekaniksel konum, hız veya ivme gibi parametrelerin kontrol edildiği bir düzenektir. 
PWM sinyal ile DC motorun hızını kontrol ederek sürmüştük. Servo motor ise DC motor gibi sürekli dönen bir yapıya sahip değildir. 360 veya 180 derece dönebilen motorlardır ve mühim olan bu motorlarda hız değil açı değeridir. PWM ile servo motor kaç derece dönmesi gerektiğini algılar ve sinyalin istediği derece kadar döner. Uygulamamızda bunu daha iyi anlayacağız.


Towerpro SG90 Servo Motoru
Piyasada bulunan en ucuz servo motor Towerpro SG90 markalı motorudur. Motor 180 derece dönebilmekte ve ekipmanları da fena değil. Kablolarının bağlantıları da aşağıdaki resimde.
PWM yazan kabloyu Arduino'muzun 9 nolu pinine takacağız ve potansiyometre ile ölçtüğümüz analog değeri açıya dönüştürüp PWM ile motoru süreceğiz.

!!! Programı yazarken Servo'yu 170 derece döndürebildim. 180 derece döndürmek için map komutunu ya da açı değerini float olarak girmeme rağmen bu sorunu çözemedim.

Arduino Komutlarımız ;

#include  //Arduino'nun kendi Servo Kütüphanesi var

int potPin = 0;  
int servoPin = 9;
Servo servo;  // servo ismiyle servo motorumuzu tanıttık

void setup() 

  servo.attach(servoPin);  // Servo'nun sinyali alacağı Arduino Pinini belirledik


void loop() 

  int okunan = analogRead(potPin);     // 0'dan 1023'e, Pottan okunan değer
  int aci = okunan / 6;              // 0'dan 180 dereceye Açıya dönüştürülüyor.
  servo.write(aci);  



Bu uygulamayı PIC ile de yapmanızı şiddetle tavsiye ediyorum. Çünkü Servo.h kütüphanesi ile tüm uygulamayı basite indirgeyebiliyoruz. İşin arka planını görmek isteyenler mutlaka PIC ile de denemeliler. 

Uygulamamızın resmi ve videosu ;







3 yorum:

  1. teşekkürler paylaşım için.

    YanıtlaSil
  2. 360 derece dönen servolarda açı ayarı asla yapamıyoruz..sürekli dönüyor..

    YanıtlaSil
  3. Don't give up. Write more!

    YanıtlaSil