30 Kasım 2014 Pazar

Servo Motor Kontrolü

Arduino İle Servo Motor Kontrolü

Servo motorlar gönderilen belirli sinyallere göre sahip olduğu şaftı belirli dereceler ile döndürebilen motorlardır. Örneğin 0 ile 180 derece arasında dönebilen şaftı 1 derece aralıklara kadar indirerek kontrol edebiliriz.
robot_arm
Servo motorların en çok kullanıldığı alan robot kollardır. Bilek, parmak vb. pozisyonlarını kontrol etmek için servo motor kullanılarak gerekli açı verilir.
Standart servo motorlarda 3 adet bağlantı kablosu vardı.
* Kırmızı Kablo (+)          4-6V
* Kahverengi Kablo(-)       0V
*Turuncu Kablo              Sinyal.
servo_pin
Bu yazımızdaki örnekte servo motoru 0-180, 180-0 dereceleri arasında 15’er derece değiştirerek döndüreceğiz.

Arduino ile Servo Motor Kontrolü Devresi

arduino_servo_bağlantı

Arduino ile Servo Motor Kontrolü Akış Diagramı

arduino_servo_akış_diagramı

Arduino ile Servo Motor Kontrolü Kodu

Aşağıdaki adımları izleyerek 0 ile 180, 180 ile 0 derece arasında 1’er derece artarak ilerleyen servo kodunu görebilirsiniz.
arduino_servo_ex

/* Sweep
 by BARRAGAN  
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://arduino.cc/en/Tutorial/Sweep
*/ 

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // twelve servo objects can be created on most boards
 
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>=0; 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 
  } 
}

Arduino ile Servo Motor Kontrolü Kodu


#include <Servo.h> 
 
Servo myservo;   // servoyu tanımla
 
int pos = 0;   // servo pozisyon değerini
               // tutan değişken
 
void setup() 
{ 
  myservo.attach(9);  // servo 9. pine bağlandı.
} 
 
void loop() 
{ 
  for(pos = 0; pos <= 180; pos += 15) // 0 ile 180 derece arası 15'er
  {                                   // derece artarak ileriliyor    
    myservo.write(pos);               // servoya gerekli pozisyon için    
    delay(200);                        // sinyal gönderildi
  } 
  for(pos = 180; pos>=0; pos-=15)     // 180 ile 0 derece arası 15'er
  {                                   // derece azalarak ilerliyor
    myservo.write(pos);              // servoya gerekli sinyal gönderildi.
    delay(200);                       // servoya giden iki sinyal arası      
                                     // belirli bir gecikme verilmesi 
                                     // gerekiyor. (min ~18ms)
  }                                  
} 






2 yorum:

  1. size ulaşabileceğim bir adresiniz varmı?

    YanıtlaSil
  2. bana bu instagram adresinden ulaşabilirseniz sevinirim= ismaildgr_

    YanıtlaSil