🚀 Robotik Projeler ve Yapım Rehberleri 📅 16 Ekim 2026

Bluetooth Kontrollü Robot Nasıl Yapılır?

Akıllı telefon ile kontrol edilen Bluetooth robot nasıl yapılır? HC-06 modülü, L298N sürücü, mobil uygulama arayüzü ve çalışan C++ kodları.

Bluetooth Kontrollü Robot Nasıl Yapılır?

Kablosuz iletişim teknolojileri, robotların insan tehlikesi olan bölgelerde (arama kurtarma, nükleer santral denetimi, bomba imha) uzaktan yönetilmesini sağlayan en kritik araçtır. Kendi tasarladığınız bir robotu kablo karmaşası olmadan, cebinizdeki akıllı telefonun ekranındaki joystick veya butonlarla yönetmek hem son derece tatmin edici bir deneyimdir hem de kablosuz haberleşme protokollerini anlamanın en pratik yoludur.

Bu kapsamlı yapım kılavuzunda; **HC-06 / HC-05 Bluetooth Modülü** ile Arduino arasındaki seri iletişimi (UART), mobil kumanda uygulamasının yapılandırılmasını, çift motor sürücü entegrasyonunu ve eksiksiz kaynak kodlarını adım adım inceliyoruz.

---

1. Kablosuz Seri Haberleşme (UART) Nasıl Çalışır?

Bluetooth teknolojisi, 2.4 GHz ISM frekans bandında kısa mesafeli radyo dalgalarıyla veri iletir. Robotumuzda bu iletişimi sağlayan köprü **UART (Evrensel Asenkron Alıcı-Verici)** protokolüdür:

  • Telefonunuzdaki uygulamada "İLERİ" butonuna bastığınızda, uygulama havaya 'F' (Forward) karakterini temsil eden bir baytlık sayısal veri fırlatır.
  • Robot üzerindeki HC-06 modülü bu radyo dalgasını yakalar ve kablolu sinyale dönüştürerek **TXD (Transmit)** bacağından dışarı verir.
  • Arduino Uno bu veriyi **RX (Receive - Pin 0)** bacağından alır.
  • Arduino'daki `Serial.read()` fonksiyonu bu harfi okur ve motorlara "İki motoru da tam hızda ileri döndür" emrini verir.
  • Tüm bu süreç göz açıp kapayıncaya kadar, yani yaklaşık **10-15 milisaniye** içinde gerçekleşir.

    ---

    2. Gerekli Malzemeler Listesi

    | Malzeme | Adet | Görevi |

    |---|---|---|

    | **Arduino Uno R3** | 1 | Ana kontrol mikrodenetleyicisi |

    | **2WD Robot Şasisi ve Motorlar** | 1 | Pleksi gövde, 2 sarı DC motor ve sarhoş teker |

    | **L298N Motor Sürücü Modülü** | 1 | Motorları yüksek akımla süren sürücü |

    | **HC-06 Bluetooth Modülü** | 1 | Kablosuz veri alıcı kartı |

    | **2x 18650 Li-ion Pil ve Yuvası** | 1 | 7.4V güçlü enerji kaynağı |

    | **Jumper Kablolar** | 15+ | Bağlantılar için |

    | **Akıllı Telefon (Android / iOS)** | 1 | Uzaktan kumanda cihazı |

    ---

    3. Devre Şeması ve Kritik Bağlantı Noktaları

    A. L298N ve Motorlar:

  • **OUT1 & OUT2:** Sol DC Motor
  • **OUT3 & OUT4:** Sağ DC Motor
  • **12V Girişi:** Pil Yuvası (+)
  • **GND Girişi:** Pil Yuvası (-) VE Arduino GND (Ortak Topraklama)
  • **IN1, IN2, IN3, IN4:** Sırasıyla Arduino Pin 5, 6, 9, 10
  • B. HC-06 Bluetooth Modülü:

  • **VCC:** Arduino 5V
  • **GND:** Arduino GND
  • **TXD:** Arduino RX (Dijital Pin 0)
  • **RXD:** Arduino TX (Dijital Pin 1) - İsteğe bağlı olarak 1kΩ ve 2kΩ dirençlerle gerilim bölücü yapılarak 3.3V seviyesine düşürülebilir.
  • > **Hayati Uyarı:** Bilgisayardan Arduino'ya kod yüklerken Bluetooth RX ve TX kablolarını çıkarın. Yükleme "Tamamlandı" yazdıktan sonra geri takın.

    ---

    4. Tam ve Çalışan Arduino C++ Kodları

    /*
     * RobotKodla.com - Kablosuz Robotik Dersleri
     * Proje: Bluetooth Kontrollü Robot
     */
    
    const int solIleri = 5;
    const int solGeri  = 6;
    const int sagIleri = 9;
    const int sagGeri  = 10;
    
    char veri;
    
    void setup() {
      pinMode(solIleri, OUTPUT);
      pinMode(solGeri,  OUTPUT);
      pinMode(sagIleri, OUTPUT);
      pinMode(sagGeri,  OUTPUT);
    
      Serial.begin(9600); // HC-06 varsayılan fabrika hızı
    }
    
    void loop() {
      if (Serial.available() > 0) {
        veri = Serial.read();
    
        if (veri == 'F') {      // İleri
          sur(HIGH, LOW, HIGH, LOW);
        } else if (veri == 'B') { // Geri
          sur(LOW, HIGH, LOW, HIGH);
        } else if (veri == 'L') { // Sol
          sur(LOW, HIGH, HIGH, LOW);
        } else if (veri == 'R') { // Sağ
          sur(HIGH, LOW, LOW, HIGH);
        } else if (veri == 'S') { // Dur
          sur(LOW, LOW, LOW, LOW);
        }
      }
    }
    
    void sur(int s1, int s2, int sg1, int sg2) {
      digitalWrite(solIleri, s1);
      digitalWrite(solGeri,  s2);
      digitalWrite(sagIleri, sg1);
      digitalWrite(sagGeri,  sg2);
    }

    ---

    5. Mobil Uygulama Kurulumu ve Eşleştirme

    1. Google Play Store'dan **"Arduino Bluetooth Controller"** veya **"Car Bluetooth RC"** uygulamasını indirin.

    2. Robotun güç anahtarını açın (HC-06 LED'i hızla yanıp sönecektir).

    3. Telefonunuzun Bluetooth ayarlarından HC-06'yı bulun ve eşleştirin (Şifre: `1234` veya `0000`).

    4. Uygulamayı açıp "Connect" butonuna basarak HC-06'yı seçin.

    5. Modül üzerindeki LED sabit yandığında bağlantı tamamlanmıştır; telefonunuz artık tam fonksiyonlu bir oyun koludur!

    ---

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

    iPhone (iOS) kullanıyorum, HC-06 modülüne bağlanabilir miyim?

    Klasik Bluetooth (Bluetooth 2.0 / 3.0) kullanan HC-05 ve HC-06 modülleri Apple'ın güvenlik protokolleri nedeniyle iOS cihazlarda doğrudan görünmez. iPhone ile kontrol etmek için **BLE (Bluetooth Low Energy / Bluetooth 4.0)** destekli **HM-10** veya **AT-09** modüllerini kullanmalısınız.

    Robot komutları çok geç algılıyor, gecikme (lag) nasıl önlenir?

    Kodun içine gereksiz `delay()` komutları koymayın. `delay()` işlemciyi dondurduğu için o sırada gelen Bluetooth sinyalleri seri port tamponunda birikir ve robot komutları 1-2 saniye gecikmeli olarak uygular.

    ---

    ---

    7. Bluetooth Kontrollü Robota İleri Seviye Özellikler Ekleme

    Temel yön kontrolünü sağladıktan sonra robotunuza şu harika donanımları ekleyerek sistemi tam teşekküllü bir keşif aracına dönüştürebilirsiniz:

    1. **Uzaktan Korna ve Işık Kontrolü:** Koddaki 'W' karakterine bir buzzer, 'U' karakterine ise ön far LED'lerini bağlayarak telefondan tek dokunuşla gece farlarını yakabilir veya sesli korna çalabilirsiniz.

    2. **Telefona Canlı Telemetri Bilgisi Gönderme:** Robot sadece telefondan komut almaz, aynı zamanda telefona veri de gönderebilir (`Serial.print`). Önündeki mesafe sensörünün ölçtüğü uzaklığı veya pil voltajını telefon ekranına canlı telemetri verisi olarak aktarabilirsiniz.

    3. **Failsafe (Sinyal Kopma Emniyeti):** Eğer robot telefonun kapsama alanından çıkarsa (10 metreyi aşarsa) son komutla sonsuza kadar duvara doğru gitmemesi için koda bir zaman aşımı sayacı ekleyin; 1 saniye boyunca yeni Bluetooth paketi gelmezse robot motorları otomatik olarak kilitlesin.

    ---

    8. Bluetooth Modülü Sorun Giderme Rehberi

  • **Modül Telefonda Görünmüyor:** HC-06'nın VCC ve GND kablolarını kontrol edin. Üzerindeki kırmızı LED'in hızlıca yanıp söndüğünden emin olun.
  • **Şifre Kabul Etmiyor:** Standart fabrika şifreleri `1234` veya `0000`dır. Bazı özel klonlarda `1111` de olabilir.
  • **Kod Yüklenirken Hata Alıyorum:** Arduino'nun 0 ve 1 numaralı pinleri hem bilgisayar USB'siyle hem de Bluetooth modülüyle aynı anda konuşamaz. Kodu karta yüklerken Bluetooth modülünün RX ve TX kablolarını çıkarın; yükleme bitince geri takın.
  • ---

    ---

    10. Mobil Kumanda Tasarımında Güvenlik ve İletişim Protokolleri

    Bluetooth kontrollü sistemlerde telefon ile mikrokontrolcü arasındaki veri bütünlüğü büyük önem taşır:

  • **Sağlama Toplamı (Checksum):** Çok kritik endüstriyel robotlarda tek bir harf göndermek yerine `'<'` ve `'>'` başlangıç-bitiş karakterleri ile çevrelenmiş paketler (örneğin `<F,180>`) gönderilir.
  • **Kopma Anında Acil Fren:** Telefon araması geldiğinde veya Bluetooth menzili aşıldığında robotun son hızla gitmeye devam etmemesi için Arduino her 500 ms'de bir yeni paket gelip gelmediğini kontrol eder; paket kesilirse motorlara anında durma emri verilir.
  • ---

    Sonuç

    Bluetooth kontrollü robot, kablosuz haberleşme dünyasına adım atmanın en pratik ve eğlenceli yoludur. Projenize far LED'leri, sesli korna buzzer'ı veya kamera ekleyerek sistemi çok daha profesyonel bir keşif aracına dönüştürebilirsiniz. Detaylı robotik dersleri için sitemizin [Projeler](/projeler) bölümünü ziyaret edin!