HC-SR04 Ultrasonik Sensör
HC-SR04.Ses dalgaları sınıflandırılmasında 20Khz-1Ghz aralığındaki ses sinyalleri ultrasonik ses olarak tanımlanmıştır.Bizim sensörümüz ve bir çok ultrasonik sensör 40Khz frekansında ultrasonik ses üretmektedir.Burada önemli olan sesin yüksekliğinde belirleyici olan etken frekanstır.Ses yüksekse frekansta yüksektir.Ultrasonik ses sinyallerini insan kulağı algılayamaz. Sensörün nasıl çalıştığına bakalım. Transdüser ultrasonik darbeyi iletir.Darbe sehimden yansır ve transdüser tarafından alınır.Darbenin gidiş geliş zamanı sensörle sehimin mesafesine göre orantılıdır.
Ultrasonik darbe t=0 zamanında transdüser tarafından iletiliyor. X pozisyonundaki hedef tarafından yansıtıldıktan sonra t= tx. zamanında darbe alınıyor. tx ; X mesafesi ile orantılıdır. T=0 zamanında darbe iletilir(ultrasonik ses sinyali), cisimden yansır, transdüser tarafından algılanır ve tekrar gönderilir.Sonraki darbe ilk darbenin ultrasonik enerjisinin hepsi absorbe edildiğinde iletilmelidir.Bu yüzden sensöre bir pals gönderilir sensör okunur ve sensörün datasheetinde yazan süre kadar sensöre tekrar pals gönderilmez.Eğer bekleme yapmaksak sensör saçma değerler döndürür.Çünkü ilk yolladığımız sinyal bir yerden yansıyarak sensöre geri dönmeye devam eder. Tüm katı ve sıvı cisimler ultrasonik dalgayı cok iyi oranda yansıtırlar.Hem katı hem de sıvı cisimlerden ultrasonik enerjinin %99u yansıtılır.Çok ufak oranlardaki enerji miktarı cisim tarafından emilir. Bundan dolayı sensörü çok çeşitli uygulamalarda sorunsuz kullanabilmemiz mümkündür.Ayrıca robotlarda da sıkça kullanılmaktadır.Aşağıdaki resim bu tarz uygulamalara güzel bir örnek.
Sensör üzerinde 4 adet pin mevcut.Bunlar;vcc,gnd,trig,echo pinleri.Sensörü kullanmak için trig pininden yaklaşık 10us'lik bir pals gönderiyoruz.Sensör kendi içerisinde 40khz frekansında bir sinyal üretip 8 pals verici transdüsere gönderiyor.Bu ses dalgası havada, deniz seviyesinde ve 15 °C sıcaklıkta 340 m/s bir hızla yol alır.Bir cisme çarpar ve geri sensöre yansır.Cismin sensörden uzaklıgı ile doğru orantılı olarak echo pini bir süre lojik 1 seviyesinde kalır ve tekrar lojik 0 olur.Bizim bu mesafeyi ölçmek için tek yapmamız gereken echo pininin ne kadar lojik1 olduğunun süresini bulmaktır.Bu yapı aşağıdaki resimden daha iyi görülebilir.
Şimdi echo pindeki sinyal ile nasıl mesafeyi bulacagımıza gelelim.Echo pinin lojik1 de kalma süresini mikrodenetleyici timerı ile ölçelim. Mikrodenetleyiciyi 4mhz kristal ile kullanırsak, timer 1us çözünürlügünde pinin durumunu tutmuş olur.Klasik yol=hız*zaman dan ve sesim 340m/sn lk hızınıda 34000cm/1000000us (340000/1000000=1/29) olarak düzenlersek formül x=t/29 olarak bulunur.Fakat burada önemli bir nokta sensörün bize döndürdügü süre ses sinyalinin gönderilmesi ile alınması ile oluşan süre.Yani yol=zaman/29 ile aradaki mesafeyi iki ile çarpmış oluyoruz.Çünkü ses hem gitti hem geldi.Bu yüzden x=t/58 formulüyle aradaki mesafeyi ölçmüş olacagız.(29*2=58).Şimdi kodlarımıza geçelim.Ben elimde pic geliştirme kartı oldugu için pic16f877a mikrodenetleyicisi ile yaptım.En kısa zamanda msp4302231 mikrodenetleyicisi ile de uygulamayı gerçekleştirip kodlarını koyacagım.Zaten giriş çıkış ve timer satırlanını değiştirmek yeterli.