2016-04-14 32 views
1

Arduino kullanarak bir quadcopter uçuş kontrol cihazında çalışıyorum. Motorlarımın saat yönünün tersi yönde nasıl döneceğini anlamaya çalışırken çok fazla sorun yaşıyorum. Şu anda saat yönünde dönen dört kanatlı motorlarım var ama bu, dört-helikopterin uçuş sırasında kontrolsüz olarak dönmesine neden oluyor. Kullandığım kod aşağıda gösterilmektedir ve yukarıdaki sorunla ilgili herhangi bir yardım çok takdir edilecektir. Şimdiden teşekkürler.Servo motor dönüşü

kullanıyorum kütüphanesidir:

#include <Servo.h> 

pimleri böyle Arduino Uno bağlıdır. Bu kodu çağırır

arm(); 

:

void arm() { 
    // arm the speed controller, modify as necessary for your ESC 
    setSpeed(0); 
    delay(1000); //delay 1 second, some speed controllers may need longer 
    } 

Bu zaman burada kodudur motorları başlar:

void startMotors() 
    { 
    speed = 40; 
    setSpeed(speed); 

    Serial.println("Motor Speed: " + speed); 
    motorsOn = true; 
    } 

m1.attach(4); 
    m2.attach(6); 
    m3.attach(8); 
    m4.attach(9); 

Ben kol fonksiyonu burada gösterilen çağrı

Gösterildiği gibi SetSpeed ​​yöntemi inv Hem kol hem de start motorlarında işlev görür.

void setSpeed(int speed) { 
    // speed is from 0 to 100 where 0 is off and 100 is maximum speed 
    //the following maps speed values of 0-100 to angles from 0-180, 
    // some speed controllers may need different values, see the ESC instructions 
    int angle = map(speed, 0, 100, 0, 180); 
    m1.write(angle); 
    m2.write(angle); 
    m3.write(angle); 
    m4.write(angle); 
    } 

Şimdi, kol fonksiyonu bunu, sadece silahlandırmak için kullanılır ve hiçbir rotasyon ihtiyaç olduğu fakat merak ettiğim yok onun ben motorlar M2 ve M3 nasıl anlamaya ihtiyacımız başlangıç ​​motorlar işlevinde saat yönünün tersine döndürmek için. Aksi takdirde, quadcopter uçuşta dönecektir, bu problem çözüldüğünde quadcopter'in sabit kalmasına yardımcı olacaktır. Umarım bu değişiklik, önceden anlamanız ve tekrar teşekkür etmeniz için yeterlidir.

+0

m2.write ve m3.write, saat yönünün tersine döndürmesi gereken iki motordur. Bunu belirtmediğim için üzgünüm. – user3107619

+0

Eh. en az ciddi şey olduğunu belirterek değil. Sisteminiz hakkında hiçbir şey bilmeden sorunuzu okumaya çalışın. Bir şey anlayabilir misin? Ne yapmak istediğini anlayabiliyorum, ama .. Olası tonlarca olası konfigürasyon ve tonlarca olası çözüm var. Sorunuzu, en azından hangi motorları ve sürücüleri kullandığınızı ve motorları kontrol etmek için hangi kütüphaneyi kullandığınızı belirtmenizi öneririm, çünkü her kütüphane bunu belirtebilir. – frarugi87

cevap

0

Sorunlarınız arduino tarafında değil, motorlarınızı nasıl bağladığınıza bağlıdır. Motorlarınız, aralarında ve ESC'leriniz arasında 3 tel olacak, bu kablolardan ikisini çevirmeniz gerekiyor. Hangileri değiştirdiğiniz önemli değil. Bunu yaptıktan sonra, pervanelerin doğru yolda olduğundan emin olun. (Çok nadir bir kurulumunuz varsa ve oradan size yardım edeceğimi söyleyin.)

+0

Sadece açık olmak gerekirse ESC'ler ve motorlar arasındaki 3 fazlı kablolardan * bahsediyorum, ESC'lere giden servo kontrol kabloları değil. –

+0

Evet sağolun dostum, ben onu vereceğim. – user3107619