[DIY]: Onboard glow driver

Sumer Yamaner

Moderator
Katılım
17 Eyl 2013
Mesajlar
8,770
Tepkime puanı
23,156
Yaş
61
Konum
İstanbul
Web sitesi
www.sumeryamaner.com
İlgi Alanı
Uçak
Genelde glow motorlu uçaklarımda şu ürünü kullanıyorum:



Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol


Bununla istersem kumandadan istersen üzerindeki butonu kullanarak buji kızdırıcıyı aktive edebiliyorum. Ancak ürün son derece kalitesiz. Ya sık sık bozuluyor ya da bağlı kalan ateşleme pilini kısa sürede bitiriyor. Her uçuş gününün sonunda da uçağın derinliklerinden pili ayırmak işime gelmiyor. Bu amaçla bir Arduino projesi gayet güzel olacak diye düşündüm. Sonrasında her zamanki gibi Attiny85 ile minik bir plaket yapıp nihai ürünü elde edebilirim.

Ancak...

Arduino'nun PWM uçlarından birini kullanarak bir test devresi yaptım. Çıkışı bir NPN transistör üzerinden bir P kanal MOSFET'e bağladım. MOSFET çıkışına da bujiyi bağladım. Arduino'ya bir potansiyometre takıp PWM değerini 0 - 100 arasında değiştirdim (buji için ayrı bir 2S LiPo kullandığımdan dolayı 100 bile fazla aslında). Bu şekilde sorunsuz olarak bujiyi kızdırabiliyorum. Şimdi tam hatırlayamıyorum ama PWM değeri 60 - 70 falan oluyor. O değerde buji gayet güzel parlamaya başlıyor.

Glow bujilerin normal çalışma aralıkları 3 - 3.5 Amper civarında. Yani yapılması gereken şey sabit akım sağlayabilmek. O zaman aklıma iki çözüm geliyor.

1- Bu sene başında bu işlere bulaştığımda ilk aldığım Hall sensörlü akım ölçme modülü. Bunun çıkışını Arduino'ya girip sürekli akımı kontrol eder, PWM değerini belirli limitler içinde değiştiririm.
Bunu denedim ve fiyasko oldu. Sebebini anlatacağım.
2- Bujiye seri bir taş direnç bağlayarak direnç üzerindeki gerilimi izlemek.
Bunu da denedim ve aynı sebeple fiyasko oldu.

Çıkışta bir PWM sinyali olduğu için akım sürekli değil. Bunun sonucunda Hall sensörle de olsa dirençle de olsa ölçüm anındaki durum sonuca yansıyor. PWM çıkışı ile buji arasına kondansatör falan koyup denedim ama olmadı. Mutlaka bir "flywheel" devresi yani bir diyot, bir bobin ve bir kondansatör gerekiyor. Bunlar için gerekli değerleri olsa olsa deneme yanılma ile bulabilirim ki çok zor. Bu konuyla ilgili pratik bilgiye kapım açık!

Eğer bu sorunu çözemezsem, kullanılacak pil türünü kıstlayıp (açıkçası modül içine entegre bir tek hücreli LiIon pil var aklımda) pilin tam şarjlı halinde bile 3.5 Amper'i aşmayacak bir PWM değeri kullanarak denemek var aklımda.
 
Onboard glow driver

Yine güzel bir proje ile bizlerlesin abi :thumbup:

İnşallah "flywheel" devresi ve elemanları hakkında başta Zafer kardeşim olmak üzere arkadaşlar bir öneride bulunurlar :)
 
Onboard glow driver

Bütün gece rüyamda bununla uğraştım. Buji açısından flywheel devresi hiç gerekli değil. Darbeli akımla gayet güzel çalışıyor. Akımı izleyebilmek açısından ise flywheel devresi gerekli. Ben de farklı bir yol çizdim kendime.

Tek hücreli bir LiIon pil kullanacağım. Pil ile elektronik devre aynı plastik kutunun içinde olacak. Pilin uçları ayrı bir kablo ile kutu dışına alınacak (şarj için). Pilin gerilimi işlemci tarafından okunacak. Sonuçta 3.5 V gibi bir alt değer belirleyebilirim. 3.5 V ile 4.2 V arasında değişen gerilimleri Atmel işlemciye okutmak çok kolay. (Bir yan ürün olarak da düşük voltaj alarmı çıkacak ortaya. LED'i hızlı yakıp söndürerek pilin bitmek üzere olduğunu gösterebilirim.)
Okunan pil gerilimini bir PWM değerine dönüştürmek çok kolay. PWM değeri 0 ile 255 arası olmak durumunda. Pil gerilimi ne kadar yüksek ise PWM değeri o kadar düşük olacak. Sanıyorum 85 (+/- 10) gibi bir aralık iş görecektir. Yani PWM değeri 75 - 95 arası değiştirilecek. Böylece akım ölçmek falan da gerekmeyecek. Flywheel devresine ve en az 4 Amper dayanımlı bir bobine de gerek kalmayacak. Devre yeterince minyatür hale getirilebilecek.
Bakalım bu teorik yakaşım pratikte nasıl sonuç verecek. İnşallah bu akşam bunun yanıtını bulabileceğiz.
 
Onboard glow driver

Sümer Yamaner' Alıntı:
... Bakalım bu teorik yakaşım pratikte nasıl sonuç verecek. İnşallah bu akşam bunun yanıtını bulabileceğiz.
Sonucu merakla bekliyoruz abi :thumbup:
 
Onboard glow driver

Sümer abi her ne kadar bilgisizligimiz yüzünden anlamasakta harika konular öğreniyoruz sayende tesekkur ederiz.

GT-I8190 cihazımdan Tapatalk kullanılarak gönderildi
 
Onboard glow driver

Çıkışta bir PWM sinyali olduğu için akım sürekli değil. Bunun sonucunda Hall sensörle de olsa dirençle de olsa ölçüm anındaki durum sonuca yansıyor. PWM çıkışı ile buji arasına kondansatör falan koyup denedim ama olmadı. Mutlaka bir "flywheel" devresi yani bir diyot, bir bobin ve bir kondansatör gerekiyor. Bunlar için gerekli değerleri olsa olsa deneme yanılma ile bulabilirim ki çok zor
Sümer abi, sorunun cevabı QUCS olabilir...
http://qucs.sourceforge.net/
 
Onboard glow driver

Zafer yine öğrenilmesi gereken bir şey koydun önüme. Başıma iş çıkaracaksın!!!

Bu akşam devreyi kurdum. Aşağıdaki (şimdilik) nihai kodla denedim. İlk anda oluyor gibi olmasına rağmen devreyi breadboard üzerinde kuş kafesi mantığı ile yaptığım için ufak bir tel teması elimdeki tek bujiyi kavurdu!!! Bu saatte arabaya inip bagajın derinliklerinden saha çantamı çıkarıp içinde buji aramak var ama açıkçası yemedi! :) Belki MINVOLT MAXVOLT ve PWMMAX PWMMIN değerlerinin hassas ayarı gerekecek. Yarın birkaç eski buji bulup onlar ile deneyeceğim.

Kodun özelliği şu:
Alıcıdan gelen sinyali okuyor (aşağıdaki kodda bunun yerine bir digital pini okuma işlevi var çünkü bir de alıcı ve kumanda bağlamak istemedim. Pin okuma yerine pulseIn() işlevi gelecek nihai kodda.)
ON sinyali geldiyse önce kızdırıcı pilinin voltajını okuyor. LiIon tek hücre için üst limit 4.2 V. Alt limit olarak da 3.2 V'u seçtim. Eğer pil voltajı bunun altındaysa çıkışı aktive etmiyor, sadece LED'i yakıp söndürerek OFF komutu bekliyor.
Eğer pil voltajı normal değerlerdeyse o zaman pwmon() işlevine dallanıyor. Burada alıcıdan ON komutu geldiği sürece voltajı okuyor ve ona göre bir PWM değeri oluşturup PWM çıkışına analogWrite() yapıyor. Ayrıca LED' i de sürekli yakıyor.
Burada da mantık şöyle: Eğer kızdırıcı pil gerilimi düşükse PWM değerini artırıyor, voltaj yüksekse PWM değerini azaltıyor. Tümü map() işlevi ile önceden belirlenmiş limitler dahilinde gerçekleştiriliyor.
Bu yöntemle çıkışa bir flywheel devresi gerekmeyecek diye düşünüyorum.

Kod:
// Buji kızdırıcı
// Buton girişi Digital Pin 2
// PWM çıkışı Digital Pin 3
// LED çıkışı Digital Pin 13 (onboard LED)
// Voltage sense ADC0

#define RECEIVER 2
#define LED 13
#define SENSE 0
#define PWMOUT 3
#define VOLTLIMIT 640
#define PWMMAX 112
#define PWMMIN 84
#define MINVOLT 655
#define MAXVOLT 860

int voltage;
int outpwm;

void setup()
{
  pinMode(LED, OUTPUT);
  pinMode(PWMOUT, OUTPUT);
  pinMode(RECEIVER, INPUT_PULLUP);
}

void loop()
{
  digitalWrite(PWMOUT, LOW);
  digitalWrite(LED, LOW);
  while (digitalRead(RECEIVER) == HIGH);
  while (digitalRead(RECEIVER) == LOW)
  {
    voltage = analogRead(SENSE);
    if(voltage < VOLTLIMIT)
    {
      blinkled();
      break;
    }
    pwmon();
  }
}



void blinkled()
{
  while (digitalRead(RECEIVER) == LOW)
  {
    digitalWrite(LED, HIGH);
    delay(300);
    digitalWrite(LED, LOW);
    delay(300);
  }
}

void pwmon()
{
  voltage = analogRead(SENSE);
  if(voltage < MINVOLT) voltage = MINVOLT;
  if(voltage > MAXVOLT) voltage = MAXVOLT;
  outpwm = map(voltage, MINVOLT, MAXVOLT, PWMMAX, PWMMIN);
  analogWrite(PWMOUT, outpwm);
  digitalWrite(LED, HIGH);
}

Bu da planladığım baskılı devre plaketi...

You must be registered for see images attach
 
Moderatör tarafında düzenlendi:
Onboard glow driver

Sümer Yamaner' Alıntı:
..... İlk anda oluyor gibi olmasına rağmen devreyi breadboard üzerinde kuş kafesi mantığı ile yaptığım için ufak bir tel teması elimdeki tek bujiyi kavurdu!!! Bu saatte arabaya inip bagajın derinliklerinden saha çantamı çıkarıp içinde buji aramak var ama açıkçası yemedi! :) Belki MINVOLT MAXVOLT ve PWMMAX PWMMIN değerlerinin hassas ayarı gerekecek. Yarın birkaç eski buji bulup onlar ile deneyeceğim.
Benim tanıdığım Sümer abi saat kaç olursa olsun arabaya iner ve yeni bujii alıp, testlere devam ederdi :D Demek ki bu hafta biraz yoğun geçmiş abi :laugh:
 
Onboard glow driver

Teşhis doğru. Pazar günü akşamı başladı ve ameliyathaneden çıkamadım desem yeridir. Ama arabada buji bulacağımdan emin olsam inerdim. Bulma olasılığım çok düşük olunca... :D
 
Onboard glow driver

Bugün çalışmalara devam ettim. Kötü ve iyi haberler var. Öncelikle planladığım tek hücreli LiIon işi olmuyor. Çünkü elimdeki MOSFET'ler bu kadar düşük gerilimde çalışmıyorlar. Bu konuyu biraz daha araştıracağım. Ben de devreyi biraz değiştirip Logic Level N Channel MOSFET kullandım. Pil olarak da 2S LiPo kullandım. Parametrelerin ince ayarını da yapınca devre olması gerektiği şekilde çalıştı. Buji kararında kızarıyor.
Şimdi kodu Attiny85'e göre yeniden compile edip Attiny85 ile deneyeceğim. Çalışmaması için bir sebep yok.
Ondan sonra plaketi yeniden düzenleyip prototipi üreteceğim bu akşam.
 
Onboard glow driver

Sümer Yamaner' Alıntı:
Attiny85 uyarlaması da tamam. Plaket baskısına geçiyoruz. :)

Abi çok güzel şeyler bunlar, her ne kadar temini kolay bir üründe olsa bir soruna çözüm getiriyor. Peki anlamak için ne yapmak gerekir abi. Nerden başlamak gerekir. :) (Not:Tek eksiğim bu kalmış gibi :laugh: )
 
Onboard glow driver

Doğuş' Alıntı:
Abi çok güzel şeyler bunlar, her ne kadar temini kolay bir üründe olsa bir soruna çözüm getiriyor. Peki anlamak için ne yapmak gerekir abi. Nerden başlamak gerekir. :) (Not:Tek eksiğim bu kalmış gibi :laugh: )

Bence şimdilik modellerinle ilgilen. O konuda artık sorunsuz menteşe yapıştırabilir duruma geldiğinde sana "uzaktan Arduino kursu" düzenlerim. :lol:

(Bana bak takılıyorum kızma sakın!!!)
 
Onboard glow driver

Eveeettt... Plaket hazır. Elemanlar lehimlendi ve kablolar takıldı. Birazdan arabaya inip kumandayı alacağım ve gerçek koşullarda test edeceğim. Sonra küçük bir plastik kutuya koyup yarın Piper'a monte edeceğim. Haydi hayırlısı... :)

[attachimg=1]

[attachimg=2]
 

Ekli dosyalar

  • Buji.jpg
    Buji.jpg
    149.9 KB · Görülme: 133
  • pic0001.jpg
    pic0001.jpg
    66.1 KB · Görülme: 133