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:
#includeServo 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:
#includeServo 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.