1000 TL Üzeri Alışverişlerde Ücretsiz Kargo ve Türkiye'nin Her Yerine 79,90₺

Arduino ile Park Sensörü Yapımı - İlginç Arduino Projeleri | Robocombo

Arduino ile Park Sensörü Yapımı - İlginç Arduino Projeleri | Robocombo
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ı 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 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 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

 
Ş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.
Etiketler: Arduino ile Park Sensörü Yapım
Ekim 17, 2021
Listeye dön
cultureSettings.RegionId: 0 cultureSettings.LanguageCode: TR
Çerez Uyarısı

Alışveriş deneyiminizi iyileştirmek için yasal düzenlemelere uygun çerezler (cookies) kullanıyoruz. Detaylı bilgiye Gizlilik ve Çerez Politikası
sayfamızdan erişebilirsiniz.