Özgür Öztürk
Tecrübeli Uye
@ Emre Kaman : Al benden de okadar . İşte bu forumun güzel yanı da bu . Rc den yana sorunun olmasada güncel yaşantınla ilgili sorunlarını paylaşıp dertleşeceğin bir sürü uzman muabbet sever var .
Peki sen olsan nasıl okurdun? Önce onu bir anlat sonra ben yazayım. Bu arada olay düşündüğün gibi değil. 200 bin devir 400 bin pulse demek ve gayet güzel okunuyor Atmega328 ile.hocam selamlar,
hızı okumak için nasıl bir sensor/encoder kullandınız? arduino uno'nun clock hızı 200bin rpm(200k pulse demek) değerini ölçecek kadar hızlı değil. nihai üründe teensy gibi hızlı bir karta geçmeniz gerekebilir.
Bir gün türbinlilere geçebilirim umarım
Gelelim bu soruya...hocam selamlar,
hızı okumak için nasıl bir sensor/encoder kullandınız? arduino uno'nun clock hızı 200bin rpm(200k pulse demek) değerini ölçecek kadar hızlı değil. nihai üründe teensy gibi hızlı bir karta geçmeniz gerekebilir.
Bir gün türbinlilere geçebilirim umarım
Doğru, zordur ama sonu harikadır. İnsanı tatmin eder.
Zaten o nedenle "Mahallenin Delisi" unvanını sonuna kadar hakediyorsun!Hislerime tercüman olan bu cümle için teşekkürler. Hani bazen modeldeki ufacık bir detayı yapmak için saatlere, günlerce bazen aylarca kafa patlatıp gerekirse bir dolu yöntem deniyorum ya, işte bu en sondaki “harika tatmin” için hepsi
Offf çok banal yahu...Her ikisi de babamda vardı (o da inşaat muhendisi) elektronik ne oldu bilmiyorum ama sürgülü Aristoyu bana hediye etti, saklıyorum.
Dahası ben de hala bir çeşit sürgülü hesap makinası olan şu aşağıdakini kullanıyorum arada sırada:
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
Size karşı değilim, yapılamaz demiyorum, sizi destekliyorum, hatta geliştirmenize yardımcı olmak bile isterim. Bunu baştan belirteyimGelelim bu soruya...
Türbinlerde devir okumak için kullanılan iki ana yöntem var. Bunlardan birisi Hall sensör ile şafta gömülü bir mıknatısın okunması, diğeri ise şaft ucundaki deliği kullanarak infrared LED ve infrared diyot ile optik okuma. Infrared uygulaması eskilerde kalmış. Özellikle motor güneş görecek olursa tamamen devre dışı kalıyor. Hall sensörlü manyetik okuma ise son derece güvenilir bir çözüm sağlıyor.
Soruda Arduino Uno denilmiş. Ben Arduino kullanmıyorum. Doğrudan bir mikrokontrolör ile çalışıyorum. Haa tamam, kullandığım mikrodenetleyici bir Atmega328 ve 16 MHz'de çalışıyor yani Uno'dan farklı değil ama yine de bir Uno kullanılmadığının altını çizmeliyim.
Ölçülecek olan devir ile işlemci hızı arasında nasıl bir bağlantı kurulduğunu açıkçası net olarak anlayamadım. O nedenle belki faydası olur diyerek biraz genel bilgi paylaşmak isterim.
Devir ölçümünde iki temel yaklaşım söz konusudur. Eğer kendi bakış açımızı kullanmayıp sadece Google Amca'ya sorarsak tek bir yöntem olduğunu görür (ve ne yazık ki yanılırız)! Zira Google Amca der ki, devir ölçeceksen iki tur arasındaki süreyi ölç ve oradan devri hesapla. Gerçekten de bir Google taramasından çıkan tüm sonuçlar neredeyse bu yönde. Hatta bu aramada o kadar aptalca yaklaşımlar var ki insanın dudakları uçukluyor. Neyse biz konuya dönelim...
İki temel yaklaşım dedik.
Biri Google Amca'nın dediği yöntemdir. Yani her nasıl bir sensör kullanıyorsak, ondan gelen iki devir sinyalinin arasındaki süreye bakarız. Örneğin 200 milisaniye aralıkla iki darbe geldiyse, saniyede 5, dakikada 300 devir demektir. Bu yöntem özellikle düşük devirli sistemler için uygundur. En önemli dezavantajı da sıfır devir konusudur. Yani ölçülen sistem hareket etmiyorsa arasını okuyacak iki darbe oluşamayacağı için yazılımda buna karşı bir önlem gerektirir. Yani bir timeout süresi belirlenir, bu da sistemin beklenen en düşük devir sayısının altında kalacak şekilde hesaplanır. Örneğin bir benzinli motorun devrini ölçeceksek, motorun en düşük rölantisinin 1200 devir olacağını bilerek ilerleyebiliriz. 600 devri sınır alabiliriz. O zaman periyod olarak 100 milisaniye diyebiliriz. Yani darbe beklerken 100 milisaniye içinde darbe gelmezse devir sıfır diyerek geri dönebiliriz. Bu yöntem, darbe aralığını ölçtüğümüz zamanlama sisteminin çözünürlüğüne bağlıdır ve yüksek devirlerde işe yaramaz.
Yüksek devirleri ölçmenin en iyi yolu belirli bir gate süresi içinde gelen devir darbelerini saymaktır. Bunu nabız saymaya benzetebiliriz. Dakikadaki kalp atım sayısını bir dakika boyunca nabzı sayarak bulabiliriz ama pratik olmaz. O zaman ne yaparız? 15 saniye sayar, elde ettiğimiz rakamı dörtle çarparız.
İşte devir ölçerken de bunu yapıyoruz. Biraz detay vereyim:
Mikrodenetleyicinin zamanlayıcılarından birini öyle programlıyoruz ki belirli sürede bir interrupt oluştursun.
Diğer yandan mikrodenetleyicinin devir sensörüne bağlı bacağını da pin change interrupt üretecek şekilde programlıyoruz.
Bu bacaktaki her değişim bizi bu interrupt servis rutinine götürüyor ve orada sadece bir sayacı bir artırıp geri dönüyoruz.
Zamanlayıcının oluşturduğu interruptta ise artık sayma süresi dolduğuna göre sayaç değerini kalıcı bir değişkene aktarıp sayacı sıfırlıyoruz ve geri dönüyoruz.
Dikkat edilirse tüm devir izleme olayı interruptlar ile yürüyor ve ana kod için tamamen şeffaf durumda. Ana kod ihtiyacı olduğu her an sayımı tamamlanmış bir değeri okuyup oradan devri hesaplayabiliyor. Sistem o kadar "şeffaf" ki milyon devirlere çıkılmadıkça işlemcinin performansının ihmal edilebilir bir bölümünü kullanıyor ve ana kod bundan etkilenmiyor.
Umarım anlatabilmişimdir...
Gelelim Teensy vs önerisine...
Öncelikle bir türbin ECU'sü tasarlarken bu devrenin ne yapacağını bilmek gerekiyor. Türbin son derece basit bir sistem temelde. Çalışmakta olan bir türbinin izlenecek toplam iki parametresi var. Devir ve egzost gazı sıcaklığı (EGT). Kontrol edilen tek bir şey var, o da yakıt pompa motorunun gücü. Yani çalışmakta olan bir türbini en küçük mikrodenetleyici ile bile kontrol edebiliriz. İlk çalıştırması oldukça kompleks ve burada kızdırma bujisi, propan akış kontrolü vs vs gibi başka kontrol parametreleri çıkıyor ortaya. Bunların altından da Atmega328 rahat rahat kalkıyor.
İşlemci gücü gerektiren tek şey "user interface". Zaten bizim kodun en büyük kısmı ekran kontrolü, buton kontrolü ve setup aşamalarına ait. Eğer HD çözünürlüklü dokunmatik bir ekranla bir ECU yapmak istersek gerçekten de Atmega 328 yetersiz kalacaktır. Ama motoru çalıştırıp çalışmayı izlemek için fazlasıyla yeterli olduğunu söylemeliyim.
Bundan mı?Sümer abi,
Devir ölçme tekniğinin adı capture pwm.
Neden çift çekirdekli bir kart tasarlamıyorsun? (Merakımdan sordum)