Çözüldü Arduino kodundaki hata nasıl çözülür?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

HDDKullanıyorum

Hectopat
Katılım
7 Şubat 2021
Mesajlar
828
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhaba, Arduino üzerinde Bluetooth kontrollü ve hcsr04 ile mesafe ölçen bir araç geliştiriyorum ancak kodda hata alıyorum hatanın sebebi nedir?
Hata: 'mesafe_olcumu' was not declared in this scope.

Kod:
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı
 const int motorA1 = 5; // L298N'in IN3 Girişi.
 const int motorA2 = 7; // L298N'in IN1 Girişi.
 const int motorB1 = 6; // L298N'in IN2 Girişi.
 const int motorB2 = 4; // L298N'in IN4 Girişi.
 const int trigpin = 8;
 const int echopin = 9;

 int i=0;
 int j=0;
 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(motorA1, OUTPUT);
 pinMode(motorA2, OUTPUT);
 pinMode(motorB1, OUTPUT);
 pinMode(motorB2, OUTPUT);

 Serial.begin(9600);
}

void loop() {
 int mesafe = mesafe_olcumu ();

int mesafe_olcumu();
Serial.println(mesafe);

}
{
 long sure,mesafe;
 digitalWrite(trigpin,LOW);
 delayMicroseconds(2);
 digitalWrite(trigpin,HIGH);
 delayMicroseconds(10);
 digitalWrite(trigpin,LOW);
 sure=pulseIn(echopin,HIGH);
 mesafe=sure/29.1/2;
 delay(50);
 return(mesafe);
 if(digitalRead(BTState)==LOW) { state='S'; }

 //Gelen veriyi 'state' değişkenine kaydet.
 if(Serial.available() > 0){
 state = Serial.read();
 }

 /* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/
 if (state == '0'){
 vSpeed=0;}
 else if (state == '1'){
 vSpeed=100;}
 else if (state == '2'){
 vSpeed=180;}
 else if (state == '3'){
 vSpeed=200;}
 else if (state == '4'){
 vSpeed=255;}

 /***********************İleri****************************/
 //Gelen veri 'F' ise araba ileri gider.
 if (state == 'L') {
 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, 100); analogWrite(motorB2, 0);
 }
 /**********************İleri Sağ************************/
 //Gelen veri 'I' ise araba ileri sağ(çapraz) gider.
 else if (state == 'I') {
 analogWrite(motorA1, 100); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 }
 /***********************Geri****************************/
 //Gelen veri 'B' ise araba geri gider.
 else if (state == 'I') {
 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 == 'F') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 }
 /***************************Sağ*****************************/
 //Gelen veri 'R' ise araba sağa gider.
 else if (state == 'B') {
 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);
 }
}
 
Çözüm
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;

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(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
Serial.begin(9600);
}

void loop() {
int mesafe = mesafe_olcumu();
Serial.println(mesafe);

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

if (state == '0') {
vSpeed = 0;
} else if (state == '1') {
vSpeed = 100;
} else if (state == '2') {
vSpeed = 180;
} else if (state == '3') {
vSpeed = 200;
} else if (state == '4') {
vSpeed = 255;
}

if (state == 'L') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
} else if (state == 'G') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, 100); analogWrite(motorB2, 0);
} else if (state == 'I') {
analogWrite(motorA1, 100); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
} else if (state == 'B') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
} else if (state == 'H') {
analogWrite(motorA1, 0); analogWrite(motorA2, 100);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
} else if (state == 'J') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, 100);
} else if (state == 'F') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
} else if (state == 'R') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
} else if (state == 'S') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
}
}

int mesafe_olcumu() {
long sure, mesafe;
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
sure = pulseIn(echopin, HIGH);
mesafe = sure / 29.1 / 2;
delay(50);
return mesafe;
}

Hatanın gitmiş olması lazım.
Hocam aslında ilk paylaştığınız kodda hata yoktu ben bu koda aracı durdurma ve geri gelmesini sağlamak için olan bloğu ekleyince hata oluştu benim paylaştığım kodda en alt kısım.
Yeni kod çalıştı mı?
 
Evet mesafe verisi okunuyor.

@BY.Master aracı durdurmak ve 500ms boyunca geri almak için nasıl bir kod eklemeliyim?

Hocam kusura bakma yeni gördüm.

else if (state == 'X') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
delay(500); // Araç durduktan sonra 500 ms bekleyin
analogWrite(motorA1, 0); analogWrite(motorA2, 255);
analogWrite(motorB1, 0); analogWrite(motorB2, 255); // Geriye doğru hareket
delay(500); // 500 ms boyunca geri hareket
}

Doğru diye umuyorum.
 
Hocam kusura bakma yeni gördüm.

Else if (state == 'X') {
Analogwrite(motora1, 0); analogwrite(motora2, 0);
Analogwrite(motorb1, 0); analogwrite(motorb2, 0);
Delay(500); // araç durduktan sonra 500 ms bekleyin.
Analogwrite(motora1, 0); analogwrite(motora2, 255);
Analogwrite(motorb1, 0); analogwrite(motorb2, 255); // geriye doğru hareket.
Delay(500); // 500 ms boyunca geri hareket.
}

Doğru diye umuyorum.

Kodu alttaki hale getirdim ancak if (mesafe<=25); satırında hata alıyorum yanlış yazım nerede.
Hata: Expected unqualified-ID before 'if'.

Kod:
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı.
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;

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(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
Serial.begin(9600);
}

void loop() {
int mesafe = mesafe_olcumu();
Serial.println(mesafe);

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

if (state == '0') {
vSpeed = 0;
} else if (state == '1') {
vSpeed = 100;
} else if (state == '2') {
vSpeed = 180;
} else if (state == '3') {
vSpeed = 200;
} else if (state == '4') {
vSpeed = 255;
}

if (state == 'L') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
} else if (state == 'G') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, 100); analogWrite(motorB2, 0);
} else if (state == 'I') {
analogWrite(motorA1, 100); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
} else if (state == 'B') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
} else if (state == 'H') {
analogWrite(motorA1, 0); analogWrite(motorA2, 100);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
} else if (state == 'J') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, 100);
} else if (state == 'F') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
} else if (state == 'R') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
} else if (state == 'S') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
}
}

int mesafe_olcumu() {
long sure, mesafe;
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
sure = pulseIn(echopin, HIGH);
mesafe = sure / 29.1 / 2;
delay(50);
return mesafe;
}
if (mesafe<=25);
else if (state == 's') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
delay(500); // Araç durduktan sonra 500 ms bekleyin.
analogWrite(motorA1, 0); analogWrite(motorA2, 255);
analogWrite(motorB1, 0); analogWrite(motorB2, 255); // Geriye doğru hareket.
delay(500); // 500 ms boyunca geri hareket.
}
 
Hocam if ifadesini loop içine atmayı unutmuşsun.

Kod:
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı.
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;

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(motorA1, OUTPUT);
  pinMode(motorA2, OUTPUT);
  pinMode(motorB1, OUTPUT);
  pinMode(motorB2, OUTPUT);
  pinMode(trigpin, OUTPUT);
  pinMode(echopin, INPUT);
  Serial.begin(9600);
}

int mesafe_olcumu() {
  long sure, mesafe;
  digitalWrite(trigpin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin, LOW);
  sure = pulseIn(echopin, HIGH);
  mesafe = sure / 29.1 / 2;
  delay(50);
  return mesafe;
}

void loop() {
  int mesafe = mesafe_olcumu();
  Serial.println(mesafe);

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

  if (state == '0') {
    vSpeed = 0;
  } else if (state == '1') {
    vSpeed = 100;
  } else if (state == '2') {
    vSpeed = 180;
  } else if (state == '3') {
    vSpeed = 200;
  } else if (state == '4') {
    vSpeed = 255;
  }

  if (state == 'L') {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
  } else if (state == 'G') {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
    analogWrite(motorB1, 100); analogWrite(motorB2, 0);
  } else if (state == 'I') {
    analogWrite(motorA1, 100); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
  } else if (state == 'B') {
    analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
    analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
  } else if (state == 'H') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 100);
    analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
  } else if (state == 'J') {
    analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
    analogWrite(motorB1, 0); analogWrite(motorB2, 100);
  } else if (state == 'F') {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
  } else if (state == 'R') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
  } else if (state == 'S') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
  }

  if (mesafe <= 25 && state == 's') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    delay(500); // Araç durduktan sonra 500 ms bekleyin.
    analogWrite(motorA1, 0); analogWrite(motorA2, 255);
    analogWrite(motorB1, 0); analogWrite(motorB2, 255); // Geriye doğru hareket.
    delay(500); // 500 ms boyunca geri hareket.
  }
}

Bunu dener misin?
 
Hocam if ifadesini loop içine atmayı unutmuşsun.

Kod:
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı.
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;

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(motorA1, OUTPUT);
 pinMode(motorA2, OUTPUT);
 pinMode(motorB1, OUTPUT);
 pinMode(motorB2, OUTPUT);
 pinMode(trigpin, OUTPUT);
 pinMode(echopin, INPUT);
 Serial.begin(9600);
}

int mesafe_olcumu() {
 long sure, mesafe;
 digitalWrite(trigpin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigpin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigpin, LOW);
 sure = pulseIn(echopin, HIGH);
 mesafe = sure / 29.1 / 2;
 delay(50);
 return mesafe;
}

void loop() {
 int mesafe = mesafe_olcumu();
 Serial.println(mesafe);

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

 if (state == '0') {
 vSpeed = 0;
 } else if (state == '1') {
 vSpeed = 100;
 } else if (state == '2') {
 vSpeed = 180;
 } else if (state == '3') {
 vSpeed = 200;
 } else if (state == '4') {
 vSpeed = 255;
 }

 if (state == 'L') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 } else if (state == 'G') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
 analogWrite(motorB1, 100); analogWrite(motorB2, 0);
 } else if (state == 'I') {
 analogWrite(motorA1, 100); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 } else if (state == 'B') {
 analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
 analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
 } else if (state == 'H') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 100);
 analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
 } else if (state == 'J') {
 analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
 analogWrite(motorB1, 0); analogWrite(motorB2, 100);
 } else if (state == 'F') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 } else if (state == 'R') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
 } else if (state == 'S') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 0);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 }

 if (mesafe <= 25 && state == 's') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 0);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 delay(500); // Araç durduktan sonra 500 ms bekleyin.
 analogWrite(motorA1, 0); analogWrite(motorA2, 255);
 analogWrite(motorB1, 0); analogWrite(motorB2, 255); // Geriye doğru hareket.
 delay(500); // 500 ms boyunca geri hareket.
 }
}

Bunu dener misin?

Araç gecikmeli hareket ediyor uygulamadan butona tıklamama rağmen araç 1-2 saniye geç hareket etmekte.
 
Hocam kodda delay gecikmeye sebep olabilir bunu millis ile değiştirmek lazım.

Kod:
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı.
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;

int state; //Bluetooth cihazından gelecek sinyalin değişkeni.
int vSpeed = 255; // Standart Hız, 0-255 arası bir değer alabilir.
unsigned long previousMillis = 0;
const long interval = 500; // 500 ms'lik bir interval ayarlayın

void setup() {
  pinMode(motorA1, OUTPUT);
  pinMode(motorA2, OUTPUT);
  pinMode(motorB1, OUTPUT);
  pinMode(motorB2, OUTPUT);
  pinMode(trigpin, OUTPUT);
  pinMode(echopin, INPUT);
  Serial.begin(9600);
}

int mesafe_olcumu() {
  long sure, mesafe;
  digitalWrite(trigpin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin, LOW);
  sure = pulseIn(echopin, HIGH);
  mesafe = sure / 29.1 / 2;
  delay(50);
  return mesafe;
}

void loop() {
  unsigned long currentMillis = millis(); // Geçen zamanı alın
  int mesafe = mesafe_olcumu();
  Serial.println(mesafe);

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

  if (state == '0') {
    vSpeed = 0;
  } else if (state == '1') {
    vSpeed = 100;
  } else if (state == '2') {
    vSpeed = 180;
  } else if (state == '3') {
    vSpeed = 200;
  } else if (state == '4') {
    vSpeed = 255;
  }

  if (state == 'L') {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
  } else if (state == 'G') {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
    analogWrite(motorB1, 100); analogWrite(motorB2, 0);
  } else if (state == 'I') {
    analogWrite(motorA1, 100); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
  } else if (state == 'B') {
    analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
    analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
  } else if (state == 'H') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 100);
    analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
  } else if (state == 'J') {
    analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
    analogWrite(motorB1, 0); analogWrite(motorB2, 100);
  } else if (state == 'F') {
    analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
  } else if (state == 'R') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
  } else if (state == 'S') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
  }

  if (mesafe <= 25 && state == 's') {
    analogWrite(motorA1, 0); analogWrite(motorA2, 0);
    analogWrite(motorB1, 0); analogWrite(motorB2, 0);
    if (currentMillis - previousMillis >= interval) {
      previousMillis = currentMillis; // previousMillis'i güncelleyin
      analogWrite(motorA1, 0); analogWrite(motorA2, 255);
      analogWrite(motorB1, 0); analogWrite(motorB2, 255); // Geriye doğru hareket.
    }
  }
}
 
Hocam kodda delay gecikmeye sebep olabilir bunu millis ile değiştirmek lazım.

Kod:
//Bluetooth kontrollü hcsr04 sensörlü araç projesi.

//L298N Bağlantısı.
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;

int state; //Bluetooth cihazından gelecek sinyalin değişkeni.
int vSpeed = 255; // Standart Hız, 0-255 arası bir değer alabilir.
unsigned long previousMillis = 0;
const long interval = 500; // 500 ms'lik bir interval ayarlayın.

void setup() {
 pinMode(motorA1, OUTPUT);
 pinMode(motorA2, OUTPUT);
 pinMode(motorB1, OUTPUT);
 pinMode(motorB2, OUTPUT);
 pinMode(trigpin, OUTPUT);
 pinMode(echopin, INPUT);
 Serial.begin(9600);
}

int mesafe_olcumu() {
 long sure, mesafe;
 digitalWrite(trigpin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigpin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigpin, LOW);
 sure = pulseIn(echopin, HIGH);
 mesafe = sure / 29.1 / 2;
 delay(50);
 return mesafe;
}

void loop() {
 unsigned long currentMillis = millis(); // Geçen zamanı alın.
 int mesafe = mesafe_olcumu();
 Serial.println(mesafe);

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

 if (state == '0') {
 vSpeed = 0;
 } else if (state == '1') {
 vSpeed = 100;
 } else if (state == '2') {
 vSpeed = 180;
 } else if (state == '3') {
 vSpeed = 200;
 } else if (state == '4') {
 vSpeed = 255;
 }

 if (state == 'L') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 } else if (state == 'G') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
 analogWrite(motorB1, 100); analogWrite(motorB2, 0);
 } else if (state == 'I') {
 analogWrite(motorA1, 100); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 } else if (state == 'B') {
 analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
 analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
 } else if (state == 'H') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 100);
 analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
 } else if (state == 'J') {
 analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
 analogWrite(motorB1, 0); analogWrite(motorB2, 100);
 } else if (state == 'F') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 } else if (state == 'R') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
 } else if (state == 'S') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 0);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 }

 if (mesafe <= 25 && state == 's') {
 analogWrite(motorA1, 0); analogWrite(motorA2, 0);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 if (currentMillis - previousMillis >= interval) {
 previousMillis = currentMillis; // previousMillis'i güncelleyin.
 analogWrite(motorA1, 0); analogWrite(motorA2, 255);
 analogWrite(motorB1, 0); analogWrite(motorB2, 255); // Geriye doğru hareket.
 }
 }
}

Kusura bakmayın hocam cevap için geciktim bu sürede araç için farklı kodlar denedim burada gecikmeli hareket sorunu verdiğimiz delay veya milis değerinden kaynaklanmıyor buna eminim ancak tam olarak sorunu tespit edemedim.
 

Geri
Yukarı