Çözüldü Arduino "Exit status 1 Expected '}' at end of input." hatası

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

HD4450

Kilopat
Katılım
2 Nisan 2019
Mesajlar
2.223
Çözümler
6
Kod:
const int trigger_pin = 13;
const int echo_pin = 12;
const int buzzer = 2;
const int mled = 3;
const int yled = 4;
const int sled = 5;
const int kled = 6;

int sure ;
int mesafe ;

void setup() {
 pinMode(kled , OUTPUT);
 pinMode(sled , OUTPUT);
 pinMode(yled , OUTPUT);
 pinMode(mled , OUTPUT);
 pinMode(buzzer , OUTPUT);
 pinMode(trigger_pin , OUTPUT);
 pinMode(echo_pin , INPUT);
 Serial.begin(9600);
}

void loop() {
digitalWrite(trigger_pin , HIGH);
delayMicroseconds(1000);
digitalWrite(trigger_pin , LOW);
sure = pulseIn(echo_pin , HIGH);
mesafe = (sure/2) / 28.5;

if (mesafe <= 10 )
{
 digitalWrite(kled , HIGH);
 digitalWrite(buzzer , HIGH);
 delay(250);
 digitalWrite(kled , LOW);
 digitalWrite(kled , LOW);
}
else if ( mesafe <= 25)
{
digitalWrite(sled , HIGH);
digitalWrite(buzzer , HIGH);
delay(500);
digitalWrite(sled , LOW);
digitalWrite(buzzer , LOW);
}
else if ( mesafe <= 50)
{
digitalWrite(yled , HIGH);
digitalWrite(buzzer , HIGH);
delay(750);
digitalWrite(yled , LOW);
digitalWrite(buzzer , LOW);
}
else.
{
 digitalWrite(mled , HIGH);
 delay(1000);
 digitalWrite(mled , LOW);
}
Kod bu yakınlık sensörü yapmaya çalışıyorum ana kodu kontrol et deyince bu hatayı alıyorum.
Exit status 1
Expected '}' at end of input.
 
Son düzenleyen: Moderatör:
Çözüm
C++:
const int trigger_pin = 13;
const int echo_pin = 12;
const int buzzer = 2;
const int mled = 3;
const int yled = 4;
const int sled = 5;
const int kled = 6;
int sure ;
int mesafe ;
void setup() {
pinMode(kled , OUTPUT);
pinMode(sled , OUTPUT);
pinMode(yled , OUTPUT);
pinMode(mled , OUTPUT);
pinMode(buzzer , OUTPUT);
pinMode(trigger_pin , OUTPUT);
pinMode(echo_pin , INPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(trigger_pin , HIGH);
delayMicroseconds(1000);
digitalWrite(trigger_pin , LOW);
sure = pulseIn(echo_pin , HIGH);
mesafe = (sure/2) / 28.5;

else if (mesafe <= 10 )
{
digitalWrite(kled , HIGH);
digitalWrite(buzzer , HIGH);
delay(250);
digitalWrite(kled , LOW);
digitalWrite(kled , LOW);
}
else if ( mesafe <= 25)
{
digitalWrite(sled , HIGH);
digitalWrite(buzzer , HIGH);
delay(500);
digitalWrite(sled , LOW);
digitalWrite(buzzer , LOW);
}
else if ( mesafe <= 50)
{
digitalWrite(yled , HIGH);
digitalWrite(buzzer , HIGH);
delay(750);
digitalWrite(yled , LOW);
digitalWrite(buzzer , LOW);
}
else
{
digitalWrite(mled , HIGH);
delay(1000);
digitalWrite(mled , LOW);
}
}

Arkadaşlar anlamıyorsunuz sanırım, sorun sadece parantezde değil. Loop'u ilk başta bitiripelse'leri sonrasına koymuş. Ayrıca sondaki else'i else if olarak değiştir diyen arkadaş, şartı neden belirtmedin :D? Doğru kod budur, bir de bunu dener misin?
Busaferde Arduino:1.8.16 (Windows Store 1.8.51.0) (Windows 10), Kart:"Arduino Uno" sketch_nov21a:27:1: error: expected unqualified-id before 'else'. else if (mesafe <= 10 ) ^~~~ sketch_nov21a:35:1: error: expected unqualified-id before 'else'. else if ( mesafe <= 25) ^~~~ sketch_nov21a:43:1: error: expected unqualified-id before 'else'. else if ( mesafe <= 50) ^~~~ sketch_nov21a:51:1: error: expected unqualified-id before 'else'. else if. ^~~~ exit status 1 expected unqualified-id before 'else'. This report would have more information with. "Show verbose output during compilation" option enabled in File -> Preferences.
Hatasını veriyor.

Onu düzeltebildim ama şimdi de farklı hata veriyor.

54. satırdaki noktayı kaldırın.
 
Son düzenleme:
Bundan 10 kez yazıldı daha önce. Okumuyorsanız tabii ki silinir.
Nasıl 10 kez yazılmış? Sadece 1 kişi en alta 2. Bir parantez eklenmesini söylemiş. Diğerleri nereye eklenmesi gerektiğini söylememiş ya da 26. Satır gibi yanlış bir yere parantez eklemişler.
 
Nasıl 10 kez yazılmış. Sadece 1 kişi en alta 2. Bir parantez eklenmesini söylemiş. Diğerleri ya sadece ekle demiş yada 26. Satır gibi yanlış bir yere parantez eklemişler.
Hocam yanlış hatırlamıyorsam senden önce defalarca kez yazıldı ve hatta ben ilkinde sadece parantez eklenmesini söyleyip ikincisinde kodu düzeltip verdim. Bence tartışma ama sen bilirsin.
 
Sondaki else'ten sonra gelen noktayı kaldırır mısınız? Tabii süslü parantezi unutmayın.

const int trigger_pin = 13; const int echo_pin = 12; const int buzzer = 2; const int mled = 3; const int yled = 4; const int sled = 5; const int kled = 6; int sure ; int mesafe ; void setup() { pinMode(kled , OUTPUT); pinMode(sled , OUTPUT); pinMode(yled , OUTPUT); pinMode(mled , OUTPUT); pinMode(buzzer , OUTPUT); pinMode(trigger_pin , OUTPUT); pinMode(echo_pin , INPUT); Serial.begin(9600); } void loop() { digitalWrite(trigger_pin , HIGH); delayMicroseconds(1000); digitalWrite(trigger_pin , LOW); sure = pulseIn(echo_pin , HIGH); mesafe = (sure/2) / 28.5; } else if (mesafe <= 10 ) { digitalWrite(kled , HIGH); digitalWrite(buzzer , HIGH); delay(250); digitalWrite(kled , LOW); digitalWrite(kled , LOW); } else if ( mesafe <= 25) { digitalWrite(sled , HIGH); digitalWrite(buzzer , HIGH); delay(500); digitalWrite(sled , LOW); digitalWrite(buzzer , LOW); } else if ( mesafe <= 50) { digitalWrite(yled , HIGH); digitalWrite(buzzer , HIGH); delay(750); digitalWrite(yled , LOW); digitalWrite(buzzer , LOW); } else if. { digitalWrite(mled , HIGH); delay(1000); digitalWrite(mled , LOW); }
Kod bu yaptım ama olmadı gene.
 
Kod:
const int trigger_pin = 13;
const int echo_pin = 12;
const int buzzer = 2;
const int mled = 3;
const int yled = 4;
const int sled = 5;
const int kled = 6;

int sure ;
int mesafe ;

void setup() {
 pinMode(kled , OUTPUT);
 pinMode(sled , OUTPUT);
 pinMode(yled , OUTPUT);
 pinMode(mled , OUTPUT);
 pinMode(buzzer , OUTPUT);
 pinMode(trigger_pin , OUTPUT);
 pinMode(echo_pin , INPUT);
 Serial.begin(9600);
}

void loop() {
digitalWrite(trigger_pin , HIGH);
delayMicroseconds(1000);
digitalWrite(trigger_pin , LOW);
sure = pulseIn(echo_pin , HIGH);
mesafe = (sure/2) / 28.5;

if (mesafe <= 10 )
{
 digitalWrite(kled , HIGH);
 digitalWrite(buzzer , HIGH);
 delay(250);
 digitalWrite(kled , LOW);
 digitalWrite(kled , LOW);
}
else if ( mesafe <= 25)
{
digitalWrite(sled , HIGH);
digitalWrite(buzzer , HIGH);
delay(500);
digitalWrite(sled , LOW);
digitalWrite(buzzer , LOW);
}
else if ( mesafe <= 50)
{
digitalWrite(yled , HIGH);
digitalWrite(buzzer , HIGH);
delay(750);
digitalWrite(yled , LOW);
digitalWrite(buzzer , LOW);
}
else.
{
 digitalWrite(mled , HIGH);
 delay(1000);
 digitalWrite(mled , LOW);
}
}

Void loop'un parantezi en sonda olmalı. Çünkü void loopun hepsini içine alması gerekiyor.
1637496854644.png


Onun dışında koddaki diğer hataları bilemiyorum.
 
Kod:
const int trigger_pin = 13;
const int echo_pin = 12;
const int buzzer = 2;
const int mled = 3;
const int yled = 4;
const int sled = 5;
const int kled = 6;

int sure ;
int mesafe ;

void setup() {
 pinMode(kled , OUTPUT);
 pinMode(sled , OUTPUT);
 pinMode(yled , OUTPUT);
 pinMode(mled , OUTPUT);
 pinMode(buzzer , OUTPUT);
 pinMode(trigger_pin , OUTPUT);
 pinMode(echo_pin , INPUT);
 Serial.begin(9600);
}

void loop() {
digitalWrite(trigger_pin , HIGH);
delayMicroseconds(1000);
digitalWrite(trigger_pin , LOW);
sure = pulseIn(echo_pin , HIGH);
mesafe = (sure/2) / 28.5;

if (mesafe <= 10 )
{
 digitalWrite(kled , HIGH);
 digitalWrite(buzzer , HIGH);
 delay(250);
 digitalWrite(kled , LOW);
 digitalWrite(kled , LOW);
}
else if ( mesafe <= 25)
{
digitalWrite(sled , HIGH);
digitalWrite(buzzer , HIGH);
delay(500);
digitalWrite(sled , LOW);
digitalWrite(buzzer , LOW);
}
else if ( mesafe <= 50)
{
digitalWrite(yled , HIGH);
digitalWrite(buzzer , HIGH);
delay(750);
digitalWrite(yled , LOW);
digitalWrite(buzzer , LOW);
}
else.
{
 digitalWrite(mled , HIGH);
 delay(1000);
 digitalWrite(mled , LOW);
}
}

Void Loop'un parantezi en sonda olmalı.
Eki Görüntüle 1221986

Onun dışında koddaki diğer hataları bilemiyorum.

Çözüm bu doğru kod teşekkür ederim ve yardımcı olan herkese çok teşekkür ederim.
 

Geri
Yukarı