avatar_Hattuşa

sinyal kaymasını algılatmak

Başlatan Hattuşa, 24 Eylül 2019, 12:00:11

Hattuşa

slm arkadaşlar;
elimde aşağıdaki gibi bir sinüs sinyali var. bu sinyal bir bobinden gelmektedir, bu sinüs sinyalimin amplutesi ve frekansı değişmeden sağa veya sola doğru kayıyor ve ben bunu basit ve etkili bir biçimde nasıl tespit edebilirim.
sinyalin amplutesi değişmiş olsa MCU ile tepe noktasını yakalar ve adc ile tepe noktasından okuma yaparak ampluteyi tespit edebilirdim. yada frekansta kayma olsaydı veya duty&cycle oranında değişme olsaydı int girişinden  duty& cycle oranını takip ederdim. ANCAK;
benim sinyal cins, ne amplute nede frekans değişiyor sadece sinyal sağa ve sola kayma yapıyor, işlemci ile bu kayma oranını tespit etmem lazım ama bir türlü nasıl yapmalıyım düşünemiyorum. elimde sabit bir frekansta yok karşışaltırma da yapamıyorum.

siz olsaydını nasıl çözerdiniz?




ete

Karmaşık bir konu. Sinyalin kayması demek sıfır noktasından da kayarak geçmesi demek oluyor bunu şekle bakarak söylüyorum. Bence ip ucun bu olmalı. Sinyalin peryodu ne acaba bu belli ise ona göre işlem yapmak gerek. Diyelimki 50 Hzlik bir sinyal bu. Peryodu yada sıfır noktasından geçiş süresi 10 ms dir. İlk sıfır geçişten sonra time1 sayacını çalıştırdık diyelim. Şayet sinyal 10 ms den daha önce sıfır geçişe gelirse sinyal sola kaymış demektir. Sinyal 10 ms den daha uzun sürede sıfır geçişe gelirse sinyal sağa kayıyor demektir.
Aklıma gelen bu.

Ete

Hattuşa

ETE hocam sinyalim sabit 50khz ve stabil, sinüsüm düzgün ben bir comparatorla doğru noktadan çalıştığımda %50 lik duty&Cycle oranını elde edebilrim.
    Acaba diyorum; timer i aktif etsem ve 10 mS lik hassas bir sürede zaman tutsam ve bu zaman süresince INT girişinden gelen palsleri saydırsam işe yaramaz mı? yani; 50 khz demek => 1000 ms de 50.000 pals demektir. 10mS de de normal şartlar altında 500 tane pals almam lazım, sağa doğru kaydığında 500 palsden düşük, sola doğru kaydığında da 500 palsden fazla olması gerekmiyor mu?

sizin söylediklerinizi 2-3 kez okudum, sanırım sizin anlatmak istediğinizde şu olsa gerek yakaladığın pals anında süreyi ölç, süre uzunsa sağa kayıyor, kısa ise sola kayıyor demektir. yanlışmıyım?

acaba isis simülasyon ortamında sinyali kaydırma yolu varmıdır? onu becerebilsek bu dediklerimizi simülasyon ortamında test etmiş olurduk

ete

Benim yöntem konusunda tespitin doğru.
Senin yönteminde teorik olarak aynı şeyi ifade ediyor ama daha uzun bir yol gibi geliyor bana.
Bunu hissederek söylüyorum bilimsel bir temeli yok. Sen kendi yönteminle başla istersen. Puls sayma işinde komut gecikmeleri etkili olabilir. Dikkate almalısın.

Ete

onurinci

çelişki, @@ bu sinüs sinyalimin amplutesi ve frekansı değişmeden sağa veya sola doğru kayıyor @@  ,yada ben anlayamadım..
genlik sabit frekans kayıyorsa LM331 ADFVC32 RC4151 türevi bir çip ile DC'ye çevirirsin ve ADC ile yakalarsın...

Hattuşa

Alıntı yapılan: onurinci - 24 Eylül 2019, 20:56:20çelişki, @@ bu sinüs sinyalimin amplutesi ve frekansı değişmeden sağa veya sola doğru kayıyor @@  ,yada ben anlayamadım..
genlik sabit frekans kayıyorsa LM331 ADFVC32 RC4151 türevi bir çip ile DC'ye çevirirsin ve ADC ile yakalarsın...

onur hocam adımız çıkmış bir kere metal dedektörcü olarak bende bu maksatla aşağıdaki FGM-3 manyetometre sensöründen esinlenerek BFO pinpointer tasarlamak istedim bu maksatla kararsız bir osilator yaptım.

fazla bir devre eklemeden MCU ile basitce değişimi takip etmek adına çözüm arıyorum.




er-da

merhabalar ..
bir adet colpitts osc. yapıp çıkış frekansını gözlemlersen  yani frekansmetre prensibine göre
arama bobinine non ferro cisim yanaştığında bobinin indükansı değişecek ve frekans artacak ferro cisim yanaştığında frekans azalacak  bence en basit yolu bu öyle de yapıyorlar. en hassas şekli  1hz farkı alabilmeli ve hızlı olması için 200 ms de bir kontrol yapmak lazım.

bir butona basıldığında o anki osc frekansını alıp bir değişkene yazmalı sonra frekans değiştimi diye devamlı kontrol..

Hattuşa

Alıntı yapılan: er-da - 25 Eylül 2019, 01:26:25merhabalar ..
bir adet colpitts osc. yapıp çıkış frekansını gözlemlersen  yani frekansmetre prensibine göre
arama bobinine non ferro cisim yanaştığında bobinin indükansı değişecek ve frekans artacak ferro cisim yanaştığında frekans azalacak  bence en basit yolu bu öyle de yapıyorlar. en hassas şekli  1hz farkı alabilmeli ve hızlı olması için 200 ms de bir kontrol yapmak lazım.

bir butona basıldığında o anki osc frekansını alıp bir değişkene yazmalı sonra frekans değiştimi diye devamlı kontrol..

elbette bu da bir seçenek, hatta arşivimdeki onlarca şemadan birisini alıp geliştirebilirdim, haklısınız.
ben sanırım macera arıyorum.  ;D  ;D  ;D

Hattuşa

bu arada verdiğim bu osc şeması kararsız colpitts osc şemasıdır. iki bobin iç içe olarak sarılmış vaziyette olup, 1 bobinle çevreye manyetik alan yaymak, 2. bobinle (1. bobine göre daha yüksek endüktansla sarılıp) çevredeki manyetik indüklemeleri tespit etmek ve aynı zamanda 1. bobinin frekansına geri besleme sağlayarak o bahsettiğiniz altın, gümüş gibi metallerde frekans düşüşünü, demir kobalt, magnezyum gibi metallerde de frekans yükselmesini daha belirgin hale getirmek için tasarlanmıştır. tasarım bana ait değil, ingiliz stafen mayer' e aittir.

elektro77

#9
Aşağıdaki opamp devresinini nasıl bir tür opamp devresi olduğunu açıklarmısınız. Dedektöre metal yaklaştırdığımda osiloskop ölçümünde B opampının çıkışı dışında hiç bir yerde frekans yada genlik yada duty değişimi ölçemiyorum.
bu nasıl bir devredir.
devredeki 555 in çalışma frekansı 298Hz dir.mosfet gate inde görülen +duty %3.2 dir.
opam a nın girişinde ki frekans 300Hz. duty+ %98 dir. gerilim girişteki C3 kondansatörden önce gnd göre 9 volttur. Kondansatörden sonra 5.325 volttur
opamp b çıkışında görülen metal yokken frekans 0. metal tam yaklaşınca 300 hz ve duty+ %4 tür.
opamp b çıkışında görülen metal yokken gerilim 1.348volt  metale tam yaklaştığında 1.650 volt tur.


"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Hattuşa

Alıntı yapılan: elektro77 - 28 Eylül 2019, 13:14:17Aşağıdaki opamp devresinini nasıl bir tür opamp devresi olduğunu açıklarmısınız. Dedektöre metal yaklaştırdığımda osiloskop ölçümünde B opampının çıkışı dışında hiç bir yerde frekans yada genlik yada duty değişimi ölçemiyorum.
bu nasıl bir devredir.
devredeki 555 in çalışma frekansı 298Hz dir.mosfet gate inde görülen +duty %3.2 dir.
opam a nın girişinde ki frekans 300. Hz duty+ %98 dir. gerilim girişteki C3 kondansatörden önce gnd göre 9 volttur. Kondansatörden sonra 5.325 volttur
opamp b çıkışında görülen metal yokken frekans 0. metal tam yaklaşınca 300 hz ve duty+ %4 tür.
opamp b çıkışında görülen metal yokken gerilim 1.348volt  metale tam yaklaştığında 1.650 volt tur.




hocam ben sana bir simülasyon dosyası hazırlayayım, bu şekilde bildiklerimi anlatmayı beceremem, aslında oldukça basit bir işlem ve voltaj ile işin yok

elektro77

#11
Aslında amacım yukarıdaki devreden adc okuyabileceğim uygun bir yer bulup iyi bir bip bip sesi almak hepsi bu.
fakat voltajla işim yoksa bu işi yapmanın yolu pulsleri dc ye çevirip adc ye girmek olacak. opamp çıkışına smps güç kaynaklarındaki gibi hızlı bir diyot bağladım ve dc ye çevirdim ve diyotun çıkışına 100 nf bir tantal kondansatör attım.testere dişi şeklinde yaklaşık bir dc aldım.1.650 volt puls çıkışını 7.560 volt 4mA e  çıkardım. fakat çıkışa bir 10mA bir led bağladığımda 7.560 volt 2 volta düşüyor.
Adc girişte aynı sorunu yaşarmıyım bilemiyorum.
Birde şu var 12F675 te timer1 ayarlarını ve kesmesini oluşturmak için cebelleşip duruyorum.
kaynaklarda 12F675 ile yapılmış tam bir tmr1 kesmesi örneği bulamadım.
Yine ete hocanın başını ağrıtmak istemiyorum. Bu konuda yardımcı olabileceklerin yardımına açığım.
adc den okunan değere göre timer1 ile buzzer aktif etmek ve hızlandırıp yavaşlatmak...

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Hattuşa

Alıntı yapılan: elektro77 - 28 Eylül 2019, 17:11:39Aslında amacım yukarıdaki devreden adc okuyabileceğim uygun bir yer bulup iyi bir bip bip sesi almak hepsi bu.
fakat voltajla işim yoksa bu işi yapmanın yolu pulsleri dc ye çevirip adc ye girmek olacak. opamp çıkışına smps güç kaynaklarındaki gibi hızlı bir diyot bağladım ve dc ye çevirdim ve diyotun çıkışına 100 nf bir tantal kondansatör attım.testere dişi şeklinde yaklaşık bir dc aldım.1.650 volt puls çıkışını 7.560 volt 4mA e  çıkardım. fakat çıkışa bir 10mA bir led bağladığımda 7.560 volt 2 volta düşüyor.
Adc girişte aynı sorunu yaşarmıyım bilemiyorum.
Birde şu var 12F675 te timer1 ayarlarını ve kesmesini oluşturmak için cebelleşip duruyorum.
kaynaklarda 12F675 ile yapılmış tam bir tmr1 kesmesi örneği bulamadım.
Yine ete hocanın başını ağrıtmak istemiyorum. Bu konuda yardımcı olabileceklerin yardımına açığım.
adc den okunan değere göre timer1 ile buzzer aktif etmek ve hızlandırıp yavaşlatmak...



şimdi bir karar ver sistemi verdiğin şemaya göre simülasyonla anlatayım mı?
yoksa devrene uygun kesme ile algılatıp bu algılatmaya göre buzzeri kesme ile arka planda senkronize bir şekilde çalışacak şekilde kodmu yazayım?
not:kod yazarsam protonda yazarım sen istersen PBP ya çevirirsin

Hattuşa

bu arada senin cihaz bu şekilde çalışıyor değilmi?

elektro77

#14
hocam verdiğiniz dosya nedense benim proteusta açılmadı. galiba bi sorun var.
proton da yazarsanız çevirebilirim galiba. çünki daha önce proton kullandım. aşağı yukarı pbp ile aynı zaten.Hatırlarmısınız beraber bir proje yapmıştık. o projede baya haşır neşir olmuştum protonla. grafik ekran kullanım kolaylığı sayesinde.

gönderdiğiniz proteus dosyası aşağıdaki hatayı veriyor.

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Powered by EzPortal