Çö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.
Katılım
2 Nisan 2019
Mesajlar
2.262
Çö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 ? 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:

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.
 
Son düzenleyen: Moderatör:
O sorun çözülmüş demek ki. Çözüldü olarak işaretleyip farklı bir konu açman daha iyi olur.
 
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:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…