Bu yazımızda HC SR04 Arduino Kullanımını ve bu ürün ile Mesafe Ölçüm Cihazı tasarlayacağız. Arduino Nano ve HC-SR04 Ultrasonic Mesafe sensörü kullanarak 100cm mesafeye kadar ölçüm yapabilen, LCD göstergeli bir devre kurarak, Mesafe Ölçüm Cihazı yapacağız.

Kullandığımız malzemeler şöyle:

HC-SR04 Ultrasonik Mesafe Sensörü Özellikleri

HC-SR04 Arduino Kullanımı yaparak 100 cm mesafeye kadar ölçüm imkanı bulabiliriz. HC-SR04 kararlı bir sensördür. Sensör ultasonik (40KHz) ses dalgaları gönderip bu dalgaların yansıyıp geri gelmesi arasındaki süreyi bize vermektedir. Bu süre ile de mesafe hesaplanabilmektedir.

Trig pininden 2 mikrosaniyelik bir pulse verilerek sensör tetiklenir. Sensör art arda 8 adet ses dalgası gönderir ve bu ses dalgalarının geri dönüş süresi kadar echo pinini aktif tutar.

Sensörün çalışma açısı oldukça düşüktür. Ayrıca karşısındaki engel açılı bir şekilde duruyorsa ses dalgalarının yansınası doğrudan gelmeyeceği için yanlış ölçümler yapmaktadır.

hcsr04 ultrasonik mesafe sensörü özellikleri

hc-sr04-calisma-prensibi

Nesneden çapıp dönen ses sinyali ile sesin salınması ile gelmesi arasında geçen süreyi ölçerek mesafeyi hesaplıyoruz.

HC-SR04 ve LCD Ekran bağlantılarını aşağıdaki gibi yapabilirsiniz:

  • Vcc => (+) gerilim pinidir. 5V verilmelidir.
  • Trig => Pulse verilen pindir. (Arduino Nano D13 pinine bağlanacak.)
  • Echo => Yansıma süresinin okunduğu pindir. (Arduino Nano D12 pinine bağlanacak.)
  • Gnd => Toprak.
  • SCL=> I2C Bağlantısı (Arduino Nano A5 pinine bağlanacak.)
  • SDA => I2C Bağlantısı (Arduino Nano A4 pinine bağlanacak.)

Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino Nano kartımıza yükleyip test edebiliriz.

Kütüphaneleri aşağıdaki linklerden indirip Arduino programına kurabilirsiniz.

Arduino Kodlarımız ise şöyle:

#include <LiquidCrystal_I2C_AvrI2C.h>

LiquidCrystal_I2C_AvrI2C lcd(0x27,16,2); 

int trigPin = 13; 
int echoPin = 12; 
long zaman;
long mesafe;

void setup(){
pinMode(trigPin, OUTPUT); 
pinMode(echoPin,INPUT); 
lcd.begin(); //lcd'yi başlatıyoruz
lcd.backlight(); //lcd arka ışığını açıyoruz.

}
void loop(){
digitalWrite(trigPin, LOW); 
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); 
delayMicroseconds(10);
digitalWrite(trigPin, LOW); 
zaman = pulseIn(echoPin, HIGH);
mesafe= (zaman /29.1)/2; 
if(mesafe<4){mesafe=4;}
else if(mesafe>100){mesafe=100;}

lcd.clear();
lcd.setCursor(0,0); 
lcd.print("MESAFE METRE"); 
lcd.setCursor(0,1); 
lcd.print(mesafe); 
lcd.setCursor(4,1); 
lcd.print("cm"); 
delay(500); 
}

Projemizde Arduino Nano’yu tercih etmemizdeki sebep, Nano’nun diğer Arduino kartlarına nazaran daha küçük ve daha az alan kaplamasıdır. Böylece Arduino Nano ile gerçekleştirdiğimiz bu mesafe ölçme cihazını kolaylıkla bir kutuya sığdırabilirsiniz.