11. DERS - HC-SR04 Modülü ve Arduino ile Mesafe Ölçümü

Bu derste Ultrasonik mesafe sensörü modülü HC-SR04 ile mesafe ölçümünü Anlattım. Arduino UNO' ya bağlı olan HC-SR04 sensörü ile ölçülen mesafe cm ve inç olarak LCD ekranda görüntüledim.


HC-SR04 Ultrasonik Mesafe Sensörü Modülü

Ultrasonik mesafe sensörü modülü HC - SR04 2 cm ile 400 cm arasında 3mm hassasiyet ile ölçüm sağlar. Bu modül ultrasonik alıcı ve verici devresi içerir. Bu devre çalışırken:
  • 10 mikro saniye aralıklarla yüksek seviyeli IO sinyali kullanır.
  • Bu modül 8 tane 40 kHz'lik sinyal gönderir ve geri dönen sinyalleri algılar
Bağlantı uçları
  • 5V Supply
  • Trigger Pulse Input
  • Echo Pulse Output
  • 0V Ground
Şekil 1 - HC-SR04 MODÜLÜ

Buzzer

Üzerine uygulanan elektronik sinyalin büyüklüğü ile orantılı “bip” sesi çıkaran minik hoparlördür. Devreli ve devresiz olmak üzere iki çeşidi vardır. Devreli olandan daha güçlü bir ses çıkışı alınır.
Şekil 2 - Buzzer

Mesafe Ölçüm Devresi
İlk önce  LCD ekran ve i2c modülünün bağlantısı yapıldı (Şekil 3). Daha sonra şekil 4 deki devre kuruldu.

Şekil 3 - LCD ekran Ve Seri I2C Modülü


Şekil 4 - Mesafe Ölçüm Devresi.

ARDUINO UNO Programı

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

const int trig = 2, echo = 3, buzzer=6; 
float zaman,cm,inc ;

 // LCD ekan Tanımlanıyor (The initialization LCD Display)
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);

void setup() 
      pinMode(trig, OUTPUT);
      pinMode(echo, INPUT);
      pinMode(buzzer,OUTPUT);
      lcd.begin (16,2); 
void loop() 
      digitalWrite(trig, HIGH);
      delay(15);
      digitalWrite(trig, LOW);
      zaman = pulseIn(echo, HIGH); // Ses Dönüş Zamanı - time to echo 
      cm = zaman / 58;  //cm hesabı - time to centimetres
      inc=zaman/148;    //inç hesabı - time to inches
      
    // cm olarak mesafeyi LCD ekrana Yazdırmak- Distance in cm on LCD
      lcd.setCursor(0,0);  
      lcd.print("cm :"); 
      lcd.setCursor(4,0); 
      lcd.print(cm); 
    // inç olarak mesafeyi LCD ekrana Yazdırmak- Distance in inch on LCD 
      lcd.setCursor(0,1);  
      lcd.print("inc:"); 
      lcd.setCursor(4,1); 
      lcd.print(inc); 
    //cm ile Buzzer ile mesafe kontrolü - Distance control with buzzer in cm
      if( cm>10)
       {
          noTone(buzzer);
        }
       if( cm<=10)
       {
          tone(buzzer, 500,100);
        }
       if( cm<=5)
        {
          tone(buzzer, 500,1000);
         }
     delay(500);
}
Proje Dosyaları
Proje dosyalarını aşağıdaki linklerden indirebilirsiniz.
Ders Videosu