7 Mayıs 2020 Perşembe

Arduino ile park sensörü



Arabalarda bulunan park sensörleri basit bir mantık ile çalışır. Bu sistem içindeki en önemli bileşen ultrasonik mesafe sensörüdür. Bu sensör ses dalgaları ile çalışır. Ses dalgası gönderir ve çarpıp gelen ses dalgasını geri algılar. Geçen süre ile hız-zaman-yol formülü üzerinden cismin uzaklığını bir formül ile bize verir. Kendisi direk cm olarak mesafe vermez. Şimdi gelelim bu sistemi Arduino Uno devre kartı ve Arduino programlama ile yapmaya.



Yukarıdaki basit devreyi kurarak programlama işine girişmeden kullanacağımız devre elemanlarını tanıyalım. Bu devrede bir ultrasonik mesafe sensörü ve bir de küçük hoparlör diyebileceğimiz buzzer adında ses çıkaran bir bileşen kullanacağız. Fotoğrafta buzzer'a bağlı direnç yok ama buzzer'ı GND'ye 330ohm değerinde bir direnç ile bağlamak da fayda var. Benim elimde küçük değerli direnç olmadığı için direk kablo ile GND'ye bağladım. Bu durumda uzun süreli çalışmada buzzer bozulabilir.

Yukarıda gördüğünüz ultrasonik mesafe sensörü 4 pinden oluşmaktadır. Vcc ve GND pinlerine 5V ve Şase verildiğinde bu bileşen çalışmaktadır. Triq ucundan sinyal gönderip Echo ucundan bu sinyali geri alır. Bu gönderme ve alma uçları sayesinde basit bir hesaplama ile mesafeyi ölçeceğiz. Yanında gördüğünüz siyah renkli bileşen ise buzzer adındaki küçük hoparlör. Onda dikkat edilmesi gereken nokta + ve - uçların olduğudur. Artı uç resimde görüldüğü üzere bileşen üzerinde belirtilmiştir.


Bu devrede kırmızı ve gri kablo ile Arduino Uno kartımızında çalışma tahtasına (breadboard) güç bağlaması yaptık. Mor kablo ile sensörün GND ucuna topraklama, beyaz kablo ile sensörün Vcc ucuna 5V bağladık. Sarı kablo ile sensörün Echo ucundan Arduino'da 2 numaralı dijital pine, Yeşil kablo ile sensörün Triq ucundan Arduino'da 4 numaralı dijital pine bağlantı sağladık. Buzzer'ın artı ucunu 13 numaralı dijital pine eksi ucunu ise direk siyah kablo ile GND yani mavi hatta bağladık. Burada siyah kablo yerine 200-300 ohm değerli direnç takarsanız daha iyi olur. Bu şekilde bağlantıyı yapmış olduk. Gelelim kodlama kısmına. 

 PARK SENSÖRÜ ARDUİNO PROGRAMLAMA KODLARI
  • int zaman;
  • int mesafe;
  • void setup() {
  • pinMode(2,INPUT); //echo yani gelen sinyal
  • pinMode(4,OUTPUT); // triq yani giden sinyal
  • pinMode(13,OUTPUT); //buzzer için
  • Serial.begin(9600); //seri haberleşmeyi başlatmak için
  • }

  • void loop() {
  • //aşağıdaki 5 satır kod mesafe sensöründen sinyal gönderip
  • //gönderilen sinyali alma ve buradan gelen zaman ve
  • //sensörün bilinen hızı ile mesafe hesaplama işlemi yapılır
  • digitalWrite(4 , HIGH); //sinyal gönderiliyor
  • delayMicroseconds(10); //kısa bir bekleme
  • digitalWrite(4 , LOW); //gönderilen sinyal kesiliyor
  • zaman = pulseIn(2 , HIGH); //gelen sinyal zamanı hesaplanıyor
  • mesafe = (zaman/2) / 29.1; //hız-zaman-yol formülünden mesafe ölçülüyor. 29.1 sensörün hızı

  • if (mesafe <= 10) //mesafe 10 cm'den küçük ise 50 ms aralıklarla buzzer öter diğer if blokları da mesafelere göre buzzer süreleri değişiyor.
  • {
  • digitalWrite(13 , HIGH);
  • delay(50);
  • digitalWrite(13 , LOW);
  • delay(50);
  • }
  • else if (mesafe <= 25)
  • {
  • digitalWrite(13 , HIGH);
  • delay(150);
  • digitalWrite(13 , LOW);
  • delay(150);
  • }
  • else if (mesafe <= 40)
  • {
  • digitalWrite(13 , HIGH);
  • delay(400);
  • digitalWrite(13 , LOW);
  • delay(400);
  • }
  • else
  • {
  • digitalWrite(13 , HIGH);
  • delay(800);
  • digitalWrite(13 , LOW);
  • delay(800);
  • }
  • }
Yukarıda kod satırlarının yanında gerekli açıklamalar yapılmıştır. Buna göre setup bölümünde gerekli hazırlıklar yapıldıktan sonra loop bölümünde ilk 5 satır kod mesafeyi ölçmek için basit matematiksel işlemleri içermektedir. Sonrasında ise if blokları ile bir kıyaslama yaparak mesefeye göre buzzer'ın ses çıkarma süreleri belirtiliyor. Bu sürelere göre sensör ile cisim arasındaki uzaklık azaldıkça buzzer daha sık ses çıkararak bir nevi uyarıyı şiddetlendiriyor tıpkı arabalarda olan sensör sistemi gibi. Bu devreye istenirse ledler de eklenerek, led sayısına göre mesafeye göre led yakıp söndürme de yapılabilir. Mesela 50 cm'den uzak ise 1 led yanar, 50-30 arası 2 led yanar, 30-10 arası 3 led yanar, 10 cm'den aşağıda 4 led yanar gibi... 

Hiç yorum yok:

Yorum Gönder