[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Arduino ile Rectract - Iniş Takımı Uygulaması

Bu da iki çok turlu trimpot ile sıkışma akımının hassas ayarlanabileceği devre şeması. Testleri tamaladıktan sonra muhtemelen bunu plaket haline getireceğim.

[attachimg=1]

Bu sistemi eğer istediğim gibi oluşturup kullanabilirsem, elektroniği ya da swithcleri sorunlu tüm elektrikli retractlarda kullanılabilecek üniversal bir sistem olacak.
 

Ekli dosyalar

  • Ratract akým test V2 1.jpg
    Ratract akým test V2 1.jpg
    38.9 KB · Görülme: 177
Arduino ile Rectract - Iniş Takımı Uygulaması

Direnç bölücüleri anladım, clamping diodları anladım (hemen hemen :) ), stabilizasyon kondansatörlerini anladım ama çok turlu trimpotta "buffer overflow" oldum :D ...
 
Arduino ile Rectract - Iniş Takımı Uygulaması

Zafer SAHIN' Alıntı:
Direnç bölücüleri anladım, clamping diodları anladım (hemen hemen :) ), stabilizasyon kondansatörlerini anladım ama çok turlu trimpotta "buffer overflow" oldum :D ...

Hemen reset atalım. :D

Temel kod mantığımızda akım sensörü değerleri okunurken (ki bu ister basit dirençle high side current monitor olsun, isterse Hall sensörlü olsun) belirli bir sınır değer aşıldığında motorun sıkıştığını anlıyor ve akımı kesiyorduk. Gözlemlerime göre bu sınır değer kullanılan motordan motora fark ediyor. Dolayısıyla bu sınır değeri yazılıma sabitlemek yerine belirli bir aralıkta değiştirilebilir yapmak daha iyi bir fikir gibime geldi. İşte bu trimpotlar basitçe bir ayar girişi olarak çalışıyorlar. Yani sistem çalışırken sıkışma anında duracak şekilde ayar yapılması gerekiyor. Örneğin kodda "mincur" olarak adlandırılagelmiş olan bu sınır değer bu trimpotlar ile 350 - 450 arasında ayarlanabilir şekilde tanımlanabilecek. Ayrıca iki tarafın mekanik direnci de her zaman tutmayabiliyor. O nedenle bu değeri iki taraf için ayrı ayrı ayarlamak daha kesin bir sonuç verecek gibime geliyor.

Clamping diyotlar sürülen yük indüktif olduğu için gerekli ama L293D kullanıldığında entegrede var oldukları için dışarıdan diyot gerekmiyor. Ne yazık ki L293D'nin port başına akım sınırlaması 600 mA. Bu arada L293 için epey bir şeyler okudum ve bir yerde "piggyback" uygulama öneriyor. Yani bir L293 üzerine bir tane daha lehimleyerek akım kapasitesini ikiye katlayabiliyoruz. Gerçi ben burada zaten ikişerli paralel bağlayarak kullanıyorum entegreyi ama yine de aklımın bir köşesine yazdım. Yani plakette sekiz diyottan tasarruf etmek için rahatlıkla çift çift lehimli L293D'ler kullanılabilir.

Direnç bölücüleri aslında daha önce konuştuk. Motorlara giden gerilim 2S LiFe ya da LiPo'dan gelecek. Dolayısıyla 5V'tan yüksek. O gerilimi doğrudan Arduino analog girişlerine bağlayamam. Bağlasam da her durumda 1023 okur zaten. O nedenle ikiye bölerek kullanmam gerekti.
 
Arduino ile Rectract - Iniş Takımı Uygulaması

Zafer SAHIN' Alıntı:
"buffer overflow" oldum :D ...

Aklıma Ariane 5 roketi geldi. :D

Ariane 5's first test flight (Ariane 5 Flight 501) on 4 June 1996 failed, with the rocket self-destructing 37 seconds after launch because of a malfunction in the control software.[27] A data conversion from 64-bit floating point value to 16-bit signed integer value to be stored in a variable representing horizontal bias caused a processor trap (operand error)[28] because the floating point value was too large to be represented by a 16-bit signed integer. The software was originally written for the Ariane 4 where efficiency considerations (the computer running the software had an 80% maximum workload requirement[28]) led to four variables being protected with a handler while three others, including the horizontal bias variable, were left unprotected because it was thought that they were "physically limited or that there was a large margin of error".[28] The software, written in Ada, was included in the Ariane 5 through the reuse of an entire Ariane 4 subsystem despite the fact that the particular software containing the bug, which was just a part of the subsystem, was not required by the Ariane 5 because it has a different preparation sequence[28] than the Ariane 4.
 
Arduino ile Rectract - Iniş Takımı Uygulaması

Sümer Yamaner' Alıntı:
Clamping diyotlar sürülen yük indüktif olduğu için gerekli ama L293D kullanıldığında entegrede var oldukları için dışarıdan diyot gerekmiyor. Ne yazık ki L293D'nin port başına akım sınırlaması 600 mA. Bu arada L293 için epey bir şeyler okudum ve bir yerde "piggyback" uygulama öneriyor. Yani bir L293 üzerine bir tane daha lehimleyerek akım kapasitesini ikiye katlayabiliyoruz. Gerçi ben burada zaten ikişerli paralel bağlayarak kullanıyorum entegreyi ama yine de aklımın bir köşesine yazdım. Yani plakette sekiz diyottan tasarruf etmek için rahatlıkla çift çift lehimli L293D'ler kullanılabilir.

Şimdi iyice kafam karıştı, buradaki IC, L293D'mi yoksa IC içinde clamping diyot içermeyen ama daha yüksek akım destekleyen, L293B gibi bir varyantı mı ?
 
Arduino ile Rectract - Iniş Takımı Uygulaması

Bir ohm bir Watt dirençlerimiz geldi. :)
Yapılan testte motor hafif yükte çalışırken fark değerleri 20 - 30 arası. Sıkıştırıp tam durdurursam 50 - 60 oluyor. Kullandığım motor halen retract sistemindeki motorun aynısı. Yani sınır değer olarak 50 iyi bir değer olacak.
Arduino 0 - 1023 arası ölçüyor. 1023 değeri 5 V'a denk. Kabaca her bir değer 5 mV demek. Fark 50 birim yani 250 mV. Ama gerilim bölücü de var. Demek ki motor sıkışınca 1 ohm direncin iki ucu arasında 0.5 V oluşuyor. Bu da 500 mA demek. Bu da daha önceden ampermetre ile yapmış olduğum ölçümle uyumlu.
Burada en önemli nokta, motor döndüğü sürece fark değeri hiç 50 olmuyor. Yani 50 olduysa motor kesin sıkıştı, retract tam açıldı/kapandı demek mümkün.
 
Arduino ile Rectract - Iniş Takımı Uygulaması

Tamamen farklı bir yol izleyerek power MOSFET'lerden oluşan bir sürücü ve Arduino Nano kombinasyonu yapmıştım. Akımı pozitif taraftan değil negatif taraftan ölçerek çok daha kolay ve hassas bir sonuç elde etmeyi umuyordum. Plaketi falan PCB başlığında gördünüz. Bu akşam motor bağlayarak test ettim. Düşündüğüm gibi oldu. Sınır akım değeri ile biraz oynayarak istenilen çalışmayı sağlamak mümkün. Ayrıca timeout sistemi de var. Yani her durumda sistem kendini koruyor. Ancak denemeler sırasında pili yanlış uca bağlayıp dört adet MOSFET'i yok ettim! :( Testler birkaç günlüğüne iptal oldu. :D
 
Arduino ile Rectract - Iniş Takımı Uygulaması

Mosfetler yanmasaymis iyiymis :embarras: ama en azindan dusundugu gibi calismis ya abi, onemli olan bu :thumbup:
 
[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Uzun bir aradan sonra geri dönüyoruz retract sistemi ile. Kendi retractlarım sorunsuz çalıştığı ve testlerde (MOSFET'leri yakmadan önce) hemen hemen istenilen souç alındığı için proje rafa kalkmıştı. Ancak aynı bendeki Sea Fury'den bir tane daha uçurmak isteyen bir arkadaşımız var ve retract modülü yanık. Yani iş başa düştü.
Önce retractları alıp ölçüm yaptım. Normalde 250 mA, sıkışma anında 1.2 A akım çekiyorlar. Bu değerler için koca koca MOSFET'ler gereksiz. Yine L293'e dönüş yaptım. Diyot korumalı L293D'yi kullanacağım ama şimdilik elimde L293B var. Onlarla ilerliyorum.
Öncelikle analog ölçüm işini tamamen terkettim. Retract akım hatlarına 1 ohm 1 W dirençler koydum. Bu direnç üzerinden 700 mA akarsa iki uç arasında 0.7 V oluşuyor. Bu da NPN bir transistörün iletime geçmesi için yeterli. Transistör iletime geçince bağlı olduğu port "L" oluyor. İki seçenek var. İki retractın bu uçlarını interrupt ile de okuyabilirdim ama iki tarafın interruptu çakışırsa ne olur bilemediğim için bundan vazgeçtim. Yazılım bu iki ucu sürekli okuyor ve "L" olduğu anda ilgili kanalın akımını kesiyor. Son derece kompakt bir kod oluştu.
Plaket de bu:

[attachimg=1]

Yaklaşık 6 x 6 cm boyutunda bir plaket oldu ki 2 m kanatlı bir uçakta pek de göze batmayacaktır diye düşünüyorum. Zaten bir sonraki aşamada kristali iptal edip 8 MHz internal osilatörle çalıştıracağım ve o zaman boyut iyice küçülecek. Yeter ki bu akım izlemede kullanacağım yeni konsept kendini kanıtlasın.

Şimdi kısa bir mola ve sonra kablolar lehimlenip testler başlayacak.
 

Ekli dosyalar

  • pic06001.jpg
    pic06001.jpg
    64.1 KB · Görülme: 102
[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Epey bir ara verdik. Çünkü birçok beklenmedik sorunla cebelleşmek zorunda kaldık ama sonunda oldu. Birkaç gün içinde yeni bir plaket ile nihai ürüne ulaşıyoruz. Tüm testler tamamlandı.
 
[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Şimdi bell-222 yada airwolf yapmaya başlasam diyelim, bu rectract sistemini kullanabilir miyiz Sümer abi? Helikoptere de oluyor mu bunlar? :D
 
[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Sümer Yamaner' Alıntı:
Epey bir ara verdik. Çünkü birçok beklenmedik sorunla cebelleşmek zorunda kaldık ama sonunda oldu. Birkaç gün içinde yeni bir plaket ile nihai ürüne ulaşıyoruz. Tüm testler tamamlandı.
Ama konu uzun soluklu olunca bazi detaylari da unuttuk dogal olarak. Sana zahmet olacak ama nihai urun hakkinda kisa bir video alabilir miyiz acaba :thumbup:
 
[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Emre Kaman' Alıntı:
Şimdi bell-222 yada airwolf yapmaya başlasam diyelim, bu rectract sistemini kullanabilir miyiz Sümer abi? Helikoptere de oluyor mu bunlar? :D

Oldukça iri kıyım bir helikopter gerekir. :) Tüm çabalarıma rağmen devre boyutu 6 x 7 cm'den aşağı inmedi. :)


Mehmet Kucuksari' Alıntı:
Ama konu uzun soluklu olunca bazi detaylari da unuttuk dogal olarak. Sana zahmet olacak ama nihai urun hakkinda kisa bir video alabilir miyiz acaba :thumbup:

Dün akşam çekmek istedim ama bir elim servo testeri kontrol ederken diğer elim retractı tutuyordu. Kamera için bizim kontrol mühendislerinden yarım istedim. Esneyerek umursamadıklarını gösterdiler. İlk fırsatta uygun bir setup yaparak video çekerim.
 
[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Şöyle bir sorun çıktı. L293 entegreleri retract çalışırken fazlaca ısınıyorlar. Muhtemelen termal koruma devreye giriyor ve sistem saçmalıyor. Bir iki aç kapa sorunsuz ama entegreler ısınınca sapıtıyor. Şimdi iki yolum var. Birisi motor sürücüsü yerine doğrudan röle kullanmak. Bunun plaketi hazır. Test edilecek. İkincisi daha güçlü motor sürücü entegre araştırmak. Bir yandan da onu yapıyorum. Bakalım ne olacak. :)