Görselde bluetooth modülün RX ve TX pinlerinin SoftwareSerial.h kütüphanesi kullanılarak
8 ve 7 numaralı pinlere bağlanması gösterilmiştir. Modülün TX ucu Arduino’nun RX (8. pin) ucuna, modülün RX ucu Arduino’nun TX (7. pin) ucuna bağlanmalıdır. Ancak modülün TX ucundan
çıkan 3,3 V Arduino RX ucunda lojik 1 olarak kabul edilirken Arduino’nun TX ucundan çıkan 5 V
modülün RX ucuna doğrudan uygulandığında bozulmasına neden olacaktır. Bu nedenle
Arduino’nun TX ucundan çıkan 5 V’u 3,3 V’a düşürmek için gerilim bölücü dirençler
kullanılmalıdır.
Motor sürücüde ENA ve ENB uçlarındaki jumper takılı bırakılarak diğer dört girişten analogWrite
fonksiyonuyla PWM verilmiştir.
Devreye enerji verildiğinde bluetooth modülle haberleşmek için Android telefondan bluetooth
bağlantısı açılarak hc-05 cihazı bulunur. Varsayılan şifre “1234” veya “0000”dır. Android telefondan veri gönderebilmek için play storedan “Arduino bluetooth controller” benzeri uygulamalar
kullanılır (Görsel 3.77) veya MIT app invertor ile akıllı telefon uygulaması yapılır Görselde
Telefondan gönderilen karakterlere göre aracın yönü belirlenir.
#include <SoftwareSerial.h> // Arduino IDE ile gelir. Kurulum gerektirmez. SoftwareSerial bluetooth(8, 7); // RX, TX (Arduino tarafında.) const byte IN1 = 10, IN2 = 9, IN3 = 6, IN4 = 5; // PWM pinleri. (enA ve enB'de jumper takılı). char karakter; int hiz = 255; // Başlangıç hızı. void setup() { bluetooth.begin(9600); } void loop() { if (bluetooth.available()) { // Veri geliyorsa... karakter = bluetooth.read(); // Gelen karakteri karakter değişkenine ata. if (karakter == 'a') { // ileri. analogWrite(IN1, hiz); analogWrite(IN2, 0); analogWrite(IN3, hiz); analogWrite(IN4, 0); } else if (karakter == 'b') { // Geri. analogWrite(IN1, 0); analogWrite(IN2, hiz); analogWrite(IN3, 0); analogWrite(IN4, hiz); } else if (karakter == 'c') { // Sol. analogWrite(IN1, hiz); analogWrite(IN2, 0); analogWrite(IN3, 0); analogWrite(IN4, hiz); } else if (karakter == 'd') { // Sağ. analogWrite(IN1, 0); analogWrite(IN2, hiz); analogWrite(IN3, hiz); analogWrite(IN4, 0); } else { // Yön karakterleri gelmediyse... String veri = bluetooth.readString(); // 0 - 255 arası karşılığı olan gelen karakterleri oku. int hiz = veri.toInt(); // Gelen metni integer veri tipine dönüştür. } } else { // Dur. analogWrite(IN1, 0); analogWrite(IN2, 0); analogWrite(IN3, 0); analogWrite(IN4, 0); } }
No responses yet