- Gerekli Malzeme
- Devre şeması
- Servo Motor nedir?
- Arduino Kodu Açıklaması
- Arduino ile Birden Fazla Servoyu Kontrol Etme - Çalışma:
Arduino ile bir veya iki Servo kullanmak Kolaydır ama ya birden fazla Servo Motor kullanmak istiyorsak?
Burada size Arduino ile Çoklu Servo Motorları nasıl kontrol edeceğinizi göstereceğiz. Arduino ile birden fazla Servo Motor bağlamak kolay görünüyor ve ancak tüm Servoları Arduino besleme pinlerine bağlarsak, tüm motorları sürmek için yeterli akım olmadığından doğru şekilde çalışmayacaktır. Bu nedenle, motorlar için ya bazı adaptörlerden (5v 2A) ya da kaliteli 9v pillerden gelen ayrı bir güç kaynağı kullanmanız gerekir.
Gerekli Malzeme
- Arduino UNO
- Servo Motor
- Güç kaynağı
- Breadboard
- Kabloların Bağlanması
Devre şeması
Servo Motor nedir?
Detaylara girmeden önce Servo Motorları tanımalıyız.
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.
Servolarınızı Arduino ya bağlamadan önce bu Servo Motor Test Devresi yardımıyla servonuzu test edebilirsiniz. Ayrıca aşağıdaki Servo projelerimizi de kontrol edin:
- Flex Sensör ile Servo Motor Kontrolü
Arduino Kodu Açıklaması
Çoklu Servo Kontrolü için eksiksiz Arduino kodu sonunda verilmiştir.
Arduino'nun Servo Motorlar için bir kütüphanesi vardır ve servoyu döndürmek için PWM ile ilgili tüm şeyleri yönetir, sadece döndürmek istediğiniz açıyı girmeniz gerekir ve servo1.write (açı) işlevi vardır ; servoyu istenen açıya döndürecektir.
İşte burada Servo motor için kitaplığı tanımlayarak başlıyoruz.
#Dahil etmek
Aşağıdaki kodda, dört servoyu da Servo1, Servo2, Servo3 ve Servo4 olarak başlatıyoruz.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Ardından Arduino ile tüm servonun giriş pinini ayarlıyoruz. Aşağıdaki kodda gösterildiği gibi Servo1, Arduino'nun 3. pinine bağlanır. Pimleri kendinize göre değiştirebilirsiniz ancak bunun bir PWM pini olması gerektiğini unutmayın. Arduino'nun dijital pinleri ile bir Servo kullanmak güvenilir değildir.
geçersiz kurulum () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Şimdi, void loop () fonksiyonunda tüm servoyu 0'dan 180 dereceye ve sonra 180'den 0 dereceye döndürüyoruz. Aşağıdaki kodda kullanılan gecikme, 'i' değişkeninin artan veya azalan hızını etkilediği için servo hızını artırmak veya azaltmak için kullanılır.
void döngü () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); gecikme (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); gecikme (10); } }
Arduino ile Birden Fazla Servoyu Kontrol Etme - Çalışma:
Bir Arduino ile ikiden fazla servo kullanırken hepimiz mevcut problemle karşı karşıyayız. Bunun tek çözümü, uygun miktarda akım değerine sahip harici bir güç kaynağı bağlamaktır (bu projede 9v beslemeli 2A kullandım). Harici Güç kaynağı için Adaptörler, RPS (Düzenlenmiş Güç Kaynağı Enstrümanı) veya kaliteli 9v volt piller kullanabilirsiniz, hatta küçük Servo'yu çalıştırmak için dizüstü bilgisayarınızın USB portunu kullanabilirsiniz. Harici kaynağı kullanmak için Arduino topraklamasını harici besleme topraklamasına kısa devre yapmanız yeterlidir.
Arduino'nuzu programlamak için aşağıda verilen Arduino kodunu kullanın ve tüm Servo Motorları devre şemasında gösterildiği gibi Motorlara uygun güç kaynağı ile bağlayın. Bu nedenle, tüm servolar herhangi bir kesinti olmadan birlikte çalışacaktır.