Kablolardan kurtulma vakti geldi! Bu projede, HC-05 veya HC-06 Bluetooth modülünü kullanarak Arduino'yu cebimizdeki telefonla konuşturacağız. Bu, akıllı ev sistemlerinin ve uzaktan kumandalı robotların temelidir.

1. İletişimin Altın Kuralı: Çapraz Bağlantı

Bluetooth modülü ve Arduino, Seri Haberleşme (UART) protokolünü kullanır. Burada iki önemli uç vardır: TX (Transmit - Konuşan) ve RX (Receive - Dinleyen).

ARDUINO Pin 10 (RX) 👂 Pin 11 (TX) 👄 HC-06 TX (Verici) 👄 RX (Alıcı) 👂 Bluetooth RX --> KURAL: TX, RX'e bağlanır. (Konuşan -> Duyan)

2. SoftwareSerial Kütüphanesi

Önemli İpucu: Arduino'nun 0 (RX) ve 1 (TX) pinleri USB kablosuyla bilgisayara bağlıdır. Bluetooth modülünü bu pinlere takarsanız, bilgisayardan kod yükleyemezsiniz (Hata verir).

Bu yüzden SoftwareSerial kütüphanesini kullanarak 10 ve 11. pinleri "Sanal Bluetooth Portu" yapacağız. Böylece hem kod yükleyebilir hem de Bluetooth kullanabiliriz.

3. Bağlantı Tablosu

Bluetooth Modülü (HC-05/06)
  • VCC ➔ Arduino 5V
  • GND ➔ Arduino GND
  • TXD ➔ Arduino Pin 10 (Sanal RX)
  • RXD ➔ Arduino Pin 11 (Sanal TX)
Kontrol Edilecek LED
  • Uzun Bacak (+) ➔ Pin 13 (Direnç ile)
  • Kısa Bacak (-) ➔ GND

4. Telefondan Hazırlık

Arduino'yu kontrol etmek için bir terminal uygulamasına ihtiyacınız var.

  1. Play Store / App Store'dan "Serial Bluetooth Terminal" (veya benzeri) bir uygulama indirin.
  2. Telefonunuzun Bluetooth'unu açın.
  3. Cihazları taratın ve HC-05 veya HC-06'yı seçin.
  4. Şifre sorarsa: Genellikle 1234 veya 0000'dır.

5. Yazılım (LED Kontrolü)

Bu kodda telefondan "1" gönderince LED yanacak, "0" gönderince sönecek.

Bluetooth_LED.ino C++
#include <SoftwareSerial.h>

// Sanal Seri Port Oluştur (RX, TX)
// Arduino'nun 10 numarası RX (Alıcı), 11 numarası TX (Verici) oldu.
SoftwareSerial btSerial(10, 11); 

const int ledPin = 13; 
char gelenVeri; // Telefondan gelen harfi saklamak için

void setup() {
  pinMode(ledPin, OUTPUT);
  
  // Bilgisayar ile haberleşme
  Serial.begin(9600);
  
  // Bluetooth ile haberleşme
  btSerial.begin(9600); 
  
  Serial.println("Bluetooth Hazir! 1 veya 0 gonderin.");
}

void loop() {
  // 1. Bluetooth'tan veri gelmiş mi?
  if (btSerial.available()) {
    
    // 2. Veriyi oku
    gelenVeri = btSerial.read();
    
    // Bilgisayar ekranına da yaz (Debug için)
    Serial.print("Gelen Komut: ");
    Serial.println(gelenVeri);

    // 3. Karar Ver
    if (gelenVeri == '1') {
      digitalWrite(ledPin, HIGH); // Işığı Yak
      btSerial.println("LED ACILDI"); // Telefona geri cevap ver
    } 
    else if (gelenVeri == '0') {
      digitalWrite(ledPin, LOW);  // Işığı Söndür
      btSerial.println("LED KAPANDI");
    }
  }
}
        

6. Çalışmıyor mu?

Bluetooth modülünün üzerindeki kırmızı ışık hızlı hızlı yanıp sönüyorsa "eşleşme bekliyor" demektir. Sabit yanıyorsa veya yavaş yanıyorsa "bağlı" demektir. Şifreyi 1234 olarak denediğinizden emin olun.

En büyük hata TX ve RX'i ters bağlamaktır. Arduino'nun TX'i Bluetooth'un RX'ine gitmeli. Kabloları değiştirip deneyin.