Arduino ile Servo Motor Nasıl Kontrol Edilir

Arduino Ile Servo Motor Nasil Kontrol Edilir



Servo motorlar bir nesnenin konumunu büyük bir hassasiyetle değiştirebilen veya döndürebilen bir tür elektrikli cihazdır. Başlangıçta RC uçak kanatlarını kontrol etmek için kullanıldılar, daha sonra robotik, insansı robotlar ve birçok otomasyon projesine geçtiler. Step motorların aksine hareketleri 0o ile 180o arasında sınırlıdır.

Genellikle servo motorlarda Arduino kullanılarak kontrol edilebilen kollar bulunur. Servo motorlar sağlayan bir kontrol sisteminden oluşur. geri bildirim motor milinin mevcut konumu hakkında bu geri bildirim, büyük bir hassasiyetle hareket etmeyi sağlar.

Servo Motor Pin Çıkışı

Tipik olarak, çoğu servo motorun üç pimi vardır:







  • Vcc Pimi (Normalde Kırmızı 5V)
  • GND Pimi (Normalde Siyah 0V)
  • Giriş Sinyali Pimi (Arduino'dan PWM sinyali alın)



Servo Motorun Çalışması

Vcc pinini 5V'a ve GND pinini 0V'a bağlayarak servo motoru kontrol edebiliriz. Sarı renkli terminalde bir PWM servo motorun dönüş açısını kontrol eden sinyal. PWM sinyalinin genişliği bize motorun kolunu döndüreceği açıyı verir.



Servo motorların Veri Sayfasına bakarsak, aşağıdaki parametreleri alırız:





  • PWM sinyal süresi
  • PWM için minimum genişlik
  • PWM için maksimum genişlik

Tüm bu parametreler Arduino Servo kütüphanesinde önceden tanımlanmıştır.

Arduino ile Servo Motorlar

Arduino ile servo motorları kontrol etmek çok kolay. Servo Kitaplığı Bu, kodumuzu ihtiyaca göre özelleştirmemize yardımcı olur ve servo kolunu istediğimiz açıda döndürmemizi sağlar.



Yukarıda bahsedilen üç Parametrenin tamamı Servo kitaplığında sabitlenmiştir. Bu parametreleri kullanarak servo motorun açısını şu şekilde kontrol edebiliriz:

  • PWM sinyal genişliği = WIDTH_MAX ise, servo 180o dönecektir
  • PWM sinyal genişliği = WIDTH_MIIN ise, servo 0o'ya dönecektir
  • PWM sinyal genişliği aradaysa WIDTH_MAX ve WIDTH_MIN , servo motor 0o ile 180o arasında dönecektir.

Arduino pinlerinin bazılarında istenilen PWM sinyalini üretebiliriz. Servo motorun giriş sinyali pininde PWM sinyali verilecektir. Kalan iki servo pinini Arduino'nun 5v ve GND'sine bağlama.

Arduino Kullanarak Servo Motor Nasıl Kontrol Edilir

Arduino kullanarak servo motorumuzu nasıl bağlayıp programlayabileceğimizi burada anlatacağım. Tum ihtiyacin olan sey:

  • Arduino UNO'su
  • USB B kablosu
  • Servo motor
  • Atlama telleri

Arduino ile Servo Nasıl Programlanır

Aşağıda bazı basit adımlar verilmiştir:

Aşama 1: Önceden tanımlanmış servo kitaplığını dahil et:

# Dahil etmek < Servo.h >

Adım 2: Servo Nesnesi Oluştur:

Servo myservo;

İpucu: Birden fazla servo motoru kontrol ediyorsanız, daha fazla servo nesnesi oluşturmanız gerekir:

Servo myservo1;
Servo myservo2;

Aşama 3: PWM sinyalini servonun Giriş sinyali portuna gönderen Arduino Uno üzerindeki kontrol pinini (9) ayarlayın:

myservo.attach ( 9 ) ;

4. Adım: Servo motor açısını istenen değere çevirin, örneğin 90o:

myservo.write ( konum ) ;

Arduino Kodu

Servo motor örnek programını şuradan açın: Dosya>Örnek>Servo>Süpür , bize servo taslağımızı gösteren yeni bir pencere açılacaktır:

#include

Servo myservo; // servo nesnesi oluşturuldu için servo motoru kontrol etme
int konum = 0 ; // servo konumunu saklamak için yeni bir değişken oluşturulur
geçersiz kurulum ( ) {
myservo.attach ( 9 ) ; // Bu irade Ayarlamak Arduino iğnesi 9 için PWM çıkışı
}
boşluk döngüsü ( ) {
için ( konum = 0 ; konum = 0 ; konum -= 1 ) { // den gider 180 ile 0 derece
myservo.write ( konum ) ; // servoya 'pos' konumuna gitmesini söyle
gecikme ( 5 ) ; // bekler için 5 ms böylece servo pozisyona ulaşabilir
}
}

Program derlenip yüklendikten sonra, servo motor başlangıç ​​konumundan 0 dereceden 180 dereceye kadar yavaş yavaş dönmeye başlayacaktır, tıpkı adımlar gibi her seferinde bir derece. Motor 180 derecelik dönüşü tamamladığında, başlangıç ​​noktasına doğru ters yönde yani 0 derece dönmeye başlayacaktır.

şemalar

Potansiyometre Kullanarak Servo Motor Nasıl Kontrol Edilir

Servo motor konumunu elle de kontrol edebiliriz. Bunu yapmak için bir ihtiyacımız var Potansiyometre . Potansiyometrenin üç pimi vardır. Dıştaki iki pimi Arduino'nun 5V Vcc ve GND'sine ve ortadakini Arduino kartındaki A0 pimine bağlayın.

Potansiyometre ile Servo Nasıl Programlanır

Potansiyometre taslağının çoğu önceki örnekle aynıdır. Tek fark yeni bir Değişkendir val ve alt iğne kodun setup ve loop bölümünden önce tanımlanır.

int potpin = A0;
int değeri;

Döngü bölümünde analog pin A0, fonksiyonlu Potansiyometre değerlerini okumak için kullanılır analogOku() . Arduino panoları, potansiyometrenin hangi konum olduğuna bağlı olarak bize 0 ile 1023 arasında değerler veren 10-bit ADC (Analogdan Dijitale Dönüştürücü) içerir:

val = analogOku ( alt iğne ) ;

Son olarak, kullandık harita() Servo motorların sadece 00 ile 1800 arasında dönebildiğini bildiğimiz için Servo açısına göre 0'dan 1023'e kadar sayıları yeniden eşleme işlevi.

val = harita ( val, 0 , 1023 , 0 , 180 ) ;

Arduino Kodu

Arduino IDE'de bulunan düğme çizimini açın, gidin Dosyalar>Örnekler>Servo>Düğme . Servo için düğme çizimimizi gösteren yeni bir pencere açılacaktır:

#include
Servo myservo; // Bir servo nesne adı oluşturma myservo
int potpin = A0; // analog pin tanımlama için potansiyometre
int değeri; // değişken Hangi niyet okuman analog pin değerleri için potansiyometre

geçersiz kurulum ( ) {
myservo.attach ( 9 ) ; // tanımlanmış pin 9 için Arduino'da servo PWM giriş sinyali
}
boşluk döngüsü ( ) {
val = analogOku ( alt iğne ) ; // potansiyometreden değer okur ( Arasındaki değer 0 ve 1023 )
val = harita ( val, 0 , 1023 , 0 , 180 ) ; // servo ile kullanılacak değeri ölçeklendir ( Arasındaki değer 0 ve 180 )
myservo.write ( val ) ; // servo konumunu ölçeklenmiş değerle ayarlar
gecikme ( on beş ) ; // bekler için pozisyon almak için servo
}

Yukarıdaki kod, servo motor şaftını potansiyometre kullanarak kontrol etmemize yardımcı olacaktır, şaft 0 ile 180 derece arasında dönecektir. Bunu kullanarak servonun yönü ile birlikte hızı da koruyabiliriz.

Devre şeması

Arduino ile Kaç Servo Motor Bağlayabilirim?

Arduino UNO'nun kullanabileceği maksimum servo motor sayısı, servo için Arduino kütüphanesi ile 12'ye kadar ve maksimum 48 servo Mega gibi panolarla bağlanabilir.

Uç: Arduino akımını kullanarak servoyu doğrudan çalıştırabiliriz, ancak servo motorların 500mA Arduino kartınız otomatik olarak sıfırlayabilir ve güç kaybedebilir. Servo motorlar için her zaman özel bir güç kaynağı kullanılması önerilir.

Çözüm

Bu dersimizde Arduino ile servo motorların kontrol mekanizmasını ele aldık. Potansiyometre kullanarak servo konumunu ve hızını kontrol etmenin temellerini ele aldık. Artık servo hakkında bir fikriniz var ve robotik, RC projeleriniz ve servo kullanarak otomasyon için olanaklar sınırsız.