0

Merhabalar bu yazımızda arduino ile HC-SR04 mesafe sensörünün kullanımını inceleyeceğiz. Dijital pinler üzerinden çalışan bir sensör olan HC-SR04 mesafe sensörü nasıl çalışıyor öncelikle ondan bahsedelim.

HC-SR04 Mesafe Sensörü Nasıl Çalışıyor?

HC-SR04 mesafe sensörü 2 cm ile 400 cm arasındaki mesafeleri ölçebilmektedir. Böyle bir aralık söz konusuyken ilk bakışta bunu dijital sinyallerle değil de analog sinyallerle yapması gerekiyor gibi duruyor ancak Hc-SR04 ultrasonik mesafe sensörü mesafeyi hesaplarken dijital sinyallerini kullanıyor. Ses sinyali üreten hc-sr04 ultrasonik mesafe sensörüne ses sinyalinin sensörden çıkışı ve geri dönüşü arasında geçen süreyi hesaplayıp basit bir fizik formülünü (yol=hız X zaman) kullanarak aradaki mesafeyi hesaplatıyoruz. Yani analog sensörlerde olduğu gibi sensör bize direkt bir değer sunmuyor. Sensör üzerinde bulunan Trig pini sensörün yayılmasını tetikliyor Echo pini de yüzeye çarpıp geri dönen ses sinyalini sensöre geldiğinde yakalıyor. Kod üzerinde açıklayıp sensörü kullandığımızda nasıl çalıştığını pekiştirelim.

Arduino İle Mesafe Sensörü Uygulaması

Gerekli Malzemeler;

  • Arduino Uno
  • Breadboard
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • Erkek – Dişi Jumper Kablolar
Arduino İle Mesafe Sensörü Kullanımı Uygulaması Devresi

Kodlamaya Geçelim

Öncelikle Hc-sr04 üzerinde bulunan echo ve trig pinlerini değişkenlere tanımlıyoruz.

  • trigPin’i 4. pine (trigPin değişkenimizi 4. pine tanımladık.)
  • echoPin’i 2. pine (echoPin değişkenimizi 2. pine tanımladık.) bağladığımızı belirttik.
  • long veri türünde sure ve mesafe değişkenlerimizi tanımladık.
#define trigPin 4
#define echoPin 2
long sure, mesafe;

Setup içerisinde program çalıştığında Arduinomuzun neler yapmasını istediğimizi kodlayalım.

  • Seri ekranı 9600 baud’da kullanacağımızı belirttik.
  • trigPin’i çıkış pini,
  • echoPin’i giriş pini olarak ayarladık.
  • Bu şekilde yapmamızın sebebi Trig pini mesafe sensöründen ses sinyalinin çıkışını sağladığı için çıkış olarak ayarladık. Echo pini ise sinyal yüzeye çarpıp geri döndüğünde sinyali yakalayıp sinyalin geri döndüğü verisini Arduinoya aktardığı için giriş pini olarak ayarladık.
  • Serial println kodu ile seri ekrana programın başlayacağına dair uyarımızı yazdırdık ve alt satıra geçtik.
  • delay(3000) kodu ile de uyarı mesajından sonra 3 saniye beklemesini sağladık.
void setup () {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

Serial.println("Arduino İle Mesafe Sensörü Uygulaması Başlatılıyor...");
delay(3000);
}

Loop içerisinde Arduino çalıştığı sürece neler yapmasını istediğimizi kodlayalım.

  • trigPin’i LOW konuma getirerek ses sinyallerimizi göndermeyi kestik.
  • 3 mikrosaniye beklettik.
  • trigPin’i HIGH konuma getirerek ses sinyallerimizi gönderdik.
  • 10 mikrosaniye beklettik.
  • trigPin’i LOW konuma getirerek ses sinyallerimizi göndermeyi kestik.
  • pulseIn komutu ile echoPin e gelen ses sinyalin gidip gelme süresini hesaplattık ve değeri sure değişkenine tanımladık.
  • mesafe değerimizi yol = zaman X hız formülünü kullanarak hesaplattık. Burada hesapladığımız süre hem gidiş hem de geliş süresini aldığı için sure değişkenini 2 ye bölerek hesaplamamızı gerçekleştirdik. 0.343 hız değeri de ses’in 1 mikro saniyedeki hızı olduğu için hız değerini 0.343 olarak aldık. mesafe =(sure/2)*0.343 işlemiyle mesafe değerimizi hesaplattık.
void loop () {
digitalWrite(trigPin, LOW);
delayMicroseconds(3);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

sure = pulseIn(echoPin, HIGH);

mesafe = (sure/2) * 0.343;
Serial.print(mesafe);
Serial.println(" cm uzaklıkta");
delay(500);
}

Arduino İle Mesafe Sensörü Uygulaması Kodların Tamamı

#define trigPin 4
#define echoPin 2
long sure, mesafe

void setup () {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(, INPUT);

Serial.println("Arduino İle Mesafe Sensörü Uygulaması Başlatılıyor...");
delay(3000);
}
void loop () {
digitalWrite(trigPin, LOW);
delayMicroseconds(3);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

sure = pulseIn(echoPin, HIGH);

mesafe = (sure/2) * 0.343;
Serial.print(mesafe);
Serial.println(" cm uzaklıkta");
delay(500);
}
Ahmet Kemal YILDIZ
Eskişehir Osmangazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği mezunu bir Bilişim Teknolojileri ve Yazılım Dersi Öğretmeniyim. Bilişim Teknolojileri ve Yazılım dersi ile ilgili ders etkinlikleri, kaynak materyaller, örnek etkinlikler ve ilgi duyduğum birçok konu hakkında vakit buldukça buradan blogluyorum. :)

    Çocuklar İçin Yapay Zeka Kitabı

    önceki yazı

    Teknofest 2021 Heyecanı Başlıyor

    Sonraki Yazı

    Bu Yazılar da İlgini Çekebilir!

    Yorumlar

    Yorum yap

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Daha Arduino