İnfrasonik Ses: Frekansı 20 Hz’in altında olan seslere İnfrasonik ses veya ses altı ses denir. İnfrasonik ses normal ses göre daha az enerjiye sahiptir ve bu sesler insanlar tarafından duyulamaz.
Tüm katı ve sıvı cisimler ultrasonik dalgayı çok iyi oranda yansıtırlar. Hem katı hemde 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.
Bu sensör 2cm – 400 cm mesafelerini yaklaşık 3mm hata payıyla ölçebilmektedir.
Hc-sr04 sensörün yapısına kısacak bakacak olursak;
*VCC – 5V DC
*TRIG – Trigger Pin (ultrasonik verici)
*ECHO – Echo Pin (ultrasonik alıcı)
*GND – Toprak hattı
Peki, nasıl çalışır?
Bizim sensörümüz ve birçok ultrasonic sensör 40Khz frekansında ultrasonic ses üretmektedir. Bu ultrasonik ses trigger kısmından dışarı verilir. Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir. Biz ise bu iki sinyal arasındaki süreyi ölçerek -yani sesin yankısını algılayarak- cismin sensörden uzaklığını tespit edebiliriz.
1) Trigger pinini high konumuna getirdik ve ultrasonik ses dalgası oluşturduk. Daha sonra delay(erteleme) komutundan sonra yeni ses dalgalarının üretilmemesi için trigger pinini low konumuna getirdik. Mesafeyi iyi algılayabilme için düzenli ve küçük aralıklarla ses dalgası gönderelim. Bu sayede her bir ses dalgasının çıkış ve giriş süresini buluruz.
2) Herhangi bir engele çarpan ses dalgası geri dönecektir. Pulseln komutuyla Echo pinini takibe alırız. Bu ses dalgalarının echo’ya geldiği sürece high olur ve mikrodenetleyicinin timeri ile bu süre ölçülür. Böylelikle ses dalgalarının geliş – gidiş zamanını tespit ederiz.
3) Klasik x = v * t formülüyle artık mesafeyi ölçebiliriz.
4) Ses hızı sıcaklığa bağlı olarak değişmektedir. 0 derecede ses hızı 331 m/s’dir. Ses hızının sıcaklığa bağlı olarak formülü v = 20.05 * kök(273 + t) dır. Ses hızını hesapladıktan sonra birimini cm/ µs ye çeviririz.
5) Daha sonra formülde yerlerine koyduğumuzda mesafeyi cm cinsinden bulmuş oluruz.
Fritzing devresi |
Arduino kodları:
int trigPin = 6; /* Sensorun trig pini Arduinonun 6 numaralı ayağına bağlandı */
int echoPin = 7; /* Sensorun echo pini Arduinonun 7 numaralı ayağına bağlandı */
long sure;
long uzaklik;
void setup(){
pinMode(trigPin, OUTPUT); /* trig pini çıkış olarak ayarlandı */
pinMode(echoPin,INPUT); /* echo pini giriş olarak ayarlandı */
Serial.begin(9600); /* Seri haberlesme baslatildi */
}
void loop()
{
digitalWrite(trigPin, LOW); /* sensör pasif hale getirildi */
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); /* Sensore ses dalgasının üretmesi için emir verildi */
delayMicroseconds(10);
digitalWrite(trigPin, LOW); /* Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi*/ sure = pulseIn(echoPin, HIGH); /* ses dalgasının geri dönmesi için geçen sure ölçülüyor */
uzaklik= sure /29.1/2; /* ölçülen sure uzaklığa çevriliyor */
if(uzaklik > 200)
uzaklik = 200;
Serial.print("Uzaklik ");
Serial.print(uzaklik); /* hesaplanan uzaklık bilgisayara aktarılıyor */
Serial.println (" CM olarak olculmustur.");
delay(500);
}
Parik görsel yazilimla bu sesore ölçme yaptırabılırmıyız.
YanıtlaSil