🤖
ROBOT KODLA
Öğrenmeye Başla →
🚀 Robotik Projeler ve Yapım Rehberleri 📅 16 Ekim 2026

Engelden Kaçan Robot Yapımı: Arduino ile Adım Adım

Arduino ve ultrasonik sensör ile engelden kaçan otonom robot nasıl yapılır? L298N motor sürücü, servo tarama kafası, devre şeması ve tam kodlar.

Engelden Kaçan Robot Yapımı: Arduino ile Adım Adım

Otonom mobil robotların dünyadaki en temel görevi, insan müdahalesine ihtiyaç duymadan bilinmeyen bir ortamda gezinmek ve karşılaştığı engellere çarpmadan yoluna devam etmektir. Evlerimizde her gün çalışan akıllı robot süpürgelerden Mars yüzeyinde kaya parçalarını aşan keşif araçlarına kadar tüm mobil sistemlerin çekirdeğinde "Engelden Kaçan Robot Algoritması" yer alır.

Bu kapsamlı rehberde; Arduino Uno, HC-SR04 ultrasonik mesafe sensörü, SG90 servo motor ve L298N motor sürücü kullanarak çevresine bakınan, en açık yolu tespit eden ve engellerden zekice kaçan bir robot arabanın yapımını adım adım inceliyoruz.

1. Sistemin Çalışma Mantığı ve "Kafasını Çeviren Robot" Mimarisi

Basit engelden kaçan robotlar sensörleri sabit olduğu için sadece önünü görür ve geri kaçar. Bizim inşa edeceğimiz gelişmiş modelde ise ultrasonik sensör bir servo motorun üzerine (hareketli bir kafa gibi) monte edilir:

  • Robot normal şartlarda düz ileri doğru ilerler.
  • Bu esnada servo motor sensörü tam karşıya (90 derece) bakar vaziyette tutar ve ön mesafeyi sürekli ölçer.
  • Önündeki engel 25 santimetrenin altına indiğinde robot anında durur.
  • Servo motor sensörü önce sağa (0 dereceye) çevirir ve sağdaki mesafeyi hafızaya kaydeder.
  • Ardından sensörü sola (180 dereceye) çevirir ve soldaki mesafeyi kaydeder.
  • Arduino iki mesafeyi karşılaştırır:
  • Sağdaki mesafe daha açıksa: Robot sağa döner.
  • Soldaki mesafe daha açıksa: Robot sola döner.
  • Her iki taraf da tıkalıysa: Robot geri vitese takar, geri gider ve 180 derece arkasını döner.
  • Servo tekrar 90 dereceye (karşıya) döner ve robot ileri gitmeye devam eder.
  • Bu mimari robota gerçek bir yapay canlı hissi kazandırır.

    2. Gerekli Malzemeler Listesi

    MalzemeAdetAçıklama
    Arduino Uno R31Ana işlemci kartı
    2WD Robot Şasisi12 DC motor, 2 tekerlek, sarhoş teker ve gövde
    L298N Çift Motor Sürücü Modülü1Motorlara yön ve güç veren sürücü
    HC-SR04 Mesafe Sensörü1Engelleri algılayan ultrasonik gözler
    SG90 9g Mikro Servo Motor1Sensörü sağa-sola döndüren kafa motoru
    Ultrasonik Sensör Tutucu Aparat1Sensörü servoya tutturan plastik/pleksi parça
    2 Adet 18650 Li-ion Pil ve Yuvası17.4V yüksek güçlü motor beslemesi
    Jumper Kablolar20+Devre bağlantıları

    3. Devre Şeması ve Pin Bağlantı Rehberi

    A. L298N Motor Sürücü Pinleri:

  • OUT1, OUT2: Sol DC Motor
  • OUT3, OUT4: Sağ DC Motor
  • 12V Girişi: 18650 Pillerin (+) kutbuna
  • GND Girişi: Pillerin (-) kutbuna VE Arduino GND pinine (Ortak GND!)
  • IN1: Arduino Pin 5
  • IN2: Arduino Pin 6
  • IN3: Arduino Pin 9
  • IN4: Arduino Pin 10
  • B. HC-SR04 ve Servo Bağlantıları:

  • HC-SR04 Trig: Arduino Pin 7
  • HC-SR04 Echo: Arduino Pin 8
  • HC-SR04 VCC / GND: Arduino 5V / GND
  • SG90 Servo Sinyal (Turuncu): Arduino Pin 11
  • SG90 Servo Kırmızı / Kahverengi: Arduino 5V / GND
  • 4. Tam ve Çalışan Arduino C++ Kodları

    /* * RobotKodla.com - Otonom Sistemler * Proje: Gelişmiş Engelden Kaçan Robot (Servo Taramalı) */ #include <Servo.h> // Motor Pinleri
    const int solMotorIleri = 5;
    const int solMotorGeri = 6;
    const int sagMotorIleri = 9;
    const int sagMotorGeri = 10; // Sensör Pinleri
    const int trigPin = 7;
    const int echoPin = 8;
    const int servoPin = 11; Servo kafaServosu; int sagMesafe = 0;
    int solMesafe = 0;
    int onMesafe = 0; void setup() { pinMode(solMotorIleri, OUTPUT); pinMode(solMotorGeri, OUTPUT); pinMode(sagMotorIleri, OUTPUT); pinMode(sagMotorGeri, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); kafaServosu.attach(servoPin); kafaServosu.write(90); // Karşıya bak delay(1000);
    } void loop() { onMesafe = mesafeOlc(); // Eğer önünde 25 cm'den yakın engel varsa karar verme moduna geç if (onMesafe <= 25) { dur(); delay(200); geriGit(); delay(300); dur(); delay(200); // Sağı kontrol et kafaServosu.write(20); delay(500); sagMesafe = mesafeOlc(); // Solu kontrol et kafaServosu.write(160); delay(500); solMesafe = mesafeOlc(); // Kafayı tekrar öne çevir kafaServosu.write(90); delay(300); // Karşılaştırma yap if (sagMesafe > solMesafe) { sagaDon(); delay(400); // 90 derece sağa dön } else { solaDon(); delay(400); // 90 derece sola dön } dur(); delay(200); } else { ileriGit(); }
    } int mesafeOlc() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); long sure = pulseIn(echoPin, HIGH, 30000); // 30ms zaman aşımı if (sure == 0) return 400; // Yankı dönmezse yol açık kabul et return sure * 0.034 / 2;
    } void ileriGit() { digitalWrite(solMotorIleri, HIGH); digitalWrite(solMotorGeri, LOW); digitalWrite(sagMotorIleri, HIGH); digitalWrite(sagMotorGeri, LOW);
    } void geriGit() { digitalWrite(solMotorIleri, LOW); digitalWrite(solMotorGeri, HIGH); digitalWrite(sagMotorIleri, LOW); digitalWrite(sagMotorGeri, HIGH);
    } void sagaDon() { digitalWrite(solMotorIleri, HIGH); digitalWrite(solMotorGeri, LOW); digitalWrite(sagMotorIleri, LOW); digitalWrite(sagMotorGeri, HIGH);
    } void solaDon() { digitalWrite(solMotorIleri, LOW); digitalWrite(solMotorGeri, HIGH); digitalWrite(sagMotorIleri, HIGH); digitalWrite(sagMotorGeri, LOW);
    } void dur() { digitalWrite(solMotorIleri, LOW); digitalWrite(solMotorGeri, LOW); digitalWrite(sagMotorIleri, LOW); digitalWrite(sagMotorGeri, LOW);
    }

    5. Mekanik Montaj ve Ağırlık Merkezi Tavsiyeleri

  • Ağır Pilleri Alta Yerleştirin: 18650 piller robotun en ağır parçalarıdır. Ağırlık merkezini yere yakın tutmak için pil yuvasını pleksi şasinin alt kısmına veya tam ortasına monte edin. Aksi halde robot ani duruşlarda öne doğru takla atabilir.
  • Kablo Esnekliği: Servonun kafasını sağa sola çevirirken ultrasonik sensör kablolarının gerilip çıkmaması için kablolara biraz pay (boşluk) bırakın.
  • Sarhoş Tekerlek Yağlaması: Ön sarhoş metal bilyenin içine bir damla makine yağı damlatmak dönüşlerdeki sürtünmeyi yok eder ve robotun zemin üzerinde kaymasını sağlar.
  • 6. Sık Karşılaşılan Sorunlar ve Çözümleri

    Hata BelirtisiNedeniÇözüm Adımı
    Robot engele çarpıyor, hiç durmuyorUltrasonik sensör menzil aşımına düşüyorSensörün açı olarak yere çok eğik bakmadığından emin olun (yere çarpıp seker).
    Robot sağa dönmesi gerekirken sola dönüyorMotor kutup kabloları ters bağlıL298N üzerindeki OUT1-OUT2 veya OUT3-OUT4 klemens kablolarını ters çevirin.
    Servo kafa döndüğünde Arduino reset atıyorAnlık akım yetersizliğiServo ve Arduino 5V pinine paralel 470µF kondansatör takın veya pilleri şarj edin.

    7. Kapsamlı Sıkça Sorulan Sorular (SSS)

    Robot ince masa bacaklarını neden algılayamıyor?

    HC-SR04 sensörünün yaydığı ses dalgası konik bir alana yayılır. Çok ince metal masa veya sandalye bacakları ses dalgalarını sağa sola saçar ve geri yansıtmaz. Bu kör noktaları kapatmak için robotun köşelerine minik dokunmatik switch (bumper) butonlar eklenebilir.

    Kaç santimetre engelde durması idealdir?

    Robotun hızına bağlı olarak 20 ile 30 cm arası en ideal frenleme mesafesidir. 10 cm'nin altına inerseniz robot yüksek hızda giderken atalet nedeniyle duramayıp duvara çarpabilir.

    Sonuç

    Engelden kaçan robot projesi, yazılımla mekanik sistemlerin birleştiğinde ortaya çıkan otonom zekanın en somut kanıtıdır. Bu projeyi başarıyla bitirdikten sonra üzerine Bluetooth modülü ekleyerek hem manuel hem otonom modlar arasında geçiş yapabilen melez bir sistem tasarlayabilirsiniz. Detaylı yapım kılavuzları için sitemizin [Projeler](/projeler) sekmesini ziyaret edin!

    💡

    Engelden Kaçan Robot Yapımı: Arduino ile Adım Adım Hakkında Sıkça Sorulan Sorular

    Bu yazıyla ilgili en çok merak edilen noktalar ve uzman yanıtları

    Bu rehber yazıda anlatılan yöntemleri uygulamak için neler gereklidir?▼
    İçerikte belirtilen açık kaynaklı yazılım araçlarını ve temel donanım bileşenlerini temin etmeniz yeterlidir. Tüm adımlar pratik uygulamalarla desteklenmiştir.
    Bu uygulamada devre bağlantısı yaparken en çok yapılan hata nedir?▼
    Ortak toprak (GND) hattının bağlanmaması, LED ve sensör bacaklarının ters kutupla takılması ya da pin numaralarının koddaki dijital/analog tanımlarla uyuşmaması en sık karşılaşılan durumlardır. Şemadaki pin numaralarını iki kez kontrol etmek sorunu çözer.
    Engelden Kaçan Robot Yapımı: Arduino ile Adım Adım çalışmasını tamamladıktan sonra nasıl daha ileri bir seviyeye taşıyabilirim?▼
    Bu çalışmaya ek sensörler (kablosuz Bluetooth/Wi-Fi modülü, OLED ekran veya sesli buzzer uyarısı) entegre edebilir; verileri internet ortamına aktararak Nesnelerin İnterneti (IoT) tabanlı akıllı bir sisteme dönüştürebilirsiniz.