HC-SR04 Ultrasonik Mesafe Sensörü ve Arduino Projesi

Ultrasonlar , normal insan işitme aralığını (20 kHz’den büyük) aşan frekanslara sahip yüksek perdeli ses dalgalarıdır. Bir tür ultrason sensörü, kendisinden 13 fit uzaktaki nesneleri algılayan HC-SR04’tür. Bu yazıda size sensörün nasıl çalıştığını göstereceğiz ve Arduino ile bir arayüz projesi yürüteceğiz.

722px Ultrasound range diagram.svg
Resim Kaynak: Wikipedia

HC-SR04 Ultrasonik Mesafe Sensörüne Genel Bakış

Bir HC-SR04 ultrasonik (US) sensör, iki ultrasonik dönüştürücü içerir ; verici ve alıcı. Alıcı iletilen darbeleri bekler ve alır, verici ise elektrik sinyallerini 40KHz’lik ultrasonik ses darbelerine dönüştürür. 

Özellikler

  • Boyut – 45 x 20 x 15 mm
  • Tetik giriş sinyali – 10 mikrosaniye TTL darbesi 
  • Ölçüm açısı – 15°
  • Değişken doğruluk – 3mm
  • Minimum menzil – 2cm 
  • Maksimum menzil – 4cm
  • Çalışma frekansı – 40KHz
  • Çalışma gerilimi – DC 5V güç 

HC-SR04 Ultrasonik Mesafe Sensörü Pimi

hc sr04
Pin NoPimin adı Pin açıklaması 
1VccSensörün güç kaynağı pinidir (5V besleme voltajı). 
2TrigGiriş pini olarak işlev görür. Ultrason dalgaları göndererek ölçüme başlamak için her zaman 10µs yüksek tutun. 
3EchoÇıkış pini görevi görür. Eko pimi, ultrason darbesinin hc-sr04’e geri dönmesi için geçen süreye eşdeğer bir süre boyunca yüksek kalır. 
4GND Sistemin toprağına bağlanır. 

HC-SR04 Ultrasonik Mesafe Sensörünün Çalışma Prensibi Nedir?

HC-SR04 , hava yoluyla hareket eden yaklaşık 40K Hz’lik bir ultrason üreterek çalışır. Ultrasonik ses darbeleri, yollarında bir engelle veya nesneyle karşılaşırsa, sensörlere geri döner.

Ultrason oluşturma 

İlk olarak, trigPin’in ses hızında hareket eden 8 döngülü bir ultrasonik patlama göndererek on mikrosaniye boyunca Yüksek durumda olduğundan emin olun. Ardından, gönderilen çoğuşmadan sonra echoPin yükselir. Daha sonra, echoPin bir nesneden yansıtacağınız ultrason dalgasını bekleyecek veya dinleyecektir. 

EchoPin, herhangi bir nesne yoksa 38 ms sonra Düşük durumuna geçecektir. 

Ancak, ultrasonik darbeyi yansıtan bir nesne varsa , echoPin 38ms’den önce Düşük duruma geçer. 

Yankı piminin yüksek durumu sırasındaki süre bilgisi ile ses dalgalarının seyahat mesafesini hesaplayabiliriz. Ayrıca hc-sr04 ile nesne arasındaki mesafeyi de belirleyeceğiz. 

Mesafe = (Hız X Zaman)/2

Vasıtasıyla;

Süre = echoPin’in yüksek olduğu süre (2ms olduğu varsayılarak)

Hız = Ses hızı (340m/sn veya 340cm/sn)

Sonuçları ikiye bölmek, geri sıçramadan önce nesneye ulaşmak için gereken ses dalgasının süresini ölçmeye yardımcı olur. 

Yani; 

Mesafe = (Hız × Zaman)/2 = (34cm/ms × 1.5ms) / 2 = 25,5cm

Şimdi sensörden nesneye olan mesafe 25.5cm’dir. 

HC-SR04 Sensörünü Arduino da Kullanma

I2C , Raspberry Pi ve Arduino kullanmak da dahil olmak üzere sensörünüze arayüz oluşturmanın birkaç yolu vardır . Bugünün projeleri için bir Arduino panosu üzerinde duracağız. 

İhtiyaç Duyulan Malzemeler

Donanımı Bağlama

  • Sensörü D7 bağlantı noktasındaki Grove tabanlı korumaya bağlayarak başlayın.
  • İkinci olarak, Grove tabanlı kalkanınızı Arduino kartına takın.
  • Ardından, Arduino’yu bir bilgisayara bağlamak için bir USB kablosu kullanın.

Pin bağlantısı aşağıdaki tablodadır.

Arduino UNO’suHC-SR04 Ultrasonik sensör
GND GND
-3 (veya diğer herhangi bir dijital G/Ç) pini)Echo 
2 (veya diğer herhangi bir dijital G/Ç) pini)Trig
5VVcc 
hc sr04 arduino

 

Yazılımı Yapılandırma 

  • GitHub web sitesinde arama yapın ve Ultrasonik sensör Kitaplığını buradan indirin.
  • Ardından, kodu kopyalayıp daha sonra yükleyeceğiniz Arduino IDE‘ye yapıştırın. 

Kod aşağıdaki gibi görünüyor.

er4LYbhf5j0 DD4qrtY8YSrs53IylxfWMthVsjYLKodJ3xgHeThTH2 epVMoWkHd66kaElOwLt90yHyG

Kod Detaylandırma 

Echo ve Trig pinlerini tanımlayarak başlayın, yani pin3 (echoPin) ve pin2 (trigPin). Ayrıca, mesafeyi temsil etmek için bir tamsayı değişkenine ve sensörden seyahat süresini bilmek için uzun bir değişkene (‘süre’) ihtiyacımız var. 

tS640 hvp i fsZnzilSA2FJ0VqnWCpOBDbRAUiqWI8EzV1ndQOwId2s3UxSDCdsf4QEsHpIh7oHxNY5luKIoaDO80ZbBxMilt81jviGgRo cBiFNA62GmTwkboJcUaLCh6bz4JfKnEUQnCT5l4OVqTBtZE

Ek olarak, echoPin’i giriş olarak tanımlayın, buna karşın açma, çıkış olacaktır. Ardından, sonuçları bir seri monitör ekranında görüntüleyecek olan seri iletişimi başlatın. 

Olwq2SKXywS NTxWKAzHPAPs6k5Up8xRusg8B1jgKTwHWRftNoXXc07iVJv5vgozDD0Q ZC R7CIjrFZZgpucQm9wsCU2F3K3YuqZbFKTgft6zpzy9vm7IP2TTf ik965v

Döngü sırasında yaklaşık iki mikrosaniye için DÜŞÜK Durumda ayarlayabilmeniz için net bir trigPin’iniz olduğundan emin olun. Daha sonra, bir ultrason dalgası oluşturmak için pimin ayarını on mikrosaniyelik yüksek bir Duruma yükseltin. 

ucTNyq0i1M2r7WfM8cC1vTP6QVLx9N5hD UJHllYqgH7n1xa0KnOo JNtdmshQFxOae4TrjnSCjMGbo8wCAXiqKsxx1AcAtkw6y mGOTCIkLOKYinvFoTGweOP1bbZMjB1q p VW3e YvoU2kIF6Xz366Bc

Ardından, iki parametreli bir pulseIn() işlev anahtarı vardır, yani, 

  • Okuyacağınız nabız durumu (Düşük veya Yüksek) veya
  • Yankı pininin adı.

Seyahat süresini okumak için işlevi kullanın, ardından değeri ‘süre’ değişkenine yerleştirin. 

tMxpk52g8BADeGfI8iW842d7bu6BIhnsTWAaVugT93 2LAT3FTHPK0LoRl9Kot2zlYoiWg3X6fhnROk92sdg4phyZILSpLq1fYJ jgUUwbiESIh5zUAY4FZm78A9MenYTq4Uymlt1VJYgkSrhJCR14nDd U

HC-SR04 sensörü vericiden 8 döngülü ultrasonik patlamayı aktardıktan sonra otomatik olarak yüksek ayarladığından, echoPin’i Yüksek olarak ayarlayacağız. Sonuç olarak, zamanlama başlar, ancak yansıyan ses dalgasını aldıktan sonra, yankı piminin Alçak gitmesi nedeniyle zamanlama durur. 

Sonunda pulseIn() işlevi darbe uzunluğunu mikrosaniye cinsinden döndürür. 

Buradan uzaklığı elde etmek için daha önce tartışılan formülü kullanacağız. Bu nedenle, süreyi 0.034 ile çarpın, ardından değeri ikiye bölün. 

57HiWTPRBCOV2uNg4snx3WyyEFrDLhx4rf63ZpkBNxw93BikD5cTdIpO rx DCkNRYMAclsRDSgDGRJAP Sx8z

Son olarak, Seri Monitörde görüntülenen son mesafe değerini yazdırın. 

Yorum yapın