Bu eğitimde ARDUINO UNO tarafından bir servo motoru kontrol edeceğiz. Servo Motorlar, doğru şaft hareketine veya konumuna ihtiyaç duyulan yerlerde kullanılır. Bunlar yüksek hızlı uygulamalar için önerilmemektedir. Bunlar düşük hız, orta tork ve doğru konum uygulaması için önerilmiştir. Bu motorlar robotik kollu makinelerde, uçuş kontrollerinde ve kontrol sistemlerinde kullanılmaktadır.
Servo motorlar farklı şekil ve boyutlarda mevcuttur. Bir servo motorda esas olarak orada teller olacaktır, biri pozitif voltaj için, diğeri toprak içindir ve sonuncusu konum ayarı içindir. KIRMIZI kablo güce bağlanır, Siyah kablo toprağa bağlanır ve SARI tel sinyale bağlanır.
Servo motor, DC motor, konum kontrol sistemi ve dişlilerin bir kombinasyonudur. DC motor şaftının konumu, SIGNAL pinine PWM sinyalinin görev oranına bağlı olarak, servodaki kontrol elektroniği tarafından ayarlanır.
Basitçe söylemek gerekirse, kontrol elektroniği DC motoru kontrol ederek şaft konumunu ayarlar. Milin konumuna ilişkin bu veriler SİNYAL pimi aracılığıyla gönderilir. Kontrole konum verileri, servo motorun Sinyal pini aracılığıyla PWM sinyali şeklinde gönderilmelidir.
PWM (Darbe Genişliği Modülasyonlu) sinyalinin frekansı, servo motor tipine göre değişebilir. Burada önemli olan PWM sinyalinin GÖREV ORANI. Bu GÖREV ORANI baz alınarak kontrol elektroniği mili ayarlar.
Aşağıdaki şekilde gösterildiği gibi, şaftın saat 9'a hareket ettirilmesi için AÇMA ORANI 1 / 18ie olmalıdır. 18 ms sinyalde 1 ms ON süresi ve 17 ms OFF süresi.
Şaftın saat 12 ° 'ye taşınması için sinyalin AÇMA süresi 1.5ms ve KAPALI zaman 16.5ms olmalıdır. Bu oran servodaki kontrol sistemi ile deşifre edilir ve ona göre pozisyonu ayarlar. Buradaki bu PWM, ARDUINO UNO kullanılarak oluşturulmuştur.
Devre Bileşenleri
Donanım: ARDUINO UNO, güç kaynağı (5v), 100uF kapasitör, düğmeler (iki parça), 1KΩ direnç (iki parça), Servo motor (test edilmesi gereken).
Yazılım: arduino IDE (Arduino her gece).
Arduino Servo Motor Devre Şeması ve Açıklaması
Normal durumlarda, frekansı ayarlamak ve servo'nun doğru pozisyon kontrolü için gerekli görev oranını elde etmek için kontrolör kayıtlarına gitmemiz gerekir, ARDUINO'da bunları yapmak zorunda değiliz.
ARDUINO'da, başlık dosyası çağrıldığında veya eklendiğinde frekansları ve görev oranlarını buna göre ayarlayacak önceden tanımlanmış kitaplıklarımız var. ARDUINO'da ihtiyaç duyulan servo konumunu belirtmemiz yeterlidir ve PWM otomatik olarak UNO tarafından ayarlanır.
Servo'nun doğru konumunu elde etmek için yapmamız gerekenler şunlardır:
|
Öncelikle PWM sinyalinin frekansını ayarlamalıyız ve bunun için "#include
Şimdi servo "Servo sg90sevo" için bir isim tanımlamamız gerekiyor, burada 'sg90servo' seçilen isimdir, bu yüzden iksir için yazarken bu adı kullanacağız, bu özellik kontrol etmemiz gereken çok sayıda servo olduğunda kullanışlı oluyor. Bununla sekiz servoyu kontrol edebiliriz.
Şimdi UNO'ya servonun sinyal pininin nereye bağlı olduğunu veya PWM sinyalini nerede üretmesi gerektiğini söyleyeceğiz. Bunu yapmak için "Sg90.attach (3);" var, burada UNO'ya servonun sinyal pinini PIN3'e bağladığımızı söylüyoruz.
Geriye kalan tek şey konumu ayarlamak, “Sg90.write (30);” kullanarak servo konumunu ayarlayacağız, bu komutla servo kolu 30 derece hareket ediyor, işte bu kadar. Bundan sonra, servonun konumunu ne zaman değiştirmemiz gerekirse, ”Sg90.write (gerekli_konum_ açı);” komutunu çağırmamız gerekir. Bu devrede iki butonumuz olacak bir buton servo pozisyonunu arttırır ve diğer buton servo pozisyonunu düşürmek içindir.
Çaba isteyen servo motor kontrol öğretici aşağıdaki C kodu adım adım bir şekilde açıklanmıştır.