Başa dön
Arduino ile Park Sensörü Yapımı

Arduino Nano ile Park Sensörü Yapımı

Merhaba arkadaşlar, bugünkü ilginç arduino projeleri yazımız da Arduino ile Park Sensörü Yapımı Projesi Arduino Nano ile nasıl Yapılır? birlikte inceleyeceğiz. Bu yazımız da, arabanın cisimlere olan mesafesini hesaplamak için HC-SR04 Ultrasonik Mesafe Sensörü kullanacağız. Yeşil, sarı ve kırmızı LED’leri kullanarak LED’lerin rengine göre serbest, yavaşlama, durma eylemlerinin gerçekleşip gerçekleşmeyeceğini göreceğiz.

Projenin toplam maliyeti yaklaşık 75 – 90 TL civarındadır(Ekim 2019).

İsteğe bağlı olarak 3 farklı led yerine 5mm RGB LED ve Buzzer ile birlikte veya haricen gösterge için Bar Graf LED Kullanabilirsiniz.

Ultrasonik Mesafe Sensörü ile İlgili Bilgi Sahibi Değilseniz mutlaka Makalemizi Okuyun.

HC-SR04 Ultrasonik Mesafe Sensörü Kullanımı

1. Adım: Mantık

arduino ile park sensörü yapımı projesi komutları

Arduino ile park sensörü yapımı projesinin 3 aşaması vardır;

Aşama 1: Otomobilin hareketsiz halde veya hareket halinde sensörülerin çalışır vaziyette olması fakat yakınlık alanında herhangi bir cisim bulunmaması durumudur.  Bu aşamada cihaz, sensörlerin yakınında bir hareketli nesne aramaya devam eder. Bir nesne kapsama alanına girerse, üç LED’den biri hareketli nesnenin uzaklığına bağlı olarak yanar(genelde bu sarı led olur). Nesne çok yakınsa, nesnenin uzaklık mesafesini bildirmek için buzzer modülünden ses çıkar.

 

Aşama 2: Kapsama alanında bir nesne yoksa, tüm LEDleri kapatın.

 

Aşama 3: Araç hareket etmiyor.(Sağ noktaya park edildi) Nesne hareket etmeyi bıraktıysa ve hâlâ kapsama alanındaysa, 20 CPU döngüsü bekleyin ve ardından LED’leri kapatın.

 

Adım 2: Park Sensörü Yapımı Donanım Gereksinimi

arduino ile park sensörü yapımı projesi malzemeleri

Arduino ile Basit Park Sensörü Yapımı projesi için ihtiyacımız olan malzemeler;

  • Bir Bakır Plaket
  • Bir Arduino nano / uno
  • Kırmızı, Yeşil ve Sarı LED (5mm)
  • LED’ler için 220ohm direnç
  • Bir HC-SR04 Ultrasonik Sensör
  • Bir Buzzer Modülü veya Bir Buzzer ve 100 ohm’luk bir direnç
  • 220v AC 5v DC Step Down Modül
  • 40 Pin Dişi Header
  • Bir Ethernet kablosu
  • Birkaç Jumper Kablo
  • Kodu Arduino’ya yüklemek için bir USB kablosu
  • Genel lehimleme ekipmanları
  • Arduino IDE

 

Adım 3: Park Sensörü Yapımı – Montaj

arduino ile park sensörü yapımı devre şeması

Arduino park sensörü yapımı projemize LED’leri Nano’ya bağlayarak başlayalım.

Arduino kartı ve LED’ler arasına 220 ohm’luk bir direnç koyarak Kırmızı LED’i D2’ye, Sarı LED’i D3’e ve Yeşil LED’i Arduino’nun D4 pinine bağlayın. Şimdi Buzzer’ı analog pin A0’a bağlayalım. Ardından, Ultrasonik Sensörün Tetik pimini D5’e ve Echo pimini Arduino’nun D6 pinine bağlayın. Tüm modülleri Arduino kartına bağlandıktan sonra, tüm pozitif ve negatif pinleri birbirine bağlamamızın zamanı geldi. Modüllerin tüm pozitif pinlerini Buck Step-Down Modülü tarafından sağlanan “+ 5v” değerine ve negatif pinleri Modülün “-ve” terminaline bağlayın. Montaj aşaması bitti. Şimdi sırada ne yaptığımıza bakacağız ve kod yüklemeye geçeceğiz.

İsteğe bağlı olarak 3 farklı led yerine 5mm RGB LED ve Buzzer ile birlikte veya haricen gösterge için Bar Graf LED Kullanabilirsiniz.

 

Adım 4: Kurulum

arduino ile park sensörü yapımı

Şimdi  de ne yaptığımızı görelim.

Arduino, buzzer, ultrasonik mesafe sensörü ve 3 adet 220 ohm’luk direnci bir bakır levha üzerine kurduk. 3 LED ve güç modülü ikinci bir Bakır plaket üzerine kuruludur.

220v güç kaynağı, vidalı terminal bloğuna bağlanacaktır. Ana birim daha sonra LED’lere ve güç kaynağına bir Ethernet kablosu ile bağlanacaktır.

 

5. Adım: Kod

Kod boyunca kullanılacak sabitleri ve genel değişkenleri tanımlayarak kodu başlatın.

Ardından, kodun kurulum bölümünde pin modlarını tanımlayın.

Sonra tüm LED’leri ve sesli uyarıyı kapatmak için bir işlev oluşturun.

Şimdi, Ultrasonik Sensörden alınan değerleri okuyarak uzaklığı “cm” cinsinden hesaplayın.

Daha sonra “Distance” koduna karşılık verilen değeri kontrol ederek nesnenin ne kadar uzak olduğuna bağlı olarak LED’leri açıp kapatacağız. Mesafe 200’den büyükse, LED alanı dışındaki tüm LED’leri ve sesli uyarıyı kapatınız. 55 ile 200 arasında ise yeşil LED’i açın. Nesne 15 ile 55 arasındaysa, sarı LED’i açın ve nesne 15 inçten daha yaklaşırsa, kırmızı LED’i 8 inç’e ulaşana kadar açın(İnç değerlerini “İnch to Cm Çevirici” ile cm’e çevirerek cm cinsinden yazabilirsiniz). Mesafe 8’den küçük olduğunda, zili kırmızı LED ile birlikte aynı anda çalışacak şekilde kodlayın.

 

Kodun bir sonraki kısmı, LED’lerin ne zaman kapatılacağına karar veren araç hareketine göre sayacın değerini ayarlamaktır. “Distance” koduna karşılık gelen değeri “TempDistance” ile karşılaştırır ve değerler aynıysa (nesne taşınmamışsa), sayacı artırır. Bu işlem sırasında nesne herhangi bir zamanda hareket ederse, sayaç “0” olarak sıfırlanır. Sonunda “TempDistance” “Mesafe” değerine ayarlanır.

Mesafeleri karşılaştırmadan hemen önce, sayaç değerinin 20’yi geçip geçmediğini de kontrol etmemiz gerekir. Bunu, araba sabit bir konumda ise aşağıdaki kodu çalıştırmayı durdurmak için yapıyoruz.

Son olarak, kodu bir süre duraklatmak için eskizimize küçük bir gecikme eklememiz gerekir.

 

Kodlar:

int trigPin = PD5; // Sensor Trip pin connected to Arduino pin D5
int echoPin = PD6; // Sensor Echo pin connected to Arduino pin D6
int redLED = PD2; // Red LED connected to pin D2
int yellowLED = PD3; // Yellow LED connected to pin D3
int greenLED = PD4; // Green LED connected to pin D4
int buzzer = A0; // Buzzer connected to Analogue pin A0
long TempDistance = 0; // A variable to store the temporary distance
int counter = 0; // Counter value to check if the object has stopped moving
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
long duration, Distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
Distance = (duration/2) / 74; // Distance in Inches
if(counter < 20){ // Do the rest if the car is still moving
if (Distance > 200) { // Nothing in the garrage
turnThemAllOff();
}
if ((Distance > 55) && (Distance <= 200)) { // Turn on Green LED
digitalWrite(greenLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(redLED, LOW);
noTone(buzzer);
}
if ((Distance > 15) && (Distance <= 55)) { // Turn on Yellow LED
digitalWrite(yellowLED, HIGH);
digitalWrite(redLED, LOW);
digitalWrite(greenLED,LOW);
noTone(buzzer);
}
if (Distance <= 15) { // Turn on Red LED
digitalWrite(redLED, HIGH);
digitalWrite(greenLED,LOW);
digitalWrite(yellowLED, LOW);
noTone(buzzer);
}
if (Distance < 8) { // Item is way to close - start the buzzer
tone(buzzer, 500);
}
}
if ((Distance == TempDistance) || ((Distance+1) == TempDistance) || ((Distance-1) == TempDistance)){
if(counter >= 20){ // Turn off the lights if the object hasn't moved for 20 cycles (no change in distance)
Serial.println("No movement detected, turning off the lights");
turnThemAllOff();
} else {
counter++;
}
} else {
counter = 0; // Reset counter if there is a movement
}
TempDistance = Distance;
Serial.print(Distance);
Serial.println(" inches");
Serial.print("Counter : ");
Serial.println(counter); delay(500); }
// Function to turn the LEDs off
void turnThemAllOff(){
digitalWrite(redLED, LOW);
digitalWrite(greenLED,LOW);
digitalWrite(yellowLED, LOW);
noTone(buzzer);
}

 

Adım 6: Deneme

Sensöre yaklaştıkça ışık yeşilden sarıya ve kırmızıya döner. Sonuçta sensöre çok yaklaştığımda sesli uyarı da devreye girer. Bizim yaptığımız projede buzzer Arduino’nun yanında duruyor, ancak zili LED’lerle birlikte takmanızı tavsiye ederim. İsterseniz zil çaldığında kırmızı LED’i de yanıp sönebilir şekilde ayarlayabilirsiniz.

Şimdi, hiçbir varsayımda bulunmadan arabayı kolayca park edebilirsiniz.

Aşağıdaki Arduino Park Sensörü videosunu izlemenizi istiyoruz. Projeyi yapmanız da kolaylık sağlayacağını düşündük.

 

Diğer Güncel Teknoloji Haberlerimiz için BURAYA TIKLAYABİLİRSİNİZ.

Sizde Robotlara ve Maker’lığa Meraklıysanız, Robotik Marketimiz ROBOCOMBO‘yu Ziyaret Edebilirsiniz.

 

Okuduğunuz İçin Teşekkürler.

 

Kaynak:  maker.pro/arduino/projects/diy-arduino-based-car-parking-assistant