Bluetooth Kontrollü Araba
Proje Amacı
Telefondaki bir Bluetooth uygulamasından gelen tek karakterlik komutlarla (F/B/L/R/S) 2 tekerlekli bir robotu yönlendirir — HC-05'in 3.3V mantık seviyesi burada gerçek bir tuzak barındırır (bkz. Çalışma Açıklaması).
Gerekli Malzemeler
- Arduino Uno
- HC-05 Bluetooth Modülü
- L298N Motor Sürücü Kartı
- 2x DC Motor + Tekerlek
- Kaide/Şasi
- Pil Paketi
Gerekli Kütüphaneler
Gerekli ek kütüphane yok, SoftwareSerial Arduino IDE ile birlikte gelir.
Pin Bağlantıları
| Bileşen Pini | Bağlantı |
|---|---|
| HC-05 VCC | 5V |
| HC-05 GND | GND |
| HC-05 TXD | D10 (RX) |
| HC-05 RXD | D11 (TX, 1kΩ-2kΩ direnç bölücüyle) |
| L298N IN1 | D5 |
| L298N IN2 | D6 |
| L298N IN3 | D7 |
| L298N IN4 | D8 |
| L298N GND | GND |
Devre Şeması
Arduino Kodu
| 1 | #include <SoftwareSerial.h> |
| 2 | SoftwareSerial BT(10, 11); |
| 3 | const int IN1=5, IN2=6, IN3=7, IN4=8; |
| 4 | |
| 5 | void setup() { |
| 6 | pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); |
| 7 | pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); |
| 8 | BT.begin(9600); |
| 9 | } |
| 10 | |
| 11 | void dur(){ digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW); } |
| 12 | void ileri(){ digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW); } |
| 13 | void geri(){ digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH); } |
| 14 | void sag(){ digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH); } |
| 15 | void sol(){ digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW); } |
| 16 | |
| 17 | void loop() { |
| 18 | if (BT.available()) { |
| 19 | char c = BT.read(); |
| 20 | if (c=='F') ileri(); |
| 21 | else if (c=='B') geri(); |
| 22 | else if (c=='R') sag(); |
| 23 | else if (c=='L') sol(); |
| 24 | else if (c=='S') dur(); |
| 25 | } |
| 26 | } |
Çalışma Açıklaması
HC-05 RXD pini 3.3V mantık seviyesinde çalışır; Arduino'nun 5V TX çıkışı doğrudan bağlanırsa modül zamanla zarar görebilir, direnç bölücü (1kΩ-2kΩ) kullanılmalı. Motorlar için ayrı pil kaynağı kullanılmalı, Arduino'nun 5V'undan beslenmemeli.
Test Bilgisi
HC-05'i telefonunuzla eşleştirin (varsayılan şifre genelde 1234/0000). Bir Bluetooth kontrol uygulaması indirip F/B/L/R/S karakterlerini gönderin; aracın buna göre hareket ettiğini gözlemleyin.
Olası Sorunlar ve Çözümleri
Bluetooth eşleşmiyorsa: HC-05'in varsayılan şifresini (1234 veya 0000) doğru girdiğinizden emin olun, modülün LED'inin yanıp söndüğünü (eşleşme bekleme modu) kontrol edin. Komutlar gecikmeli/tutarsız çalışıyorsa: SoftwareSerial baud hızının hem kodda hem HC-05'in kendi ayarında aynı (genelde 9600) olduğunu doğrulayın. Araç sadece bir yöne dönüyorsa: L298N IN pinlerinden birinin yanlış bağlandığını kontrol edin. Arduino motorlar çalışırken kendiliğinden resetleniyorsa: motorlar ve Arduino aynı pil paketini paylaşıyor demektir, motor kalkış anındaki ani akım çekişi gerilimi düşürüp Arduino'yu resetler — bu L298N projelerinde HC-05'in 'rastgele' kopması olarak yanlış teşhis edilen, aslında saf güç dağıtım sorunudur; motorlara ayrı pil, Arduino'ya ayrı besleme (ortak GND ile) çözer.
Alternatif Çözümler
HC-05 yerine HC-06 (sadece slave modu, daha basit) veya ESP32'nin dahili Bluetooth'u kullanılabilir. Telefon uygulaması yerine fiziksel bir joystick/uzaktan kumanda ile kontrol edilebilir. L298N yerine daha kompakt TB6612FNG motor sürücü kullanılarak daha az akım kaybı sağlanabilir.
Benzer Projeler
Çizgi İzleyen Robot
Zemin üzerindeki siyah bir çizgiyi 2 IR sensörle takip ederek otonom hareket eden bir robot yapar; iki sensörün ürettiği 4 olası HIGH/LOW kombinasyonu robotun tüm yön kararlarını belirler.
Engelden Kaçan Robot
Önündeki engelleri ultrasonik sensörle algılayıp geri çekilip yön değiştiren bir robot yapar — kod bilinçli olarak basit tutuldu, servo ile taramalı algılama bir sonraki geliştirme adımı olarak notlarda bırakıldı.
LED Küp (4x4x4 3D Işık Küpü)
64 LED'i 4x4x4 küp şeklinde dizip katman katman kontrol ederek 3 boyutlu ışık animasyonları oluşturur — gerçek 64 LED'lik versiyon Arduino Uno'nun pin sayısını aşar (bkz. Çalışma Açıklaması), bu da projeyi shift register öğrenmek için iyi bir bahaneye çevirir.