Arduino : Ultrasonik Mesafe Sensörü Uygulaması

Arduino uygulamalarımıza ultrasonik mesafe sensörüyle devam ediyoruz. Bugünkü uygulamamızda ultrasonik mesafe sensörü yardımıyla 5 LED kullanarak mesafe ölçümü yapacağız. Devremizin çalışma prensibi tam olarak aşağıdaki gibi olacak.

  • Eğer yaklaştırılan cisim 5 santimden daha yakınsa 5 LED yanıp sönecek.
  • Eğer yaklaştırılan cisim 5 – 8 cm arasında bir yakınlıktaysa ilk 4 LED yanacak.
  • Eğer yaklaştırılan cisim 8 – 11 cm arasında bir yakınlıktaysa ilk 3 LED yanacak.
  • Eğer yaklaştırılan cisim 11 – 14 cm arasında bir yakınlıktaysa ilk 2 LED yanacak.
  • Eğer yaklaştırılan cisim 14- 17 cm arasında bir yakınlıktaysa ilk 1 LED yanacak.
  • Eğer hiçbir koşul sağlamıyorsa bütün LED’ler sönecek.

Öncelikle ultrasonik mesafe sensörünü tanıyalım.

Sensörün Trig pininden uygulanan sinyal 40 kHz frekansında ultrasonik bir ses yayılmasını sağlar. Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir. Biz ise bu iki sinyal arasındaki süreyi ölçerek -yani sesin yankısını algılayarak- cismin sensörden uzaklığını tespit edebiliriz.

kaynak : maker.robotistan.com

Ultrasonik mesafe sensörünü tanıdıktan sonra devremizi tasarlayıp kurmaya başlayabiliriz.

İHTİYACIMIZ OLAN MALZEMELER :

  • 1 adet HC-SR04 Ultrasonik Mesafe Sensörü
  • 5 adet LED
  • 5 adet 330 ya da 220 ohm direnç
  • Arduino
  • Jumper kablo ya da zil teli

DEVRE ŞEMASI :

Devremizi breadboard’a kurduktan sonra kodlama işlemini yapmaya başlayabiliriz.

ARDUİNO KODU :

/* Tekno Beyinler
 * Ultrasonic Mesafe Sensörü
 * Oğuzhan Yeşilyurt
 */

//Pinlerin isimlendirilmesi

int L1 = 2; 
int L2 = 3;
int L3 = 4;
int L4 = 5;
int L5 = 6;
int trigPin = A0;
int echoPin = A1;

//Değişkenlerin atanması
long olcum;
long cm;

void setup(){
 //Giriş ve çıkışların belirlenmesi
 pinMode (trigPin, OUTPUT);
 pinMode (echoPin, INPUT);
 pinMode (L1, OUTPUT);
 pinMode (L2, OUTPUT);
 pinMode (L3, OUTPUT);
 pinMode (L4, OUTPUT);
 pinMode (L5, OUTPUT);
 Serial.begin(9600);
}
void loop ()
{ 
 digitalWrite(trigPin, LOW);
 delayMicroseconds(5);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 olcum = pulseIn(echoPin, HIGH);
 /*Aşağıdaki formül geri dönen
 * ultrasonic ses sinyalinin
 * cm cinsinden mesafeye dönüştürülmesi
 * için kullanılmıştır.
 */
 cm = olcum /29.1/2;
 Serial.println(cm);
 delay(300);
 
 //Daha önceden belirlenen koşulların uygulanması
 if(cm <5 )
 {
 digitalWrite(L1,HIGH);
 digitalWrite(L2,HIGH);
 digitalWrite(L3,HIGH);
 digitalWrite(L4,HIGH);
 digitalWrite(L5,HIGH);
 delay(300);
 digitalWrite(L1,LOW);
 digitalWrite(L2,LOW);
 digitalWrite(L3,LOW);
 digitalWrite(L4,LOW);
 digitalWrite(L5,LOW);
 }
 else if(cm>=5 && cm<8 )
 {
 digitalWrite(L1,HIGH);
 digitalWrite(L2,HIGH);
 digitalWrite(L3,HIGH);
 digitalWrite(L4,HIGH);
 digitalWrite(L5,LOW);
 
 }
 else if(cm>=8 && cm<11 )
 {
 digitalWrite(L1,HIGH);
 digitalWrite(L2,HIGH);
 digitalWrite(L3,HIGH);
 digitalWrite(L4,LOW);
 digitalWrite(L5,LOW);
 }
 else if(cm>=11 && cm<14 )
 {
 digitalWrite(L1,HIGH);
 digitalWrite(L2,HIGH);
 digitalWrite(L3,LOW);
 digitalWrite(L4,LOW);
 digitalWrite(L5,LOW);
 }
 else if(cm>=14 && cm<17 )
 {
 digitalWrite(L1,HIGH);
 digitalWrite(L2,LOW);
 digitalWrite(L3,LOW);
 digitalWrite(L4,LOW);
 digitalWrite(L5,LOW);
 }
 else
 {
 digitalWrite(L1,LOW);
 digitalWrite(L2,LOW);
 digitalWrite(L3,LOW);
 digitalWrite(L4,LOW);
 digitalWrite(L5,LOW);
 }
}

Arduino kodumuzu derleyip karta yükledikten sonra devremiz videodaki gibi çalışacaktır.

Yazımızı sonlandırmadan önce Arduino derleyici dosyası ve Fritzing şemasını Dropbox linki olarak sizlerle paylaşıyorum.

DROPBOX LİNKİ:  https://www.dropbox.com/sh/pr4vkghxh3kwscy/AABUvcwoaz1OoQd8EXEPmT3Va?dl=0

Yararlı olması dileğiyle. Yorumlarınızı bekliyoruz.

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.