Ayırt Edici Sensör Yardım

Başlatan C493, 17 Eylül 2019, 13:17:37

C493

Herkese Selamlar ve iyi çalışmalar. Yaptığımız bilimsel bir deneyde yeterli ekipmana sahip olamadığımız için ilerleyemiyoruz. Kısaca anlatacağız. İki adet analog mekanizmaya bağlı iki adet kırmızı ışık veren ledimiz var. Mekanizmalar arasında 3 mikro saniyelik işlem farkı var. Yani A mekanizması işini bitirdikten 3 mikro saniye sonra B mekanizması işini tamamlıyor. İlk bitirenin kafasındaki led ilk olarak yanıyor sonrada diğerininki yanıyor.  Bazı iterasyonlarda B önce bitirip A hemen ardından (3mikro saniye sonra) bitiriyor. Ve aradaki süre çok ama çok küçük olduğundan biz hangisinin 'önce' bitirdiğini hangi ledin önce yandığını çıplak gözle göremiyoruz. Bizde dedikki ledlerin önüne foto diyot koyalım. Fotodiyotun Tepki süresi 5 nano saniye yani istediğimizden hızlı. Peki fotodiyotlardan aldığımız sinyalleri nasıl bir sisteme verirsek , hangi ledin önce yandığını bize söyleyebilir ? Arduino ile bu işi çözebilirmiyiz ? Yardımcı olun lütfen. Şimdiden çok sağolun.

Hattuşa

slm bu bahsettiğiniz devreyi yapmanın bir kaç yolu var,
1. yol: biz rotary encoder okumalarında 4013 gibi D tipi dual flip-flop ile hangisinin daha önce aktif olduğunu uzatabiliriz ve basit bir işlemci ile tespit edebiliriz.
2. yol: hızlı bir mcu kullanarak portb change kesmesine sokup aktif olana göre led yakılabilir.

örneğin ben olsam 12F1822 gibi 8 pinli çok basit bir PIC serisi işlemci ile basit bir şekilde 2 led yakarak yapılabileceğine inanıyorum.
tabi bu ardiuno ile de yapılabilir.

ardiuno ile yapabilmek için; ardiunonun rotary encoder kütüphanesini kullanarak tıpkı encoderin yön bilgisini alır gibi datayı çeker buna göre de hangisinin önce yandığını tespit edebiliriz.(bu da 3. yol oldu)

ben bu elektroniği bu yüzden seviyorum zira bazı noktalarda çözüm birden fazla oluyor.
benim en iyi bildiğim, hiç bir şey bilmediğimdir

Yusuf usta

Alıntı yapılan: C493 - 17 Eylül 2019, 13:17:37Herkese Selamlar ve iyi çalışmalar. Yaptığımız bilimsel bir deneyde yeterli ekipmana sahip olamadığımız için ilerleyemiyoruz. Kısaca anlatacağız. İki adet analog mekanizmaya bağlı iki adet kırmızı ışık veren ledimiz var. Mekanizmalar arasında 3 mikro saniyelik işlem farkı var. Yani A mekanizması işini bitirdikten 3 mikro saniye sonra B mekanizması işini tamamlıyor. İlk bitirenin kafasındaki led ilk olarak yanıyor sonrada diğerininki yanıyor.  Bazı iterasyonlarda B önce bitirip A hemen ardından (3mikro saniye sonra) bitiriyor. Ve aradaki süre çok ama çok küçük olduğundan biz hangisinin 'önce' bitirdiğini hangi ledin önce yandığını çıplak gözle göremiyoruz. Bizde dedikki ledlerin önüne foto diyot koyalım. Fotodiyotun Tepki süresi 5 nano saniye yani istediğimizden hızlı. Peki fotodiyotlardan aldığımız sinyalleri nasıl bir sisteme verirsek , hangi ledin önce yandığını bize söyleyebilir ? Arduino ile bu işi çözebilirmiyiz ? Yardımcı olun lütfen. Şimdiden çok sağolun.

bir adet 7408 ve kapısı entegresi ve bir adet 7404 inverter ile işlemi yaparsın. 7408 içinden iki girişli ve kapılarından iki tanesinin birer girişini led yerine bağlayacağın 4n25 optokuplör çıkışlarına bağla sür. kapıların birer uçları optodan artı gelene kadar lojik sıfır olacak. her durumda iki kapı çıkışı da lojik sıfır olacak. bu kapı çıkışlarını tersleyerek diğer boş kalan uçları sür. yani optolardan bir data gelene kadar her iki kapının birer girişi terslenerek geldiği için lojik1 olacak diğer girişleri de optodan bir şey gelmediği için lojik 0 olacak. kapı çıkışları "0" olarak beklerken hangi optodan "1" datası gelirse o kapı çıkışı "1" olacak ve diğer kapıya terslendiği için "0" datasını verecek. böylelikle ilk datayı veren opto kazanır sadece onun kapısı "1" olur. diğeri ne olursa olsun lojik"1" durumuna geçemez.

isis ile simüle etmek lazım
Mühendislik Diplomayla olmaz. İnsanı adam eden, bilgi değil görgüdür.

Furkan KELEŞOĞLU

bu anlattığın sistem sürekli mi calışıyor ? yoksa  1 defaya mahsus mu calışıyor ? eğer 1 kereliğine calışıyor ise kolay fakat devamlı calışıyor ise Mikro denetleyici şart.  Mikro denetleyici olarakta Arduino Uno kullanabilirsiniz yanlış hatırlamıyor isem. 2 adet dış kesme pini var yani tam işinizi görecek şekilde. 

Arduino ile de Kesmeden aldığınız bilgiye görede Serial ekrana print edip oradan izleyebilirsiniz hangisinin daha önce geldiğini.

Örnek

External_Interrupt()  // dış kesme oluştuğunda mikro denetleyici bu fonksiyona gelerek fonksiyon icini işlemeye başlayacaktır.
{
if(kesme1) // A girişi kesme 1 e bağlı olsun.
{
println("A=1 - B=0");
kesme1=0;
}
else (kesme2) // B girişide kesme 2 ye bağlı olsun.
{
println("A=0 - B=1");
kesme2=0; // tekrardan kesme oluşabilmesi için kesme statüsü sıfırlanıyor.
}
} // kesme fonksiyonu bitiş
NOT: Yazdığım kod , örnek algoritmayı göstermek amacıyla olup kesmeleri kurmak ( external ınterrupt fonksiyonları ) arduino kodunu yazacak kişiye kalmıştır. bu kod Arduinoda bu haliyle calışmaz. 
Mekatronik Teknikeri. <br />Elektrik-Elektronik Teknisyeni.

Hızlı Yanıt

Not: Bu konu bir moderatör tarafından onaylanmadan görüntülenmeyecektir.

Adı:
E-Posta:
Doğrulama:
Lütfen bu kutuyu boş bırakın:
IRFP250 Nedir:
kısayollar: göndermek için alt+s veya önizleme yapmak için alt+p'ye basın