15 Mart 2015 Pazar

Arduino Servo Motor Kontrol



     Arkadaşlarımın Çin'den sipariş verdiği Arduino seti gelmiş. Bu setin içerisinde birçok sensör , motor ve devre elemanları mevcut. Bu ürünler gelmeden önce çok bir beklentim yoktu ancak gelince gördüm ki işimize yarayacak birçok sensör ve motor mevcut. Ayrıca buradan aynılarını almaya kalksak 2-3 katı para ödememiz gerekiyor.

     Görünürde parçalar aslının aynı ama yine de çalışmama ihtimali var. Bizde arkadaşlarla başına oturduk çoğunu test ettik. Hareket sensörü(PIR) hariç geri kalanı sorunsuz çalıştı. Bunlardan bir tanesi de servo motor oldu.



     Aşağıda Arduino içerisinde hazır bulunan Sweep uygulaması var. Kod görüldüğü gibi çok basit. Servo kütüphanesini import etmiş , 9 nolu pini servonun veri aktarılan bacağına bağlamış ve bunu kod içerisinde belirtmiş. Sonrasında iki for döngüsü ile servoyu 0-180 ve 180-0 derece arası dönmesini sağlamış.

     Bu ilk test aşaması olduğundan biz oturup kod yazmadık ama görüldüğü gibi servo motor kullanmak çokta zor değil! Aşağıda devre şeması ve örnek kod mevcut. Sonraki yazılarda su seviye sensörü ve step motoru da test ettik onları da inceleyebilirsiniz. Şimdilik bu kadar size kolay gelsin!




#include  
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
}


0 yorum:

Yorum Gönder