Arduino kodunda hata nedir?

HDDKullanıyorum

Hectopat
Katılım
7 Şubat 2021
Mesajlar
829
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhaba forum üyeleri 4WD bir araç projesi geliştiriyorum. Ancak kodlarımdaki hatalar yüzünden derleyici kabul etmiyor. Sizden ricam bu kod parçasındaki hataları düzenleyerek tekrar benimle paylaşmanız.

C++:
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.

 //HC SR04 PİN ATAMALARI.
 const int echopin=11;
 const int trigpin=12;

 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() {
 // Pinlerimizi belirleyelim.
 pinMode(52, OUTPUT);
 pinMode(motorA1, OUTPUT);
 pinMode(motorA2, OUTPUT);
 pinMode(motorB1, OUTPUT);
 pinMode(motorB2, OUTPUT);
 pinMode(echopin, INPUT);
 pinMode(trigpin, OUTPUT);
 // 9600 baud hızında bir seri port açalım.
 Serial.begin(9600);
}

void loop(){
int mesafe=mesafe_olcumu();
Serial.println(mesafe);
}
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);
}

 {
 else 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ı)*/
 else 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.
 else if (state == 'F') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 digitalWrite(52, HIGH);

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

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

 digitalWrite(52, LOW);

 }
 /***********************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 == 'J') {
 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 == 'H') {
 analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
 analogWrite(motorB1, 0); analogWrite(motorB2, 100);
 }
 /***************************Sol*****************************/
 //Gelen veri 'L' ise araba sola gider.
 else if (state == 'R') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 }
 /***************************Sağ*****************************/
 //Gelen veri 'R' ise araba sağa gider.
 else if (state == 'L') {
 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);
 }
}
 
Hangi Arduino modelini kullanıyorsunuz?

Aldığınız hata mesajını da yazarsanız güzel olur.

Mega 2560 kod derlemede hata veriyor yüklemede değil hata mesajı ise.

Arduino:1.8.19 (Windows 10), kart:"Arduino mega or mega 2560, atmega2560 (mega 2560)"

Araba_deneme_1:51:2: Error: Expected unqualified-ID before '{' token.

{

^

Araba_deneme_1:56:4: Error: Expected unqualified-ID before 'if'.

if(Serial.available() > 0)

^~

Araba_deneme_1:57:32: Error: Expected declaration before '}' token.

State = Serial.read(); }

^

Exit status 1

Expected unqualified-ID before '{' token.

This report would have more information with.
"Show verbose output during compilation"
Option enabled in file -> preferences.
 
Açtıktan sonra kapattım hata verdi sadece kapatmayı denedim bu sefer de alttaki satırda hata buldu garip bir durum diğerlerinede bakarsanız sevinirim.

Hata altta değil hocam hata mesajını okursanız kırmızı olan satırdan önceki satırda olduğunu söylüyor, şu an bilgisayara geçiyorum telefonda zor oluyor.
 
Burada küme parantezini kapatmışsınız ama başta açmamışsınız.

Diğerlerine de bakıyorum.

'{' İşaretini koyunca bu hatayı aldım

Arduino:1.8.19 (Windows 10), kart:"Arduino mega or mega 2560, atmega2560 (mega 2560)"

Araba_deneme_1:51:2: Error: Expected unqualified-ID before '{' token.

{

^

Araba_deneme_1:54:1: Error: Expected unqualified-ID before '{' token.

{

^

Araba_deneme_1:61:3: Error: Expected unqualified-ID before 'else'.

Else if (state == '0'){

^~~~

Araba_deneme_1:63:5: Error: Expected unqualified-ID before 'else'.

Else if (state == '1'){

^~~~

Araba_deneme_1:65:5: Error: Expected unqualified-ID before 'else'.

Else if (state == '2'){

^~~~

Araba_deneme_1:67:5: Error: Expected unqualified-ID before 'else'.

Else if (state == '3'){

^~~~

Araba_deneme_1:69:5: Error: Expected unqualified-ID before 'else'.

Else if (state == '4'){

^~~~

Araba_deneme_1:75:2: Error: Expected unqualified-ID before 'else'.

Else if (state == 'F') {

^~~~

Araba_deneme_1:84:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'ı') {

^~~~

Araba_deneme_1:93:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'g') {

^~~~

Araba_deneme_1:103:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'b') {

^~~~

Araba_deneme_1:109:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'j') {

^~~~

Araba_deneme_1:115:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'h') {

^~~~

Araba_deneme_1:121:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'r') {

^~~~

Araba_deneme_1:127:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 'l') {

^~~~

Araba_deneme_1:134:5: Error: Expected unqualified-ID before 'else'.

Else if (state == 's'){

^~~~

Araba_deneme_1:138:1: Error: Expected declaration before '}' token.

}

^

Exit status 1

Expected unqualified-ID before '{' token.

This report would have more information with.
"Show verbose output during compilation"
Option enabled in file -> preferences.

Hata altta değil hocam hata mesajını okursanız kırmızı olan satırdan önceki satırda olduğunu söylüyor, şu an bilgisayara geçiyorum telefonda zor oluyor.

Pardon hocam bir üstteki kod bloğundan bahsettiğinizi sandım bakınca hatayı düzelttim ancak bu sefer tekrar hata aldım.
 
Hocam, kodda fazla hata var. Kimi yerde değişken kullandığınız bir yerde değişkeni alta tanımlamışsınız bu yanlış değişken kullanılacağı yerin üstüne tanımlanır. Hataların çoğu parantez hatası mesela bir hata yüzünden loop içi tamamen boştu şu an düzeltmeye başladım ama uzun sürecek gibi.
 
Hocam, kodda fazla hata var. Kimi yerde değişken kullandığınız bir yerde değişkeni alta tanımlamışsınız bu yanlış değişken kullanılacağı yerin üstüne tanımlanır. Hataların çoğu parantez hatası mesela bir hata yüzünden loop içi tamamen boştu şu an düzeltmeye başladım ama uzun sürecek gibi.

Koda hc SR04 ile ilgili loop bölümünü eklemeden önce sağlamca çalışıyordu her şey oradaki eklemeden sonra bozuldu en çok sorun orada bulunuyordur sanırım.
 
C++:
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.

//HC SR04 PİN ATAMALARI.
const int echopin = 11;
const int trigpin = 12;

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.
int BTState;
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 setup() {
 // Pinlerimizi belirleyelim.
 pinMode(52, OUTPUT);
 pinMode(motorA1, OUTPUT);
 pinMode(motorA2, OUTPUT);
 pinMode(motorB1, OUTPUT);
 pinMode(motorB2, OUTPUT);
 pinMode(echopin, INPUT);
 pinMode(trigpin, OUTPUT);
 // 9600 baud hızında bir seri port açalım.
 Serial.begin(9600);
}

void loop() {

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

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

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

 /* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/
 else 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.
 else if (state == 'F') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
 analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
 digitalWrite(52, HIGH);

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

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

 digitalWrite(52, LOW);

 }
 /***********************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 == 'J') {
 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 == 'H') {
 analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
 analogWrite(motorB1, 0); analogWrite(motorB2, 100);
 }
 /***************************Sol*****************************/
 //Gelen veri 'L' ise araba sola gider.
 else if (state == 'R') {
 analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
 analogWrite(motorB1, 0); analogWrite(motorB2, 0);
 }
 /***************************Sağ*****************************/
 //Gelen veri 'R' ise araba sağa gider.
 else if (state == 'L') {
 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);
 }
}

Bu kodda hata yok, atanmayan değişkenleri atadım koda bakarak falan ama bir bakın çalışıyor mu? Eksik olabilir kodda fazla parantez hatası vardı.

Ayrıca gözüme şöyle bir hata çarptı ama düzeltmedim hata olduğundan emin olamadım.

C++:
/**********************İleri Sol************************/
 //Gelen veri 'G' ise araba ileri sol(çapraz) gider.
 else if (state == 'I') {
 analogWrite(motorA1, vSpeed ); analogWrite(motorA2, 0);
 analogWrite(motorB1, 100); analogWrite(motorB2, 0);
 digitalWrite(52, HIGH);

 digitalWrite(52, LOW);
 }

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

G ise böyle yap diyor ama aşağıda g değil ı atanmış.
Aynı şekilde bir altta h deyip j atanmış.
 
Son düzenleme:

Yeni konular

Geri
Yukarı