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).
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.
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.
- Play Store / App Store'dan "Serial Bluetooth Terminal" (veya benzeri) bir uygulama indirin.
- Telefonunuzun Bluetooth'unu açın.
- Cihazları taratın ve HC-05 veya HC-06'yı seçin.
- Şifre sorarsa: Genellikle
1234veya0000'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.