HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
Engel Algılayan Servo Radar Projesi: Adım Adım Yapım Rehberi

Engel Algılayan Servo Radar Projesi: Adım Adım Yapım Rehberi

Arduino ile elektronik ve kodlama dünyasına adım atmak, bazen zorlayıcı gibi görünse de aslında oldukça eğlenceli ve öğretici bir süreçtir. Bu yazıda, Arduino Uno, bir servo motor ve ultrasonik sensör kullanarak kendi basit radar sisteminizi nasıl kuracağınızı anlatacağız. Bu proje sayesinde hem temel elektronik bağlantılarını hem de Arduino kodlama mantığını pekiştireceksin.

Gerekli Malzemeler

Bu projeyi hayata geçirmek için ihtiyacın olan tüm malzemeler aşağıda listelenmiştir. Malzemelerin çoğu elektronik hobi kitlerinde kolayca bulunabilir.

  • Arduino Uno R3 (CH340): Projemizin beyni. Tüm kodları ve bağlantıları bu kart üzerinde yöneteceğiz.
  • Servo motor (SG90): Sensörün sağa ve sola dönmesini sağlayacak küçük ve güçlü bir motor.
  • Ultrasonik sensör (HC-SR04): Ses dalgaları yayarak mesafeyi ölçen temel sensörümüz.
  • Breadboard: Devre bağlantılarını lehim yapmadan kurmamızı sağlayan pratik bir araç.
  • Jumper kablolar: Farklı renklerde erkek-erkek kablolar, komponentleri birbirine ve Arduino'ya bağlamak için ideal.
  • 10kΩ direnç (opsiyonel): Ultrasonik sensörün Echo pini için stabilite sağlamak amacıyla kullanılabilir.
  • USB kablosu: Arduino'yu bilgisayara bağlayıp kod yüklemek ve enerji vermek için gerekli.

Devre Bağlantı Şeması

Devre bağlantılarını yapmak projenin en önemli adımlarından biridir. Aşağıdaki adımları dikkatle takip ederek bağlantıları kolayca tamamlayabilirsin.

  • Ultrasonik Sensör (HC-SR04) Bağlantısı:VCC pinini Arduino'nun 5V pinine bağla.GND pinini Arduino'nun GND pinine bağla.Trig pinini Arduino'nun D9 pinine bağla.Echo pinini Arduino'nun D10 pinine bağla. (Eğer sinyal stabil değilse, bu pine 10kΩ direnç bağlayabilirsin.)
  • VCC pinini Arduino'nun 5V pinine bağla.
  • GND pinini Arduino'nun GND pinine bağla.
  • Trig pinini Arduino'nun D9 pinine bağla.
  • Echo pinini Arduino'nun D10 pinine bağla. (Eğer sinyal stabil değilse, bu pine 10kΩ direnç bağlayabilirsin.)
  • Servo Motor (SG90) Bağlantısı:Kırmızı kabloyu (VCC) Arduino'nun 5V pinine bağla.Kahverengi kabloyu (GND) Arduino'nun GND pinine bağla.Turuncu kabloyu (PWM) Arduino'nun D3 pinine bağla.
  • Kırmızı kabloyu (VCC) Arduino'nun 5V pinine bağla.
  • Kahverengi kabloyu (GND) Arduino'nun GND pinine bağla.
  • Turuncu kabloyu (PWM) Arduino'nun D3 pinine bağla.

Tüm bağlantıları tamamladıktan sonra, ultrasonik sensörü küçük bir bant veya vida yardımıyla servo motorun üzerine sabitleyebilirsin. Bu, sensörün servo ile birlikte hareket etmesini sağlayacaktır.

Arduino Kodları

Devre bağlantılarını bitirdikten sonra sıra projenin beynini oluşturan koda geldi. Arduino IDE'yi aç ve aşağıdaki kodları kopyalayıp yapıştır. Kod, servo motoru 0 ile 180 derece arasında hareket ettirirken, ultrasonik sensörden gelen mesafeyi ölçer.

C++

#include <Servo.h>

// Ultrasonik sensör ve servo motor pinlerini tanımlıyoruz
const int trigPin = 9;
const int echoPin = 10;
const int servoPin = 3;

// Servo motor nesnesi oluşturuyoruz
Servo myServo;

long duration;
int distance;

void setup() {
  // Servo motoru belirtilen pine bağlıyoruz
  myServo.attach(servoPin);
  
  // Ultrasonik sensör pinlerini giriş ve çıkış olarak ayarlıyoruz
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  // Seri iletişimi başlatıyoruz, böylece mesafeyi görebiliriz
  Serial.begin(9600);
}

void loop() {
  // Servo motoru 0'dan 180 dereceye doğru hareket ettiriyoruz
  for (int pos = 0; pos <= 180; pos += 2) {
    myServo.write(pos);
    delay(30);
    
    distance = getDistance();
    
    Serial.print("Açı: ");
    Serial.print(pos);
    Serial.print("° | Mesafe: ");
    Serial.print(distance);
    Serial.println(" cm");
    
    // Eğer 20 cm'den yakın bir engel varsa uyarı ver
    if (distance > 0 && distance < 20) {
      Serial.println(">>> Engel algılandı! <<<");
    }
  }

  // Servo motoru 180'den 0 dereceye doğru geri hareket ettiriyoruz
  for (int pos = 180; pos >= 0; pos -= 2) {
    myServo.write(pos);
    delay(30);
    
    distance = getDistance();
    
    Serial.print("Açı: ");
    Serial.print(pos);
    Serial.print("° | Mesafe: ");
    Serial.print(distance);
    Serial.println(" cm");
    
    if (distance > 0 && distance < 20) {
      Serial.println(">>> Engel algılandı! <<<");
    }
  }
}

// Mesafe ölçümü yapan fonksiyon
int getDistance() {
  // Trig pinine kısa bir sinyal gönderiyoruz
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Echo pininden gelen sinyalin süresini ölçüyoruz
  duration = pulseIn(echoPin, HIGH);
  
  // Süreyi mesafeye çeviriyoruz (cm cinsinden)
  // Ses hızı ~0.034 cm/mikrosaniye'dir
  int dist = duration * 0.034 / 2;
  return dist;
}

Projenin Çalışma Mantığı ve Geliştirme Fikirleri

Kodları Arduino'ya yükledikten sonra Seri Monitör'ü açtığınızda, servo motorun dönmeye başladığını ve her açı için mesafenin ekrana yazdırıldığını göreceksin. Eğer 20 cm'den daha yakın bir nesne algılanırsa, ekranda "Engel algılandı!" uyarısı belirecektir.

Bu basit projenin üzerine farklı özellikler ekleyerek onu daha işlevsel hale getirebilirsin:

  • Sesli Uyarı: Bir buzzer ekleyerek engel algılandığında sesli bir uyarı verebilirsin.
  • Görsel Arayüz: Processing gibi bir programlama dili kullanarak bilgisayar ekranında gerçek zamanlı bir radar arayüzü oluşturabilirsin.
  • LCD Ekran: Ölçülen mesafe değerlerini ve uyarıları küçük bir LCD ekranda gösterebilirsin.

Bu proje, Arduino dünyasına giriş yapmak için harika bir başlangıç noktası. Kendi fikirlerini ekleyerek onu kişiselleştirmekten çekinme! Unutma, en iyi projeler merak ve deneme yanılma ile ortaya çıkar.