Arduino: Park Sensörü Uygulaması

Arduino uygulamalarımıza HC-SR04  ultrasonik mesafe sensörü ile park sensörü uygulamasıyla devam ediyoruz. Devremizde kullanacağımız HC-SR04 ultrasonik mesafe sensörü ile kodlarken belirteceğimiz mesafelere göre buzzer ötecek ve tıpkı arabalardaki park sensörü gibi mesafeye göre ses verecektir.

Uygulamamızda kullanacağımız HC-SR04 ultrasonik mesafe sensörünün çalışma prensibinden bahsetmek gerekirse ;

Sensör 4 pinden oluşur. Bu pinler Vcc, Trig, Echo ve Gnd ‘dir. Vcc ve Gnd besleme pinleridir. Trig pinine sinyal uygulandığında sensör 40kHz frekansında bir ultrasonik ses dalgası yayar. Bu ses dalgası bir engele çarpıp sensöre geri döndüğünde Echo pini aktif hale gelir. Bu sayede iki sinyal arasındaki süre ölçülerek cismin sensörden uzaklığı tespit edilir.

Gelelim devremizin tasarımına

Devremizi breadboardda kurmak için ihtiyacımız olan malzemeler;

  • 1 adet HC-SR04 Ultrasonik Mesafe Sensörü
  • Buzzer
  • Led(İsteğe Bağlı)
  • Jumper kablo veya zil teli
  • Arduino

Devre Şeması

Arduino Kodu

/* Tekno Beyinler
 * Park Sensörü Uygulaması
 * Mert Tunay
 */

#include <NewPing.h> // NewPing kütüphanesini ekliyoruz

// Pinlerin isimlendirilmesi

#define buzzerPin 9
#define trigPin 10
#define echoPin 11

unsigned int distance; // Mesafeyi tutacak bir degisken atıyoruz
NewPing sonar(trigPin, echoPin, 250);

void setup(void) {
 analogWrite(buzzerPin, 255); // Buzzer'ı susturuyoruz
 Serial.begin(9600); // Seri iletisimi baslatıyoruz boylece uzaklık degerini bilgisayardan görebileceğiz
}

void loop(void) {
 distance = sonar.ping_cm(); /* Tanımladıgımız sensörden santimetre türünde mesafeyi alıyoruz
 Eger mesafe tanımladıgımız maksimum degerden fazla ise 0 degerini alıyoruz 
 */
 Serial.print(distance); // Mesafe degerini ekrana yazdırıyoruz
 Serial.println(" cm");
 warning(); // Kendi yazdıgımız "warning" isimli fonksiyonu cagırıyoruz
}

void warning(void) {
 // Mesafe 40 cm'den büyük ise veya mesafeyi ölçemiyorsak 
 if(distance > 50 || distance == 0) {
 analogWrite(buzzerPin, 255); // Buzzer'ı sustur
 delay(425); // 425 milisaniye bekle
 }

// Eger mesafe 22 cm ve 35 cm arasındaysa
 else if(distance > 21) {
 analogWrite(buzzerPin, 150); // Buzzer'ı 70 milisaniye
 delay(70); // boyunca öttür
 analogWrite(buzzerPin, 255); // Buzzer'ı 430 milisaniye
 delay(430); // boyunca sustur
 }

// Eger mesafe 11 cm ve 21 cm arasında ise
 else if(distance > 8) {
 analogWrite(buzzerPin, 150); // Buzzer'ı 150 milisaniye
 delay(150); // boyunca öttür
 analogWrite(buzzerPin, 255); // Buzzer'ı 200 milisaniye
 delay(200); // boyunca sustur
 }

// Eger mesafe 10 cm'den küçükse
 else {
 analogWrite(buzzerPin, 150); // Buzzer'ı 425 milisaniye
 delay(425); // boyunca öttür
 }
}

Kodumuzu derleyip karta yükledikten sonra devremiz çalışma videosunda görüldüğü gibi çalışacaktır. Ayrıca Arduino’nun derleyici ara yüzünde sağ üst köşede bulunan “Seri Port Ekranı” ile kartı bilgisayara bağlayarak devreyi çalıştırdığınız takdirde sensörün algıladığı mesafe bilgisini ekrandan görebilirsiniz.

Çalışma Videosu

Yazımızı sonlandırmadan önce Arduino derleyici dosyası, Fritzing şeması ve NewPing kütüphanesini Dropbox linki olarak sizlerle paylaşıyorum. NewPing klasörünü Arduino’nun yüklü olduğu dosya konumunda “libraries” klasörüne ekleyiniz.

Dropbox Linki

https://www.dropbox.com/sh/sb5ihoxfo846x09/AACSZZUuTYnt-fVacIZav5Zra?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.