Flysky FS-I6, Arduino ve Servo Bağlantısı PWM Sinyali

Katılım
18 Eyl 2019
Mesajlar
128
Tepkime puanı
35
Yaş
39
Konum
Şanlıurfa
İlgi Alanı
Multikopter
Merhabalar Arkadaşlar,

Baktım ki kumandam var Quad'ım yok. O zaman dedim neden kumanda ve alıcıyı farklı bir şekilde kullanıp bir şeyler daha öğrenmiyorum.

FS-I6 ile alıcıyı eşleştirdim. Alıcıyı Arduinoya bağladım. Arduinoya da bir Micro Servo bağladım. ESC kullanmadım. Kumandanın bir kanalını kullanarak Servoyu 0 ve 180 derece arası hareket ettiriyorum. Ancak kumandaya hiç dokunmasam bile gelen sinyaller kumanda pozisyonu en alttayken 994-995-996, en üstteyken 1984-1985 olarak değişken geliyor. Subtrim denedim stabil hale gelmedi. Bu değerlerin kumandaya dokunulmadığında sabit bir değer olarak gelmesi gerekmiyor mu? Bu değişimler ufak ta olsa uçuş esnasında bir uçak ya da multkopterin davranışını etkileyip düşüşüne sebebiyet vermez mi?

Çözüm öneri ve düşüncelerinizi alabilir miyim?

Teşekkürler.
 

Ekli dosyalar

  • arduino fs-i6 servo.JPG
    arduino fs-i6 servo.JPG
    55.7 KB · Görülme: 1,595
Kumanda stikleri genelde potansiyometrelerle okunur, baska yontemler de var, ama en yaygini hala pot. Bu potlarin kalitesine bagli olarak pwm degerlerinde bir miktar drift olur. Bunu merkezde sifirlamak icin kumanda menusunde, veya kontrol ettigi sistemde (eger mumkunse) deadband ayari yapilir. Yani merkez noktada cok kucuk degisimler gozardi edilir. Ama iki ucta bu ayara ihtiyac pek duyulmaz.
 
Kumanda stikleri genelde potansiyometrelerle okunur, baska yontemler de var, ama en yaygini hala pot. Bu potlarin kalitesine bagli olarak pwm degerlerinde bir miktar drift olur. Bunu merkezde sifirlamak icin kumanda menusunde, veya kontrol ettigi sistemde (eger mumkunse) deadband ayari yapilir. Yani merkez noktada cok kucuk degisimler gozardi edilir. Ama iki ucta bu ayara ihtiyac pek duyulmaz.

Hocam deadband terimini ilk defa duydum, araştırdım biraz. BetaFlight veya CleanFlight'tan yapılıyormuş. Chrome eklentilerini kurdum ancak kumanda ile USB dongle kullanarak simulatörde uçabiliyor olmama rağmen COM PORT'u bu iki eklenti görmüyor. Ki denetim masasından aygın yöneticisine girip baktığımda da bulamıyorum. Bu nedenle eklentilerle bağlanıp deneyemedim.
 
Analog elektronik dünyasınin küçük surprizleridir bunlar ve engellenemez. Filtrelerle görmezden gelinebilir.
 
Analog elektronik dünyasınin küçük surprizleridir bunlar ve engellenemez. Filtrelerle görmezden gelinebilir.
İyi de bu zincirde analog olan tek şey vericinin gimbal potansiyometresinin çıkışı. Eğer bu olay analog sinyal dünyasının sürprizlerinden olsaydı normal alıcıya bağlı servoların da ufak ufak oynaması gerekirdi.
 
Teknik olarak oynuyor zaten, ama servonun çözünürlüğü düşük olduğu için o kadar ufak farklari görmezden geliyor. 12 bitlik endüstriyel servolari analog potdan gelen data ile sürerseniz zangir zangir oynar.
 
Arduino'da sinyali nasıl okuduğunuz önemli. Muhtemelen sorun okuma hatası kaynaklı.

Hocam Merhabalar, Arduino'ya yazıp upload ettiğim şu şekilde. pwm_value anlattığım şekilde geliyor. Kumanda ile ilgili bir sorun mu var diye düşünmeye başladım. Kumanda üzerinde trim yapıyorum ancak yine de 1 2 oynamalar devam ediyor. Okuma hatası derken ne tür bir hata yapıyor olabilirim sizce?

#include <Servo.h>

byte PWM_PIN = 3;
int SERVO_PIN=9;
int cikti=0;
int pwm_value;
Servo servo;

void setup() {
pinMode(PWM_PIN, INPUT);
pinMode(SERVO_PIN, OUTPUT);
Serial.begin(115200);
servo.attach(SERVO_PIN);
}

void loop() {
pwm_value = pulseIn(PWM_PIN, HIGH);
Serial.print(pwm_value);
}
 
İyi günler burak bey. Sinyal kablosu arasına bir kaç K'lık bir direnç koyarak bu sorunu çözebilirsiniz diye düşünüyorum. Test sonrası bizlere geri dönüş yaparsanız sevinirim :)
 
  • Beğen
Tepkiler: Burak HAYIRLI
İyi günler burak bey. Sinyal kablosu arasına bir kaç K'lık bir direnç koyarak bu sorunu çözebilirsiniz diye düşünüyorum. Test sonrası bizlere geri dönüş yaparsanız sevinirim :)

Hmmmm bu hiç aklıma gelmemişti, mantıklı valla. İlk fırsatta deniycem teşekkür ederim ? sonucu burada paylaşırım ??