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.
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
Pin No | Pimin adı | Pin açıklaması |
1 | Vcc | Sensörün güç kaynağı pinidir (5V besleme voltajı). |
2 | Trig | Giriş pini olarak işlev görür. Ultrason dalgaları göndererek ölçüme başlamak için her zaman 10µs yüksek tutun. |
3 | Echo | Çı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. |
4 | GND | 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
- Breadboard ve Jumper telleri
- Arduino UNO kurulu
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’su | HC-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 |
5V | Vcc |
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.
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.
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.
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.
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.
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.
Son olarak, Seri Monitörde görüntülenen son mesafe değerini yazdırın.