Arduino ve HC-SR04 Ultrasonik Sensör ile Mesafe Ölçümü
Sıfırdan arduino derslerinin bu dersinde arduino ve ultrasonik sensör ile mesafe ölçmek için gerekli HC-SR04 mesafe sensörü arduino bağlantısını, ve mesafe sensörü arduino kodlarını inceleyeceğiz.
Sıfırdan arduino derslerinin bu dersinde arduino ve ultrasonik sensör ile mesafe ölçmek için gerekli HC-SR04 mesafe sensörü arduino bağlantısını, ve mesafe sensörü arduino kodlarını inceleyeceğiz.
HC-SR04 Ultrasonik Mesafe Sensörü Nasıl Çalışır?
Arduino ile mesafe ölçmek için piyasada bir çok farklı özellikte mesafe sensörleri satılmaktadır. HC-SR04 ultrasonik mesafe sensörü bu sensörlerden en uygun fiyatlısı olması nedeniyle bir çok arduino projesinde kullanılmaktadır.
Ultrasonik sensör, trig pininden ultrasonik ses dalgaları yayınlarken, echo pininden bu ses siyalinin herhangi bir engelden dönmesini bekler. Yansıyan ses sinyalini algıladığında geçen süreyi hesaplayarak aradaki mesafeyi ölçer.
Ultrasonik mesafe sensörü datasheetinde belirtilen bilgiye göre 2 cm’den 400 cm’ye (4 metre) ölçüm yapabilmektedir.
Arduino ile mesafe ölçümü yaparken, engelden kaçan robot yaparken veya arduino park sensörü uygulaması yaparken HC-SR04 ultrasonik mesafe sensörü kullanılır.
Ultrasonik Mesafe Sensörü Arduino Bağlantısı Nasıl Yapılır?
Aşağıdaki ultrasonik sensör arduino bağlantı şemasını inceleyerek gerekli devreyi hazırlıyoruz.
Şemayı incelediğimizde;
mesafe sensörü VCC pini arduino 5V pinine,
GND pini arduino GND pinine,
Trig pini arduino 13 numaralı pine,
Echo pini arduino 12 numaralı pine bağlanmıştır.
Devremizi hazırladıktan sonra arduino kodlarına geçebiliriz.
Ultrasonik Mesafe Sensörü Arduino Kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
int trigPin = 13; int echoPin = 12; long zaman; long mesafe; void setup(){ pinMode(trigPin, OUTPUT); pinMode(echoPin,INPUT); Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); zaman = pulseIn(echoPin, HIGH); mesafe= (zaman /29.1)/2; Serial.print("Uzaklik "); Serial.print(mesafe); Serial.println(" cm"); delay(500); } |
Şimdi kodları arduino kartımıza yükleyelim.
Yükelem yapmadan önce Araçlar menüsünden kart ve port seçimini yapmalıyız.
Kodları incelediğimizde; önce digitalWrite(trigPin, LOW); komutu ile trig pininin sinyalini kesiyoruz. 5 microsaniye sonra digitalWrite(trigPin, HIGH); komutuyla pinine güç verip ses sinyalini gönderiyoruz. 10 milisaniye sonra tekrar sinyali kesiyoruz.
Sonra pulseIn(echoPin, HIGH); komutu ile echo pinine sesin dönene kadar geçen süreyi hesaplayarak zaman isimli değişkene aktarıyoruz.
Sonra zaman değişkeninin değerini önce sesin havadaki yayılma hızı olan 29,1 sayısına bölüyoruz. Bu değer sesin gittiği ve geldiği süreyi temsil etmektedir. Bu değeri tekrar 2 ye bölerek engelin veya cismin sensöre olan uzaklığını hesaplıyoruz. En son adımda öçlülen mesafeyi seri port ekranına yazdırıyoruz.
Arduino programının sağ üst köşesindeki büyüteç işaretine basarak seri port ekrarnını açtığınızda ultrasonik sensör ile ölçülen mesafe her yarım saniyede bir ekrana yazdırılmaya başlayacaktır.
ÖZET: Bu yazımızda hc-sr04 ultrasonik sensör ile mesafe ölçme için gerekli arduino ultrasonik sensör bağlantısını ve ultrasonik sensör arduino kodlarını inceledik.
Bir sonraki yazımızda ultrasonik mesafe sensörü ölçümünü lcd ekrana yazdırarak arduino ile dijital metre uygulaması yapacağız.
Konu ile ilgili görüş, öneri ve düşüncelerinizi yorumlar bölümünden bize ulaştırabilirsiniz.
Yeni yazılardan anında haberdar olmak için arduinomedia facebook hesabını takip etmeyi unutmayın.
https://www.facebook.com/arduinomedia/
Diğer tüm arduino modül kullanımları ve örnek arduino projeleri için kardeş sitemizi incelemeyi unutmayın…
Bir sonraki dersimizde görüşmek dileğiyle…
merhaba
hc-sr04 modülünü ardipilot apm 2,8 ile kullanmak istiyorum. HC-SR04 4 pin çıkışını 3 pine çevirmem gerekiyor. Yani V+, Echo, Trig, Gnd pinlerini; V+, Sinyal, Gnd olarak. Araştırmalarımda bulduğum aliexpress’te bir ürün hc-sr04; atmega328 yongalı bir kart ile birleştirilmiş. Yapmış olduğunuz kodlama tam istediğim gibi. Bu kodlamayı nano kart ve hc-sr04 ile birliştirerek kullanmak istiyorum. Sadece serial print (USB) komutunu analog bir pinden (örn. pin 6) çıkış almak istiyorum bu konuda yardımcı olurmusunuz.
Merhaba
Sinyal çıkışı nasıl yapmak istediğinize göre değişir.Mesela blink süresine göre veya servo motordaki gibi sinyal çıkışlarından birini seçmeniz gerekir.Ondan sonra map veya başka komutları kullanarak tek sinyal çıkışını PWM pinlerinden yapabilirsiniz.
Teşekkürler.
kodu direk geçirdim olmadı lütfen yardım edin
çok güzel..
bizdede olmuyoooooo