Arduino ile Basit Park Sensörü Uygulaması (HC-SR04)

Güncelleme tarihi: 2 May 2020

Bu uygulamamızda Arduino kartımıza bağladığımız Ultrasonik Mesafe sensörünü kullanarak Basit Park Sensörü yapacağız. Mesafe Sensöründen gelen uzaklık değerine göre LED’ler yanacak ve Buzzer'dan ses çıkışı olacaktır. Bu uygulamada kullanacağımız malzemelerimiz;

  • Arduino UNO

  • 5 mm LED

  • 220R veya 330R Direnç

  • HC-SR04 Ultrasonik Mesafe Sensörü

  • Buzzer

  • Jumper Kablolar (E-E)

  • Breadboard



Devremizi bu şemaya göre kurup bağlantılarımızı yapıyoruz.

Uygulama kodlarına geçmeden önce HC-SR04 Ultrasonik mesafe sensörünün çalışma prensibinden bahsedelim biraz.


HC-SR04 Ultrasonik Mesafe Sensörü

Yukarıda görüldüğü gibi sensörün VCC,TRIG,ECHO,GND olmak üzere 4 pini bulunmaktadır. Ultrasonik sensör dışarıya ses dalgası gönderir gönderdikleri ses dalgası bir nesneye ulaşıp sensöre geri dönmesini beklerler. Gönderdiği ses dalgası sinyalinin gönderilip geri gelme süresi üzerinden mesafe hesabı yapılır.

Bu sensör robotik projelerde en yaygın olarak kullanılan sensörlerden birisidir. Program kısmı doğru olduğu sürece 2 cm – 400 cm arasında ölçüm yapabilmektedir. Sensörün TRİG pininden bir sinyal uygulanır bu sinyal nesneye çarpıp geri döndüğü zaman ECHO pini aktif hale gelir. Bu iki sinyal arasındaki süreyi ölçerek sensörle nesne arasındaki mesafeyi hesaplayabiliriz. Arduino ile HC-SR04’ü düzgün bir şekilde kullanabilmemiz için bir kütüphaneyi buradaki linkten indirip Arduino yazılımına ekleyebilirsiniz.







Uygulama kodu ;


#include <NewPing.h> //HC-SR04'ü kullanabilmemiz için gerekli olan kütüphane eklendi.
 
#define TRIG_Pin 11 // HC-SR04 TRIG pini bağlantısı
#define ECHO_Pin 10 // HC-SR04 ECHO pini bağlantısı
#define Max_Uzaklik 200 // Maksimum uzaklık 200 cm olarak ayarlandı.
 
#define LED1 4 // Devrede bağladığımız LED'ler ve Buzzerın pin tanımlası yapıldı.
#define LED2 5
#define LED3 6
#define LED4 7
#define buzzer 12
 
int mesafe = 0; // mesafe adında değişken oluşturduk ve ilk değerine '0' atadık.
NewPing Sensor(TRIG_Pin, ECHO_Pin, Max_Uzaklik); // Sensor adında değişkenimize HC-SR04 pinlerini ve maksimum uzaklığı tanımladık.
 
 
 
 
 
void setup() {
 pinMode(LED1,OUTPUT); //LED ve Buzzer pinlerini ÇIKIŞ olarak ayarladık.
 pinMode(LED2,OUTPUT);
 pinMode(LED3,OUTPUT);
 pinMode(LED4,OUTPUT);
 pinMode(buzzer,OUTPUT);
 
 Serial.begin(9600); //Seri iletişim başlatıldı.
}
 
void loop() {
 
 
 mesafe = Sensor.ping_cm(); // HC-SR04 mesafeyi cm cinsinden okuması yapıldı.
 Serial.print("Mesafe: "); // Seri monitore sensörün okuduğu mesafe değeri yazıldı.
 Serial.print(mesafe);
 Serial.println("cm");
 
 if ( mesafe > 0 && mesafe <= 10) //Ölçülen mesafe değeri 0-10 cm arasında ise bütün LED'ler yanıp sönecek ve Buzzer uyarı verecek.
{
digitalWrite(LED1 , HIGH);
digitalWrite(LED2 , HIGH);
digitalWrite(LED3 , HIGH);
digitalWrite(LED4 , HIGH);
digitalWrite(buzzer , HIGH);
delay(150);
digitalWrite(LED1 , LOW);
digitalWrite(LED2 , LOW);
digitalWrite(LED3 , LOW);
digitalWrite(LED4 , LOW);
digitalWrite(buzzer , LOW);
delay(150);
}
else if (mesafe > 10 && mesafe <=20) //Mesafe 10-20 cm arasında ise LED1 pinine bağlı LED yanıp sönecek ve Buzzer uyarı verecek.
{
digitalWrite(LED1 , HIGH);
digitalWrite(buzzer , HIGH);
delay(300);
digitalWrite(LED1 , LOW);
digitalWrite(buzzer , LOW);
delay(300);
}
else if ( mesafe > 20 && mesafe <=30) //Mesafe 20-30 cm arasında ise LED2 pinine bağlı LED yanıp sönecek ve Buzzer uyarı verecek.
{
digitalWrite(LED2 , HIGH);
digitalWrite(buzzer , HIGH);
delay(500);
digitalWrite(LED2 , LOW);
digitalWrite(buzzer , LOW);
delay(500);
 
}
 
else if ( mesafe > 30 && mesafe <=40) //Mesafe 30-40 cm arasında ise LED3 pinine bağlı LED yanıp sönecek ve Buzzer uyarı verecek.
{
digitalWrite(LED3 , HIGH);
digitalWrite(buzzer , HIGH);
delay(500);
digitalWrite(LED3 , LOW);
digitalWrite(buzzer , LOW);
delay(500);
 
}
else if ( mesafe > 40 ) //Mesafe 40 cm'den büyük ise LED4 pinine bağlı LED yanıp sönecek.
{
digitalWrite(LED4 , HIGH);
delay(1000);
digitalWrite(LED4 , LOW);
delay(1000);
 
}

Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır









Son Paylaşımlar