HC05 Bağlantı Kopma Sorunu

Bluetooth ile kontrol edilen araba yaptım ama bluetooth bağlantısı arada kopuyor ve en son hangi komuttaysa öyle devam ediyor. Bağlantının kopmaması için ne yapabilirim veya bağlantısı koptuğunda motorları nasıl durdurabilirim?

#include <SoftwareSerial.h>
SoftwareSerial bt(2,3);

void setup(){
  Serial.begin(9600);
  bt.begin(9600);
  pinMode(7,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
}

void loop(){
  if(bt.available());{
    char data=bt.read();
    analogWrite(9,150);
    analogWrite(10,150);
    if(data=='F'){
      digitalWrite(7,HIGH);
      digitalWrite(6,LOW);
      digitalWrite(5,LOW);
      digitalWrite(4,HIGH);
    }
    if(data=='B'){
      digitalWrite(7,LOW);
      digitalWrite(6,HIGH);
      digitalWrite(5,HIGH);
      digitalWrite(4,LOW);
    }
    if(data=='L'){
      digitalWrite(7,LOW);
      digitalWrite(6,LOW);
      digitalWrite(5,LOW);
      digitalWrite(4,HIGH);
    }
    if(data=='R'){
      digitalWrite(7,HIGH);
      digitalWrite(6,LOW);
      digitalWrite(5,LOW);
      digitalWrite(4,LOW);
    }
    if(data=='S'){
      digitalWrite(7,LOW);
      digitalWrite(6,LOW);
      digitalWrite(5,LOW);
      digitalWrite(4,LOW);
    }
  }
}


sarı kablo-bluetooth rx
siyah kablo-arduino yazılımsal tx
mor kablo-gnd

Bir videoda adam direnç bölücü ile kullanın demişti bende öyle kullanıyom acaba bunla bi alakası olabilirmi?

Merhaba,
Kodunuzun void loop kısmının başına bu kodu ekleyin;

if(digitalRead(BTState)==LOW) { state='S'; }

Evet HC-05 i dirençle kullanmanızı öneririm ancak breadborda değilde lehimlesen çok daha iyi olur çünkü jumper kablolar ve breadbordlar temassızlık yapabiliyor. Kolay gelsin. :slightly_smiling_face:

1 Beğeni

Teşekkürler ama kodu yazdığımda hata veriyor. Sanırım verdiğiniz kodu kendi koduma uyarlamam lazım ama bu işlerde biraz yeniyim :slight_smile:

Arduino:1.8.14 Hourly Build 2020/12/15 11:33 (Windows 10), Kart:“Arduino Uno”

C:\Users\yetok\Desktop\Araba\Araba.ino: In function ‘void loop()’:

Araba:16:18: error: ‘BTState’ was not declared in this scope

if(digitalRead(BTState)==LOW) { state=‘S’; }

              ^~~~~~~

Araba:16:35: error: ‘state’ was not declared in this scope

if(digitalRead(BTState)==LOW) { state=‘S’; }

                               ^~~~~

C:\Users\yetok\Desktop\Araba\Araba.ino:16:35: note: suggested alternative: ‘static’

if(digitalRead(BTState)==LOW) { state=‘S’; }

                               ^~~~~

                               static

exit status 1

‘BTState’ was not declared in this scope

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

Şurdaki kaynaktaki kodları ve şemayı kullanmanı öneririm daha stabil çalışıyor ve kod yorumlarını okursan bağlantı durduğunda motorları durdur komutunu etkinleştirmeyi de anlatıyor. Kolay gelsin :smiley:

1 Beğeni

Verdiğiniz kodları uyguladım ve dediğiniz koduda uyguladım ama işe yaramadı veya ben beceremedim ama neden bağlantının koptugunu anladım. Pek emin değilim ama sanırım motorlar zorlandığında bluetooth modülüne güç yetmiyor. Bunu çözmek için kullanabilecegim bir şey var mı?

Daha güçlü bir pil bağlayabilirsiniz ya da tüm motorları çıkarın bir motor tek kalsın güç daha az harcayacaktır ve bi bak hala gecikme var mı diye eğer gecikme kesildiyse daha güçlü biir pil bağlayabilirsiniz. :slightly_smiling_face:

Gecikme yok, uzaklık sensörünün kodları gecikmeye neden oluyor, onun kodlarını kullanmadığım zaman güzel bir şekilde çalışıyor. Ani güç azalmalarını önlemek icin bir devre elemanı falan var mı? Yoksa dediğiniz gibi daha güçlü bir pil kullanmam gerek :slight_smile:

Ani güç çekimlerinde normalde kondansatör kullanılır ancak sizin sorununuzun bu olduğunu pekte zanetmiyorum ve kondansatörün sizin sorununuzu da çözeceğini zanetmiyorum. Ani güç çekimlerinde daha güçlü bir pil kullanmak daha mantıklı.

1 Beğeni