DERS-8: Arduino BlueTooth Kullanımı (Hc-06):
Arduino BlueTooth Kullanımı (Hc-06):
DERS-8: BlueTooth Kullanımı (Hc-06):
Hc-06 Arduino Bluetooth kartı kablosuz seri haberleşme için kullanılmaktadır. Üzerinde bulunan pinleri kullanarak devre tasarlanır ve kablosuz seri haberleşme sağlanır.
Biz bu uygulamada HC-06 Bluetooth Kartını kullanacağız. Seri haberleşme portundan göndereceğimiz bilgiler ile ledleri yakacağız. Öncelikle telefonumuz kuracağımız Arduino bluetooth controller adlı programdan bahsedelim.
Playstore dan indirebileceğimiz bu program ile Hc-06 kartımıza bağlanıyoruz ve Terminal Mode da çalıştırıyoruz.
Arduino Bluetooth Controller
Bağlantı yaparken ilk olarak şifre istiyecektir. Şifreyi default olarak 1234 yada 0000 şeklinde girebilirsiniz. Şifre girdikten sonra bağlantı sağlayacaksınız. Tabi önce devreyi kurmalısınız. Aşağıda devre şeması yer almaktadır.
DEVRE ŞEMASI
Öncelikle devreyi inceleyelim. Hc-06 nın 4 bacağı mevcut. Bu bacaklardan;
VCC –> +5 Volt
GND —> arduino kartın GND – girişine
TXD –> 7 numaralı pin
RXD –> 6 numaralı pin
takılmıştır. Burada dikkat etmemiz gereken nokta Bluetooth RXD çıkışından direk arduino kart pinine kablo çekmiyoruz. Bluetooth kartın sağlıklı çalışması için +5 V değerini dirençler ile düşürmeliyiz. 2 k ohm ile 1 k ohm luk dirençleri seri bağlayıp 3 de 2lik kısmını arduino kartın 6 numaralı pinine yolluyoruz.(NOT : 2k ohm direnç yerine seri takılmış 2 adet 1 k ohm direnç kullanılmıştır.) Diğer 3 de 1 lik kısmı GND ye bağlanarak toprak hattına gidiyor. Böylelikle 5V değerini yaklaşık 3.4 V ye indirgiyoruz.
Ledlerimizi ile sırası ile 8,9 ve 10 numaralı dijital pinlere takıyoruz. Şimdi gelelim kod kısmına:
KOD YAPISI
#include <SoftwareSerial.h>
SoftwareSerial bt_ogrenme (7,6);
int kirmizi=8;
int sari=9;
int yesil=10;
void setup() {
Serial.begin(9600);
bt_ogrenme.begin(9600);
pinMode (kirmizi,OUTPUT);
pinMode (sari,OUTPUT);
pinMode (yesil,OUTPUT);
}
void loop() {
if (bt_ogrenme.available())
{
char data= bt_ogrenme.read();
Serial.println(data);
if (data=='k'){
Serial.println("kırmızıya basıldı...");
digitalWrite (8,HIGH);
digitalWrite (9,LOW);
digitalWrite (10,LOW);
}
if (data=='s'){
Serial.println("sarıya basıldı...");
digitalWrite (kirmizi,LOW);
digitalWrite (sari,HIGH);
digitalWrite (yesil,LOW);
}
if (data=='y'){
Serial.println("yeşile basıldı...");
digitalWrite (kirmizi,LOW);
digitalWrite (sari,LOW);
digitalWrite (yesil,HIGH);
}
}
}
Öncelikle #include <SoftwareSerial.h> komutu ile bu modülü programımıza dahil ediyoruz. Bunun neden 7 ve 6 numaralı pinleri kablosuz veri alış verişi için kullanacağız. SoftwareSerial bt_ogrenme (7,6); komut satırında bt_ogrenme isimli bir sanal seri iletişim kuruyoruz. TX ve RX değerleri için 7 ve 6 numaralı pinleri gösteriyoruz.
Void setup bölümünde
Serial.begin(9600);
bt_ogrenme.begin(9600);
seri girişleri başlatıyoruz. bt_ogrenme den serial a veri aktarımı yapacağız. Göndereceğimiz k, s, y karekterleri ile ilgili ledleri yakmaya çalışacağız.
Void loop kısmında ise
char data= bt_ogrenme.read();
Serial.println(data);
data isimli değişkene telefonumuzdaki programa girdiğimiz karekter atanmaktadır. Bu değişken char olarak tanımlanmıştır. Bu data değişkeni ise hemen ardından arduino programımızdaki seri port ekranında görülecektir.
Alt satırlarda ise if koşullarının içerisine data değişkenin k, y, s harflerinin atanması durumunda hangi lendin yanacağı belirtilmiştir.