Arduino İle Mobil Park Sensörü Yapımı

13 4.181

Bu projemizde taşınabilir park sensörü yapımını anlatacağım.Sistemde ultrasonik sensörden alınan verileri bluetooth üzerinden lcd ekrandan göreceğiz.Sistemimiz taşınabilir ve montajı çok basit olması yönüyle avantaj sağlayacaktır.İstediğimiz zaman bir araçtan başka bir araca yerleştirebiliriz.Arduino ile park sensörü yapımı projemize başlayalım.

Malzemeler:

  1. 2 Arduino (model farketmez nano yeterli olacaktır)
  2. Hc-05 ve Hc-06 Bluetooth Modüller
  3. Hc-Sr04 Ultrasonik Sensör
  4. Lcd Ekran (16×2)

Projemize başlamadan önce kullandığımız bluetooth modüllerin haberleşmesi için AT yapılandırmasını yapmanız gerekecek.

Buradan nasıl yapılacağına bakabilirsiniz. >> Bluetooth modüllerin haberleşmesi

Elektronik Kısım:

Verici Devresi:

Alıcı Devresi:

Alıcı kısımda lcd bağlantılarını şekildeki gibi yapabilirsiniz.Eğer sizdeki lcd ekran serial dönüştürücü varsa bu bağlantıları yapmanıza gerek yok.

Yazılım kısmında haberleşmede bluetooh modüller için normal iletişim pinlerini kullandık.Ayrı serial iletişim kütüphanesi eklemeniz gerekmiyor.

Yazılım Kısmı:

Verici Yazılımı:

//Yazılım Geliştirme By Robimek - 2015
//Yazılım Lisans By Robimek
//www.robimek.com
 
#include <NewPing.h>
int trigPin=12;
int echoPin=11;
#define MAX_DISTANCE 200
NewPing sonar(trigPin, echoPin, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
 
void setup() {
Serial.begin(9600);
 
}
 
void loop() {
delay(50);
unsigned int uS = sonar.ping();
Serial.write(uS / US_ROUNDTRIP_CM);
 
}

Alıcı Yazılımı:

//Yazılım Geliştirme By Robimek - 2015
//Yazılım Lisans By Robimek
//www.robimek.com
 
#include <LiquidCrystal.h>
LiquidCrystal LCD(10, 9, 5, 4, 3, 2);
int buzzerpin = 6;
unsigned int distance;
void setup() {
 
Serial.begin(9600);
LCD.begin(16,2);
LCD.setCursor(0,0);
LCD.print("Mesafe:");
pinMode(buzzerpin, OUTPUT);
digitalWrite(buzzerpin,HIGH);
}
 
void loop() {
 
if (Serial.available()>0){
delay(50);
distance = Serial.read();
LCD.setCursor(0,1);
LCD.print(" ");
LCD.setCursor(0,1);
LCD.print(distance);
LCD.print(" cm");
if(distance >200)
{
digitalWrite(buzzerpin, HIGH);
 
}
if(distance >=150 && distance <200) { digitalWrite(buzzerpin, LOW); beep(200); } if(distance >=100 && distance <150) { digitalWrite(buzzerpin, LOW); beep(150); } if(distance >=50 && distance <100)
{
digitalWrite(buzzerpin, LOW);
beep(50);
}
if(distance <50)
{
digitalWrite(buzzerpin, LOW);
beep(10);
}
 
}
}
 
void beep(unsigned char delayms){
analogWrite(12, 255);
delay(delayms);
analogWrite(12, 0);
delay(delayms);
 
}

Yazılımı da yükledikten sonra, iki sistemde açık konumda iken bluetooth modüller otomatik birbirlerine bağlanacaktır.Bağlantı kurulduktan sonra lcd ekranda mesafeyi görebilirsiniz.Yazılımda maksimum mesafeyi 200 cm olarak ayarladık.Bu sensörün maksimum görme mesafesi 4 metredir.İsterseniz 4 metreye kadar değişiklik yapabilirsiniz.

Projenin fritzing dosyasını buradan indirebilirsiniz. >> Mobil Park Sensör Devresi

3 sensörlü park sistemini buradan indirebilirsiniz >> 3 sensörlü park sistemi

 

Bunlar da İlgini Çekebilir
Cevap bırakın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

13 Yorum
  1. Fatih

    iyi günler biz android kontrollü araba yapıyoruz ve bu sensörü eklemek istiyoruz bizim şuanki arduino kodumuza nasıl bunu ekleyebiliriz yardımcı olurmusunuz ?

  2. muhammed

    Sensörün yazılımını nerden bulurum yardımcı olurmusunuz

    1. Sezgin GÜL

      Sensörün kütüphanesini kastediyorsanız buradan indirebilirsin. >> http://www.robimek.com/wp-content/uploads/NewPing.rar

  3. Arif

    Çok teşekkürler sezgin bey emek verip hazırlamışsınız kod hakkında pek bilgim yok ama mantık yoluyla eklemeleri yapabilirim diye düşünüyorum teşekkürler.

    1. Sezgin GÜL

      Rica ederim 3 sensöre göre yazılımı yüklüyorum yine de siz uğraşın.Çalışmassa yazılımı indirirsiniz.İyi çalışmalar.

  4. Arif

    Merhabalar bu mesafe sensörleri hakkında sormak istediğim bir soru var.Mesela bu sensörü aracın tam ortasına tutturduk sensör tam karşısına denk gelen engeller olduğu zaman mesafeyi ölçüyor orada sorun yok peki örneğin aracın sinyalinin ordaki engeli görmesi biraz zor değilmi ?

    1. Sezgin GÜL

      Merhaba Arif : Bu projede prototip amaçlı gösterdim.Tabiki de köşelere de koyarsan her açıdan görmesi sağlanır.Sisteme iki sensör de ekleme yaparak sistemi geliştirebilirsin.

      1. Arif

        Peki iki tane daha sensör eklediğim zaman bağlantı ve yazılımda nasıl bir değişiklik yapmam gerekiyor yardımcı olabilirmisiniz?

        1. Sezgin GÜL

          tanımlamaları bu şekilde ekleyebilirisiniz.

          int trigPin1=10;
          int echoPin1=9;
          int trigPin2=8;
          int echoPin2=7;
          #define MAX_DISTANCE1 200
          NewPing sonar1(trigPin1, echoPin1, MAX_DISTANCE1);
          #define MAX_DISTANCE 200
          NewPing sonar2(trigPin2, echoPin2, MAX_DISTANCE2);

          loop kısmına da bu kodu ekleyin

          unsigned int uS1 = sonar1.ping();
          Serial.print(uS1 / US_ROUNDTRIP_CM);
          unsigned int uS2 = sonar2.ping();
          Serial.print(uS2 / US_ROUNDTRIP_CM); 
        2. Sezgin GÜL

          Alıcı kısma eklenecek tanımlamalar:

          char distance1;
          char distance2;

          loop kısmını silin aşağıdaki kodu ekleyin.

          void loop() {
           
          if (Serial.available()&gt;0){
          delay(50);
          distance = Serial.read();
          distance1 = Serial.read();
          distance2 = Serial.read();
          LCD.setCursor(0,0);
          LCD.print(&quot;sol&quot;);
          LCD.setCursor(0,1);
          LCD.print(distance);
          LCD.setCursor(6,0);
          LCD.print(&quot;orta&quot;);
          LCD.setCursor(6,1);
          LCD.print(distance1);
          LCD.setCursor(12,0);
          LCD.print(&quot;sag&quot;);
          LCD.setCursor(12,1);
          LCD.print(distance2);
          if((distance &gt;200)&amp;&amp;(distance1 &gt;200)&amp;&amp;(distance2 &gt;200))
          {
          digitalWrite(buzzerpin, HIGH);
           
          }
          if((distance &gt;=150 &amp;&amp; distance &lt;200)||(distance1 &gt;=150 &amp;&amp; distance1 &lt;200)||(distance2 &gt;=150 &amp;&amp; distance2 &lt;200))
          { digitalWrite(buzzerpin, LOW); beep(200); } 
          if((distance &gt;=100 &amp;&amp; distance &lt;150)||(distance1 &gt;=100 &amp;&amp; distance1 &lt;150)||(distance2 &gt;=100 &amp;&amp; distance2 &lt;150))
          { digitalWrite(buzzerpin, LOW); beep(150); } 
          if((distance &gt;=50 &amp;&amp; distance &lt;100)||(distance1 &gt;=50 &amp;&amp; distance1 &lt;100)||(distance2 &gt;=50 &amp;&amp; distance2 &lt;100))
          {
          digitalWrite(buzzerpin, LOW);
          beep(50);
          }
          if((distance &lt;50)||(distance &lt;50)||(distance1 &lt;50)||(distance2 &lt;50))
          {
          digitalWrite(buzzerpin, LOW);
          beep(10);
          }
           
          }
          }
  5. Uğurkan

    Yapmış olduğunuz bu proje hoşuma gitti fakat şuan araçlarda kullanılan park sensörü gibi sesle ikaz da veren bir proje yapılabilir mi yada buna ekleme yapabilir miyiz?

    1. Sezgin GÜL

      Tabiki de yapılır.Sisteme buzzer eklerseniz sesli ikaz veren sisteme çevirebilirsiniz.

    2. Sezgin GÜL

      UĞURKAN : Sisteme buzzer eklendi yazılım güncellendi.İyi çalışmalar.