Arduino hc-sr04 Sensörü Kullanımı

Ultrasonik Mesafe Sensörü Kullanımı

Bu yazımızda Arduino bir çok projede kullanılan ve hayatımızın bir çok alanında kullanılan Ultrasonik mesafe sensörünü ele alacaz. Hadi başlayalım.

Ultrasonik Mesafe Sensörü (hc-sr04) Nedir ?

hc-sr04 Sensörü Kullanımı ileyecegimiz bu yazımızda öncelikle Ultrasonik mesafe sensörünü tanımlayalım. Ultrasonik mesafe sensörünü, sonar iletişimde de kullanılan ses dalgalarını kullanarak, önündeki bölgeye ses dalgası göndermesi ve ardından çarpıp gelen ses dalgalarının mesafe hesabı yapması prensibi ile çalışan bir sensör çeşididir.

Ultrasonik Mesafe Sensörü

Bu sensör hayatımızda arabalarımızdan açılır kapılara kadar bir çok alanda kullanılmaktadır. Ultrasonik mesafe sönsörü ses dalgalarının karsıdaki engele çarpıp tekrar geri gelmesinin hesaplayarak çalışma mantığına sahiptir.

Araç Park Sensörü

 

Bu sensörün dört tane çıkışı bulunmaktadır. Ultrasonik mesafe sönsörü;

VCC     –> 5 Volt

GND    –> Topraklama

TRİG   –> Ses dalgasını gönderen kısım

ECHO –> Ses dalgasını alan kısım

şeklinde oluşmaktadır. Şimdi ise Ultrasonik mesafe sönsörü çeşitli projelerde kullanmaya başlayalım.

Proje 1

Bu projemizde Ultrasonik mesafe sensörü ile ölçüm yapıp, bu değerleri serial ekranda görecez. Lafı uzatmadan malzemeleri listelemeye başlayalım;

  • 1 Adet Arduino Uno
  • 1 Adet Breadboard
  • 1 Adet ultrasonik mesafe sönsörü
  • Jumper Kablolar

Yukarıda malzemeleri hazırladığımıza göre şimdi ise kod satırlarını oluşturalım.

//omerfarukyildiz.com
int echo = 8; // Ultrasonik mesafe sönsörünun echo bacagının 8 nolu pinde olduğunu tanımladık. 
int trig = 9; // Ultrasonik mesafe sönsörünun trig bacagının 9 nolu pinde olduğunu tanımladık. 
long deger; // bir deger tanımladık. 
int uzunluk; // işlemleri en son halini tanımlayacagmız deger tanımladık.

void setup() {
  pinMode(trig, OUTPUT); // pinleri setupa tanımlıyoruz.
  pinMode(echo, INPUT);
  Serial.begin(9600); // Serial haberleşme açıldı.
}
void loop() {
  digitalWrite(trig, HIGH); //tig oldugunu pine milisaniyelik bir şekilde dalga gönderip kapatıyoruz ve daha sonra echo acarak ölçüm işlemini gerçekelştiriyoruz. 
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  deger = pulseIn(echo, HIGH);
  uzunluk = deger * 0.034 / 2; //Ultrasonik mesefa sensörünün matematiksel işlemleri yapılıyor. 
  Serial.print("Ultrasonik mesafe sönsörünun ölçtüğü uzunluk: "); //serial ekrana ölçüm degerlerini giriyoruz. 
  Serial.print(uzunluk);
  Serial.println(" cm");
  delay(500); //Bu işlemleri yarım  saniyede bir gerçekleştiriyoruz.
}

Yukarıda oluşturduğumuz kod satırlarında öncelikle ehco ve trig pinlerini tanımladık ve ardından bunları void setup kısmında açtık. Ardından yaptığımız bu serial ekrandan görmek için serial ekranı da açtık. Daha sonradan bu pinlerini milisaniyelik olarak açtık ve kapadık. bu işlemden sonra gelen veriyi echo ile aldık ve bunu matematiksel işlemlerle cm değerine cevirdik. Daha sonra ise bunu serial ekrana yazdırdık. Şimdi ise devre şemasını oluşturalım.

Proje 1 Şeması

Bu projede Arduino Ultrasonik Mesafe Sensörü Kullanımı en temel malzemelerle yapmaya çalıştık. Yukarıda şemayı kurduktan sonra bazı yerlerde ses dalgalarının çarpıp gelememesinden ölçümler değişmektedir. Buna dikkat ederek ölçümlerini inceleyiniz ve genel olarak hassas biçimde görevini yerine getirmektedir.

Proje 2

Bu projemizde ise Ultrasonik Mesafe Sensörü Kullanımı daha iyi anlamak amacıyla Ultrasonik Mesafe Sensöründen gelen verileri buzzer ve kırmızı, sarı ve yeşil renkli ledler ile yakınlığına göre ledlerin yanmasını sağlayacaz. Şimdi malzemeleri listeleyelim.

  • 1 Adet Arduino Uno
  • 1 Adet Breadboard
  • 1 Adet ultrasonik mesafe sönsörü
  • 1 Adet buzzer
  • 3 adet 220k direnç
  • 1 Adet kırmızı led
  • 1 Adet sarı led
  • 1 Adet yeşil led
  • Jumper Kablolar

Hadi kod satırlarını oluşturmaya başlayalım.

//omerfarukyildiz.com
int echo = 8; // Ultrasonik mesafe sönsörünun echo bacagının 8 nolu pinde olduğunu tanımladık. 
int trig = 9; // Ultrasonik mesafe sönsörünun trig bacagının 9 nolu pinde olduğunu tanımladık. 
long deger; // bir deger tanımladık. 
int uzunluk; // işlemleri en son halini tanımlayacagmız deger tanımladık.
int kirmizi = 10; //Ledlerin ve buzzerin pinini belirledik ve tanımladık.
int sari = 11;
int yesil = 12;
int buzzer = 13;
void setup() {
  pinMode(trig, OUTPUT); // pinleri setupa tanımlıyoruz.
  pinMode(echo, INPUT);
  Serial.begin(9600); //Serial haberleşme açıldı.
  pinMode(kirmizi, OUTPUT);
   pinMode(sari, OUTPUT);
    pinMode(yesil, OUTPUT);
    pinMode(buzzer, OUTPUT);
}
void loop() {
  digitalWrite(trig, HIGH); //tig oldugunu pine milisaniyelik bir şekilde dalga gönderip kapatıyoruz ve daha sonra echo acarak ölçüm işlemini gerçekelştiriyoruz. 
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  deger = pulseIn(echo, HIGH);
  uzunluk = deger * 0.034 / 2; //Ultrasonik mesefa sensörünün matematiksel işlemleri yapılıyor. 
  Serial.print("Ultrasonik mesafe sönsörünun ölçtüğü uzunluk: "); //serial ekrana ölçüm degerlerini giriyoruz. 
  Serial.print(uzunluk);
  Serial.println(" cm");
if (uzunluk<50){ // if-else koşulu ile 50 cm kücükse kırmızı ve buzzerı çalıştırmayı sağlar.
digitalWrite(kirmizi,HIGH);
digitalWrite(buzzer, HIGH);
delay(10);
digitalWrite(kirmizi,LOW);
digitalWrite(buzzer, LOW);
delay(250);
  }
else if(uzunluk<100){ // if-else koşulu ile 100 cm kücükse kırmızı ve buzzerı çalıştırmayı sağlar.
  digitalWrite(sari,HIGH);
digitalWrite(buzzer, HIGH);
delay(25);
digitalWrite(sari,LOW);
digitalWrite(buzzer, LOW);
delay(500);
  }
  else if(uzunluk>100){ // if-else koşulu ile 100 cm buyukse kırmızı ve buzzerı çalıştırmayı sağlar.
    digitalWrite(yesil,HIGH);
digitalWrite(buzzer, HIGH);
delay(25);
digitalWrite(yesil,LOW);
digitalWrite(buzzer, LOW);
delay(750);
    }
else{ // hiçbir koşul oluşmaz ise bütün led ve buzzer kapatılmasını sağlar.
  digitalWrite(yesil,LOW);
  digitalWrite(sari,LOW);
  digitalWrite(kirmizi,LOW);
  digitalWrite(buzzer,LOW);
  delay(25);
  
  } 
  delay(10); //Bu işlemleri yarım  saniyede bir gerçekleştiriyoruz.
}

Yukarıdaki kodlar proje 1 de yaptımız kodların if else yapısı ve led ve buzzerların eklenmesi ile oluşmuştur. Yukarıdaki kod satırlarını oluşturduğumuza göre şimdi şemayı oluşturalım.

Proje 2 Şeması

Yukarıda gibi şemayı oluşturmamızın ardından, devremiz 50 cm yakındaki cisme kırmızı ışık ve sık sık dıt sesi veren buzzer ile karşılık verecek, 50 ile 100 cm arasındaki mesafe ölçümünde ise sarı ısık yanacak ve aralıklı bir sekilde buzzer dıt dıt sesi verecek, eğer 100 ustu ölçüm elde ederse yeşil ışık yanacak ve buzzer dıt sesi oldukça az çıkacaktır. Bu yazımızda Ultrasonik mesafe sönsörü anlatmaya çalıştık ve üzerinde çeşitli projeler gerçekleştirdik.

Diğer Arduino yazılarımıza ulaşmak için Tıklayın.

Java programlama dili derslerimiz için Tıklayın.

Yazı gezinmesi

Mobil sürümden çık