Bu projede, Arduino ve HC-06 Bluetooth modülü kullanarak telefonunuz üzerinden LED’leri kontrol edeceğiz. Telefonunuza yükleyeceğiniz bir Bluetooth kontrol uygulaması sayesinde, belirli komutlarla LED’leri açıp kapatabileceksiniz.
Proje İçin Gerekli Malzemeler:
- 1 x Arduino (Uno, Nano, vb.)
- 1 x Breadboard
- 1 x HC-06 Bluetooth Modülü
- 6 x LED
- 6 x 220Ω Direnç
- Jumper Kablolar
Telefon Uygulaması:
Bluetooth seri haberleşmesi yapabileceğiniz ücretsiz uygulamalardan biri olan Serial Bluetooth Terminal veya Bluetooth Electronics gibi uygulamalardan birini indirip kullanabilirsiniz.
Bağlantı Şeması:

- HC-06 Bluetooth Modülü Bağlantısı:
- VCC: 5V
- GND: GND
- TXD: Arduino RX (Pin 0)
- RXD: Arduino TX (Pin 1)
- LED Bağlantıları:
- LED’lerin uzun bacağı direnç üzerinden Arduino pinlerine bağlanacak.
- LED1: Pin 2
- LED2: Pin 3
- LED3: Pin 4
- LED4: Pin 5
- LED5: Pin 6
- LED6: Pin 7
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | //----------------------------------------// //---------------KODKAMPUSU---------------// //---Arduino | Bluetooth ile LED Yakmak---// //----------------------------------------// // Seri haberleşme verileri için kütüphane tanımlıyoruz #include SoftwareSerial bluetooth(0,1); // RX ve TX pinlerini tanımlıyoruz (Bluetooth modülü için gerekli) // Bluetooth üzerinden gelecek olan verileri okumak için btveri değişkenini tanımlıyoruz char btveri; // Ledlerin bağlantılarını pin numaralarına göre tanımlıyoruz int led1 = 2; int led2 = 3; int led3 = 4; int led4 = 5; int led5 = 6; int led6 = 7; void setup() { bluetooth.begin(9600); // Seri haberleşmeyi 9600 baud hızında başlatıyoruz // DİKKAT: Bluetooth modülü ile Arduino aynı hızda haberleşmeli. Çoğu modül için 9600 varsayılan hızdır. // Bağlı olan LED'lerimizin pinlerini çıkış (OUTPUT) olarak ayarlıyoruz pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); } void loop() { // Bluetooth üzerinden veri gelip gelmediğini kontrol ediyoruz while (bluetooth.available() > 0) // Eğer Bluetooth üzerinden veri geldiyse { btveri = bluetooth.read(); // Gelen veriyi okuyup btveri değişkenine kaydediyoruz switch (btveri) // Gelen veriye göre işlem yapıyoruz { case 'a': // Telefon üzerinden 'a' (ac anlamında) verisi geldiyse // Bütün LED'leri yakmak için HIGH sinyali gönderiyoruz digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); digitalWrite(led5, HIGH); digitalWrite(led6, HIGH); break; case 'k': // Telefon üzerinden 'k' (kapat anlamında) verisi geldiyse // Bütün LED'leri kapatmak için LOW sinyali gönderiyoruz digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led5, LOW); digitalWrite(led6, LOW); break; } } } |
Açıklamalar ve Dikkat Edilmesi Gereken Noktalar:
#include <SoftwareSerial.h>
Kütüphanesi:- Arduino’nun donanımsal UART portları (RX ve TX) zaten mevcut. Ancak, birden fazla seri bağlantı gerektiğinde
SoftwareSerial
ile ekstra bir bağlantı portu oluşturabilirsiniz. Ancak bu koddabluetooth(0,1)
ile donanımsal UART kullanıldığı için bu kütüphaneye gerek yok.
- Arduino’nun donanımsal UART portları (RX ve TX) zaten mevcut. Ancak, birden fazla seri bağlantı gerektiğinde
bluetooth.begin(9600)
Ayarı:- Bluetooth modülünün haberleşme hızını belirler. Modülünüzün varsayılan hızını kontrol edin, gerekirse modülün hızını değiştirin veya kodun hızını ayarlayın.
- Pin Bağlantıları:
- LED’lerin doğru şekilde bağlandığından ve uygun dirençler kullanıldığından emin olun (genellikle 220Ω direnç yeterlidir). Aksi takdirde LED’ler zarar görebilir veya parlaklıkları dengesiz olabilir.
- Bluetooth Komutları:
- Kodda
ac
vekapat
yerinea
vek
kullanıldı. Bu, seri haberleşme sisteminde veri karışıklığını önlemek için daha pratik. Ayrıca, komutların uyumluluğunu kontrol etmek için telefon uygulamasında da bu kısa komutları göndermelisiniz.
- Kodda
- RX ve TX Pinleri:
- Donanımsal seri haberleşme (0 ve 1 pinleri) hem Bluetooth hem de USB seri monitör için kullanılır. Bu durum, veri karışıklığına neden olabilir. Eğer USB ile bilgisayar bağlantısı aktifse, Bluetooth bağlantısını
SoftwareSerial
kullanarak farklı pinlere taşıyın (örneğin,bluetooth(10, 11)
).
- Donanımsal seri haberleşme (0 ve 1 pinleri) hem Bluetooth hem de USB seri monitör için kullanılır. Bu durum, veri karışıklığına neden olabilir. Eğer USB ile bilgisayar bağlantısı aktifse, Bluetooth bağlantısını
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz 🙂