Mesafe sensörü hakk.

Başlatan cemilsivas, 18 Aralık 2015, 22:44:20

cemilsivas

İyi akşamlar. Geçenlerde hareket olduğunda elektriği kesen bir devre yaptım. Hareket algılayıcı olarak pır sensörü kullandım.
Evde kullanmadığım park sensörüm vardı. Oradaki sensörleri bu devrede kullanmak istiyorum.
Biraz araştırma yaptım. HCSR04 sensörü kullanılmış genelde. Onun da verici ve alıcı ayrı sensör. Ancak park sensöründeki algılayıcılar alıcı-verici sanırım.
Bu sensörlerden okuma nasıl yaparım?
Not: Benim için mesafe ölçmesi önemli değil. Hareket varsa 5v, yoksa 0v olacak şekilde ayarlayacağım.

MB_77

#1
bu mesaj tarafımdan silinmiştir.

Burak

#2
HC-SR04 , ultrasonik dalgalar kullanarak mesafe ölçümü yapan bir modüle verilen bir isim .. Bu sensör 8 peryodluk 40 kHZ'lik dalgayı püskürterek analog çevrime alıcı-verici birimlerinin asenkron paslaşması ile zemin hazırlar , bu sinyaller önce modüle sonrada demodüle edilerek filtrelenir , hemen arefesindeki 8. dalgadan sonra mesafe miktarı ile orantılı olarak ECHO pinini yüksek seviyeye çıkartır ve ardından düşük seviyeye tekrar geri döner ....
Bu sensör ile yapılacak bir ölçüm için kullanılacak matematiksel algoritma , fiziksel sesin havadaki yayınım hızı ve dalga alışveriş süresi kullanılarak yapılacak bir hesaptan ibarettir ... Sensörün çalışma ilkesi dalganın gönderilip geri gelme süresinin hesaba katılması sonucu elde edilen fiziksel olaya tabiidir .. Tabii ki burada da birazcık fizik kullanacağız ...

X = V * t formülüne hepimizin aşinalığı az çok vardır ..

Burada biz V'nin yani ultrasonik ses dalgasının havadaki yayınım hızının 343,2 metre/saniye civarlarında olduğunu biliyoruz ... Geriye dalganın karşıya gönderilip alıcıya ulaşma süresi olan t'yi modülden almaya kalıyor .. Modül bize bu süreyi echo pininden belirli bir sürelik high palsi göndererek anlatıyor ... Bizde bu süreyi  ;
pulsin echo,1,t

komutu aracılığı ile t değişkenine alıyoruz ..

Ama modüle bu çevrimi yaptırtmak için bütün bu kodlardan önce 30 mikrosaniyelik bir high palsi göndermek gerekiyor ki modüle bu çevrimi yapması için emri verebilelim ...

Yani ;


high trig   
pauseus 30
low trig


Bu durumda geriye sadece X yani yol hesabını yapmaya kalıyor işimiz...

Bunun içinde .. 4 MHZ'lik osilatör frekansında

x = ((t*10)/58)


Formülü ile istediğimiz mesafe sonucuna ulaşırız ...

Eğer senin bu modülü sadece hareket varlığını tespit etmek amacıyla kullanman gerekiyorsa , stabil halde iken yapılan ölçüm mesafesinin +,- 10 cm aralığındaki değerlerden farklı olması kondüsyonu için ufak bir algoritma ile kontrol sağlayabilirsin ... Örneğin ; Modülün önündeki 45 derecelik bakış mesafesinde , 300 cm'den uzak olmayan bir noktaya bakar halde ölçtüğün mesafe 200 cm' olsun ... Sende

if x<190 then high alarm


Şeklinde bir algoritma ile bunu çözebilirsin ..

Unutmadan , bu sensörden sürekli aynı stabillikte ölçüm sonuçları alınmayabilir , ortam sıcaklığı nem ve ışık gibi etkenler havanın Magnetik geçirgenliği ve dieletrik sabititesi Epsilon değerlerini değiştirdiği için ve dolayısıyla ses dalgasının yayınım hızını değiştirebildiği için alt üst toleranslar (+-10) deneysel olarak belirlenmelidir ... Ayrıca sensör için 3-4 cm'den yakın değerler için olumlu sonuçlarda alınamamakta ... Ve son olarak ölçümler önlem olarak , 60-100 mS'lik peryodlarda yapılmak zorundadır ..

Burak
Ω Gens Una Sumus Ω

cemilsivas

#3
Verdiğiniz cevaplar için teşekkür ederim.
Burak GÜNAY Verdiğiniz bilgileri ileride picli devremde kullanacağım. Benim sıkıntım şu an daha çok devre ile alakalı.

MB_77
Şimdi 555 ile ya da osilatör ile sinyali ürettim. Sensörün iki kablosu var. Biri muhtemelen enerji diğeri de data. Ben pals gönderdim. Okuma için 555 ten sinyali kesip alıcı devreye  data kablosunu yönlendirmem mi lazım?

İlyas KAYA

Alıntı yapılan: cemilsivas - 19 Aralık 2015, 10:49:18
Verdiğiniz cevaplar için teşekkür ederim.
Burak GÜNAY Verdiğiniz bilgileri ileride picli devremde kullanacağım. Benim sıkıntım şu an daha çok devre ile alakalı.

MB_77
Şimdi 555 ile ya da osilatör ile sinyali ürettim. Sensörün iki kablosu var. Biri muhtemelen enerji diğeri de data. Ben pals gönderdim. Okuma için 555 ten sinyali kesip alıcı devreye  data kablosunu yönlendirmem mi lazım?

İlerde diye birşey yok siz yine PIC ile kullanacaksınız.

"Bu sensörlerden okuma nasıl yaparım?"

sorusuna gayet güzel cevap vermiş.

Mesafe okumadan bu sensörden bir işlem yapamazsınız. Önünden nesne geçtiğini anlamak içinde yine mesafeyi ölçmelisiniz. Diyelim durağan mesafemiz 100mm. Bu mesafe 100mm 'in altına indiğinde önünden nesne geçmiş yahut nesne var demektir.
555 ile filan olacak iş değil.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

cemilsivas

Sensörler algılamalarına göre elektrik sinyali üretmiyor mu?
Ne 555 ile yapılan çok devre var. Hatta pic kullanmadan mesafeye göre led yakılan projeler var nette.

Burak

#6
Aslında Mikrodenetleyicinin yaptığı iş belli .... TRIG pinine 10-30 us'lik bir pals gönderip , echo'dan dönecek sinyalin uzunluğuna göre mesafe hesabı yapmak ... O halde senin ihtiyacın olan analog devre belirli bir peryotta dediğimiz uzunlukta bir pals gönderip , echo pininden gelecek olan high pals'inin uzunluğuna göre bir devreyi sürecek bir yapı ... Ama daha öncede söyledim , MCU'lar bu noktada ciddi bir önem arz ediyor .. Bu önem ise onların mesafe yorumlama nitelikleri ile donatılabilmesi .. Sırf bu yüzden daha stabil bir sistem elde etmek ancak ve ancak MCU'lu bir yöntemden geçiyor .... Sebebini tekrar söylüyorum altını çizerek .. Ardışık Sensörel okuma sonuçları hareketsiz bir ortamda dahi sürekli olarak farklılık arz edilebilir .. Analog sistem için buna bir eşik koyabilirsin ancak.. Bu eşik ayarınıda opamp - asenkron - senkron sayıcı ve tetikleme birimi olarak en az maliyetli ve en efektif bir şekilde 3 katlı bir yapıda elde edebilirsin ... Bir düşün , gerisini tekrar yorumlayarak sonuca ulaştıralım ... Ben fikirlere açığım ... Ama önerim kolaylık ve stabillik bakımından MCU'lu bir devredir demeden de geçemeyeceğim ..

Burak
Ω Gens Una Sumus Ω

MB_77

#7
bu mesaj tarafımdan silinmiştir.

Burak

Alıntı YapDevrenin tamamının analog olmasının önünde hiçbir engel yok. Bahsettiğiniz 555li devreler oldukca yaygın. Üstelik sadece var yok tespitini analog temelli devre yapmak daha kolay

Alıntı YapYapmak istediğinizin çok fazla iyi örneği olmadığından zor bir konuya girmek istediniz.

Bi açıklama alalım lakin bazı üyelerimizi bu aralar anlamakta gerçekten zorlanıyorum ... Belkide ben yanlış anlıyorumdur ..

Burak
Ω Gens Una Sumus Ω

MB_77

#9
bu mesaj tarafımdan silinmiştir.

cemilsivas

Bilim teknoloji dergisi sitesinde kendimiz yapalım bölümünde 555 ile sinyal üretip alıcı sensör ile gelen sinyali devre ile pice aktarmış.
Ben de 555 ile sinyali üreteyim. Düşen kenarı yakalayıp alıcı okuması yapayım. Ama kafama yatmayan durum şu. Sensör düşen kenarda mı alıcı durumuna geçiyor?

ete

Epeyce tartışma var ama ortada somut bir sonuç yok gözüküyor. Bu işte bazı noktalara açıklık getirmek gerekir diye düşünüyorum.
Bu sistemde bir verici 40 Khz lik sinyali üretiyor ama bu sinyali ortama da vermesi gerekiyor. Sonra birde alıcı olması gerekiyorki buda yollanan ve bir cisme çarpıp geri dönen sinyali alacak bir alıcı devre olup üzerinde çok düşük güçteki gelen sinyali kuvvetlendirecek birkuvvetlendirici olamsı gerekiyor. Ayrıca yollama ile alma arasındaki zamanı belirleyerek mesafeyi hesaplayacak bir işlemci olması gerekiyor.
555 yalnızca 40 Khz lik sinyali üretebilir. Bu sinyalin ortama yayımasını transduser yapması gerekiyor. Bu durumda başlangıta transduser 555 e bağlanacak ve üretilen sinyali ortama yayacaktır.
Bunun ardından hemen aynı transduser 555 devresinden ayrılarak bu sefer alıcı devreye bağlanıp gelen çok düşük güçdeki sinyali algılayıp kuvvetlendirecek ve işlemcinin anlayacağı seviyeye getirerek sinyalin algılanmasını sağlayacaktır.

Bu noktada alıcının aktif edilmesi diye bir husus konu edilmemeli. Zira bu işi program otomatik yapmalıdır. 555 den sinyal verildikten sonra hemen vakit kaybetmeden sistem program tarafından alıcıya bağlanmalıdır . Ayrıca alma işinin düşen kenar yada yükselen kenar ayırımı da kullanıcıya ait bir konu. Alıcıdan gelen sinyali değerlendirecek olan pic pini hangi lojik konumda bekliyor ise alma işlemi onun tersi konumda başlatılmalıdır. Bu işe en uygun çözüm LOW da bekleyen pin HIGH olunca alma başlamalıdır. Şayet alıcı devre kendisi mutlaka LOW yada HIGH şeklinde bir lojikkonum üretiyor ise pic pininin bir konumda bekletilmesi gerekmez. Örneğin alıcı çıkışı LOW konumda zaten bekliyor ve cisimden yansıma olunca HIGH puls ları üretiyor isepine lojik konum vermemek gerekir. Buna da dikkat etmk gerekiyor.

Bu iş çok kolay gözükmüyor. Piyasada 5 TL ye satılan Alıcı ve vericinin aynı kart üzerinde olduğu sensörler bu kadar işi kendileri yapabilmekte işlemciye yalnızca sinyali gönder emrini vermek ve zaman tutarak PORTB.0 kesmesi ile gelen sinyalin alınması kalıyorki buda artık son derece kolay bir iş. Böyle bir sistem dururken yukarıdaki sistemle uğraşmak çok akıllıca olmasa gerek. Özel bir amacı var ise sözüm yok ama çok fazla yapılacak iş var orada.
- Alma ile vermenin anahtarlanması,
- İlave 555 devresinin kurulması
- Alıcı kuvvetlendiricisi
gibi işlerin yapılması gerekiyor. Bence iyi düşün ve doğru karar ver.

Ete

cemilsivas

Cevaplar için hepinize çok  teşekkür ederim. Bilgiler ışığında bir devre tasarlayıp denemeler yapıp sonuçları bildireceğim.

Burak

Alıntı yapılan: cemilsivas - 20 Aralık 2015, 10:23:46
Cevaplar için hepinize çok  teşekkür ederim. Bilgiler ışığında bir devre tasarlayıp denemeler yapıp sonuçları bildireceğim.

Bende inceledim tübitak sitesindeki verilen devrenin analog yapısını ama her nihayetinde olay yine bir sayıcı düzenine bakıyor ... Senkron veya asenkron olarak bir sayıcıyı tetikleyecek bir düzen oluşturmak zor sayılmaz ama bunları latch (kilitli , hafızalı) biçimde yapmak birazcık uğraştırıcı olacak ... Sen yinede ortaya birşeyler koy , ben şahsım adına üzerine düşünüp yorum yapmaktan keyf alırım hatta bir sonuç alınamasa dahi en azından kafa yormuş oluruz ...

Burak
Ω Gens Una Sumus Ω

cemilsivas

Eyvallah. Tekrar teşekkür ederim.

Powered by EzPortal