Arduino ile Park Sensörü Yapımı,HC-SR04(Mesafe Sensörü), Buzzer,Led

Değerli Arkadaşlar birçok sitede Mesafe Sensörü ile yazılmış kodlar bulabilirsiniz. Bu projede ise mesafe sensörü, buzzer ve ledlerin kullanıldığı park sensörü yapımını anlatmaya çalıştık.

HC-SR04(Mesae Sensörü), robotik projelerde Arduino ile kullanılan en popüler sensörlerden birisidir. Kullanımı oldukça kolaydır ve program kısmı düzgün olduğu sürece 2cm – 400cm arası uzaklıkları düzgün bir şekilde ölçebilmektedir. Çalışma prensibi ise şu şekildedir: 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.


Bu projede mesafe sensörü 50cm-25cm-10cm mesafelerinde buzzerden farklı sıklıklarda ses çıkarıyor ve farklı ledlere ışık veriyor. 50 den daha uzun mesafelerde sadece 4.led yanıyor buzzer ses vermiyor.



Kullanılan Malzemeler
  • ARDUINO UNO
  • 4 ADET LED
  • 5 ADET 220 OHM DİRENÇ
  • 1 ADET BUZZER
  • BREAD BOARD
  • YETERİ KADAR JUMPER KABLO ERKEK VE DİŞİ
Kullanılan Fonksiyonlar:
pinMode, digitalWrite,tone, notone, Serial.println

Resimler:



Devremiz ledlere ait jumper kabloların fazlalığı yüzünden karışık görünebilir. Küçük bir ayrıntı, mesafe sensörünü dişi jumperla bağladık. Dişi jumper kablonuz yoksa direkt breadboarda bağlayabilirsiniz.

Kodlar:
const int trigger_pin = 12; // Değişkenler tanımlandı. Pinler atandı.
const int echo_pin = 13;
const int aled = 2;
const int bled = 3;
const int cled = 4;
const int dled = 5;
const int buzzer = 6;
int sure ;
int mesafe ;
 
void setup() {
pinMode(aled , OUTPUT); // Ledlere, buzzera ve trigpine çıkış olarak, 
pinMode(bled , OUTPUT);// Echo pin giriş olarak ayarlandıç
pinMode(cled , OUTPUT);
pinMode(dled , OUTPUT);
pinMode(buzzer , OUTPUT);
pinMode(trigger_pin , OUTPUT);
pinMode(echo_pin ,INPUT);
Serial.begin(9600);
 
}
 
void loop()
{

digitalWrite(trigger_pin , HIGH); // trigpine akım gönderildi.
delayMicroseconds(1000);
digitalWrite(trigger_pin , LOW); // 1000 ms sonra trigpinden akım kesildi.
sure = pulseIn(echo_pin , HIGH); // Pulsein koduyla echo pinden yansıma süresi alındı.
mesafe = sure/58;                             // 58 bölünerek mesafe bulundu. 
  Serial.println(mesafe);                 // Mesafeyi ekrana yazdırıyoruz.
if (mesafe <= 10)
{
digitalWrite(aled , HIGH);              //10 cm ve küçükse aled yanıyor buzzer ses çıkarıyor.
digitalWrite(buzzer , HIGH);
tone(buzzer,1000);                           
delay(20);
noTone(buzzer);
delay(250);
digitalWrite(aled , LOW);
digitalWrite(buzzer , LOW);
}
else if (mesafe <=25)
{
digitalWrite(bled , HIGH);       //25 cm ve küçükse bled yanıyor buzzer ses çıkarıyor.
digitalWrite(buzzer , HIGH);
tone(buzzer,1000);
delay(20);
noTone(buzzer);
delay(500);
digitalWrite(bled , LOW);
digitalWrite(buzzer , LOW);
}
else if ( mesafe <=50)
{
digitalWrite(cled , HIGH);  //50 cm ve küçükse cled yanıyor buzzer ses çıkarıyor.
digitalWrite(buzzer , HIGH);
tone(buzzer,1000);
delay(20);
noTone(buzzer);
delay(750);
digitalWrite(cled , LOW);
digitalWrite(buzzer , LOW);
}
else
{
digitalWrite(dled , HIGH);  //50den büyükse dled yanıyor
delay(1000);
digitalWrite(dled , LOW);
 
}


}

Yorumlar