Çö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.204
Çözümler
5
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?
Sanırım süslü parantezi kapatmayı unutmuşsunuz.
26. satır.


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);
}
 
Son düzenleme:
'}' eklemen gerekiyor.

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);

}

Bu şekilde dener misin?
 
Son düzenleyen: Moderatör:
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;
İnt sure;
İnt 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, ınput);
Serial. Begin(9600);
}
Void loop() {
Digitalwrite(trigger_pin, hıgh);
Delaymicroseconds(1000);
Digitalwrite(trigger_pin, Low);
Sure = pulseın(echo_pin, hıgh);
Mesafe = (sure/2) / 28.5;
}
İf (mesafe <= 10 )
{
Digitalwrite(Kled, hıgh);
Digitalwrite(buzzer, hıgh);
Delay(250);
Digitalwrite(Kled, Low);
Digitalwrite(Kled, Low);
}
Else if ( mesafe <= 25)
{
Digitalwrite(sled, hıgh);
Digitalwrite(buzzer, hıgh);
Delay(500);
Digitalwrite(sled, Low);
Digitalwrite(buzzer, Low);
}
Else if ( mesafe <= 50)
{
Digitalwrite(yled, hıgh);
Digitalwrite(buzzer, hıgh);
Delay(750);
Digitalwrite(yled, Low);
Digitalwrite(buzzer, Low);
}
Else.
{
Digitalwrite(mled, hıgh);
Delay(1000);
Digitalwrite(mled, Low);
}

Bu şekilde dener misin?

Busafer de 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.
Sanırım süslü parantezi kapatmayı unutmuşsunuz.
26. satır.

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);
}

Onu düzeltebildim ama şimdi de farklı hata veriyor.
 
Son düzenleyen: Moderatör:
Busafer de 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.
O sorun çözülmüş demek ki. Çözüldü olarak işaretleyip farklı bir konu açman daha iyi olur.
 
Busafer de 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.
Arduino hakkında pek bilgim yok ama mesafe değişkeni fonskiyonların içerisinde kaldığı için çalışmıyor gibi duruyor. Return etmeniz işe yarayabilir. @SideWinder de bakabilir müsaitse.

Ekleme: Sondaki else'den sonra da "." olmayacak.
 
Son düzenleme:

Geri
Yukarı