HC-06 ve 05 arasındaki bağlantıda gecikme

ovuzcuk

Centipat
Katılım
29 Temmuz 2022
Mesajlar
14
Daha fazla  
Cinsiyet
Erkek
Merhaba, geçtiğimiz günlerde Arduino ile hobi amaçlı telefon kontrollü Bluetooth bir araç yaptım. Sorunsuz çalışıyordu ancak aynı model farklı bir modül kullanarak bir kumanda yaptığımda bağlantı sağlandı fakat komutların gönderilmesinde 1-2 saniye kadar bir gecikme var. Bu gecikme varken kumanda kullanılmaz halde ve sorunu çözmek istiyorum. Yardımcı olabilecek arkadaş var mı?

Araba kodu:

int buzzer = 8; //6. pini buzzer olarak tanımlandı.


//buzzer için melodi kodl
int buzzerPin = 8;
//L298N Bağlantısı
const int motorA1 = 5; // L298N'in IN3 Girişi
const int motorA2 = 6; // L298N'in IN1 Girişi
const int motorB1 = 10; // L298N'in IN2 Girişi
const int motorB2 = 9; // L298N'in IN4 Girişi

int i=0; //Döngüler için atanan rastgele bir değişken
int j=0; //Döngüler için atanan rastgele bir değişken
int state; //Bluetooth cihazından gelecek sinyalin değişkeni
int vSpeed=255; // Standart Hız, 0-255 arası bir değer alabilir

void setup() {


pinMode(buzzer , OUTPUT); //buzzer'i çıkış olarak tanımladık.



// Pinlerimizi belirleyelim
pinMode(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(8, OUTPUT);
// 9600 baud hızında bir seri port açalım
Serial.begin(9600);

// Rastgele hedef renk belirle//

}


void loop() {





if (Serial.available() > 0){
state = Serial.read();
Serial.println(state);
delay(10);
}

/* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/


/***********************İleri****************************/
//Gelen veri 'F' ise araba ileri gider.
if (state == 'F') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);

}
/**********************İleri Sol************************/
//Gelen veri 'G' ise araba ileri sol(çapraz) gider.
else if (state == 'G') {
analogWrite(motorA1,vSpeed ); analogWrite(motorA2, 0);
analogWrite(motorB1, 150); analogWrite(motorB2, 0);

}
/**********************İleri Sağ************************/
//Gelen veri 'I' ise araba ileri sağ(çapraz) gider.
else if (state == 'I') {
analogWrite(motorA1, 150); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);

}
/***********************Geri****************************/
//Gelen veri 'B' ise araba geri gider.
else if (state == 'B') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);

}
/**********************Geri Sol************************/
//Gelen veri 'H' ise araba geri sol(çapraz) gider
else if (state == 'H') {
analogWrite(motorA1, 0); analogWrite(motorA2, 100);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);

}
/**********************Geri Sağ************************/
//Gelen veri 'J' ise araba geri sağ(çapraz) gider
else if (state == 'J') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, 100);

}
/***************************Sol*****************************/
//Gelen veri 'L' ise araba sola gider.
else if (state == 'L') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);

}
/***************************Sağ*****************************/
//Gelen veri 'R' ise araba sağa gider
else if (state == 'R') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);

}

/************************Stop*****************************/
//Gelen veri 'S' ise arabayı durdur.
else if (state == 'S'){
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);

}
else if (state == 'W'){
digitalWrite(3, HIGH);

}
else if (state == 'w'){
digitalWrite(3, LOW);

}
else if (state == 'U'){
digitalWrite(2, HIGH);

}
else if (state == 'u'){
digitalWrite(2, LOW);

}
else if (state == 'V'){

// Kornanın ilk nota dizisi
tone(buzzerPin, 440); // 440 Hz frekansında nota çalınacak (La)
delay(150); // 150 ms boyunca nota çalacak
noTone(buzzerPin); // Nota çalmayı durdurun
delay(50); // 50 ms boyunca sessiz kalacak

// Kornanın ikinci nota dizisi
tone(buzzerPin, 523); // 523 Hz frekansında nota çalınacak (Do)
delay(150); // 150 ms boyunca nota çalacak
noTone(buzzerPin); // Nota çalmayı durdurun
delay(50); // 50 ms boyunca sessiz kalacak

// Kornanın üçüncü nota dizisi
tone(buzzerPin, 659); // 659 Hz frekansında nota çalınacak (Mi)
delay(150); // 150 ms boyunca nota çalacak
noTone(buzzerPin); // Nota çalmayı durdurun
delay(50); // 50 ms boyunca sessiz kalacak

// Kornanın dördüncü nota dizisi
tone(buzzerPin, 784); // 784 Hz frekansında nota çalınacak (Sol)
delay(300); // 300 ms boyunca nota çalacak
noTone(buzzerPin); // Nota çalmayı durdurun
delay(100); // 100 ms boyunca sessiz kalacak


}

}
....................................
alıcı kodu :
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(0, 1); // RX, TX

const int analogPinX = A0; // X ekseninin analog pini
const int analogPinY = A1; // Y ekseninin analog pini
int xValue = 0;
int yValue = 0;

void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
}

void loop() {
xValue = analogRead(analogPinX);
yValue = analogRead(analogPinY);

String direction;

if (xValue < 300 && yValue > 700) {
direction = "S";
} else if (xValue < 300 && yValue < 300) {
direction = "H";
} else if (xValue > 700 && yValue > 700) {
direction = "I";
} else if (xValue > 700 && yValue < 300) {
direction = "J";
} else if (yValue > 700) {
direction = "F";
} else if (yValue < 300) {
direction = "B";
} else if (xValue < 300) {
direction = "L";
} else if (xValue > 700) {
direction = "R";
}

BTSerial.println(direction); // Yön verisini Bluetooth ile gönder
delay(100); // İstenilen güncelleme hızına ayarlayabilirsiniz
}
 
Son düzenleyen: Moderatör:

Technopat Haberler

Yeni konular

Geri
Yukarı