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

  • Forumdan daha fazla yararlanmak için buradan ÜYE olunuz

    Eğer eski üyemizseniz, MEVCUT Kullanıcı ADI ve ŞİFRENİZİ aynen kullanabilirsiniz. Eğer girişte sorun yaşıyorsanız, lütfen şu konuya TIKLAYINIZ.
Katılım
18 Eyl 2019
Mesajlar
128
Tepkime puanı
35
Yaş
35
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

Emre Kaman

Moderator
Katılım
21 Kas 2013
Mesajlar
5,853
Tepkime puanı
10,572
Yaş
38
Konum
Eskişehir
İlgi Alanı
Heli
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.
 
Katılım
18 Eyl 2019
Mesajlar
128
Tepkime puanı
35
Yaş
35
Konum
Şanlıurfa
İlgi Alanı
Multikopter
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.
 
Katılım
17 Ara 2018
Mesajlar
89
Tepkime puanı
100
Yaş
40
Konum
Kocaeli
İlgi Alanı
Hepsi
Analog elektronik dünyasınin küçük surprizleridir bunlar ve engellenemez. Filtrelerle görmezden gelinebilir.
 

Sumer Yamaner

Moderator
Katılım
17 Eyl 2013
Mesajlar
5,789
Tepkime puanı
13,381
Yaş
57
Konum
İstanbul
Web sitesi
www.sumeryamaner.com
İlgi Alanı
Uçak
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.
 
Katılım
17 Ara 2018
Mesajlar
89
Tepkime puanı
100
Yaş
40
Konum
Kocaeli
İlgi Alanı
Hepsi
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.
 
Katılım
18 Eyl 2019
Mesajlar
128
Tepkime puanı
35
Yaş
35
Konum
Şanlıurfa
İlgi Alanı
Multikopter
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);
}
 
Katılım
21 Eyl 2019
Mesajlar
10
Tepkime puanı
14
Konum
Denizli
İlgi Alanı
Uçak
İ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
Katılım
18 Eyl 2019
Mesajlar
128
Tepkime puanı
35
Yaş
35
Konum
Şanlıurfa
İlgi Alanı
Multikopter
İ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 😊🙏
 

Benzer konular