ожидаемый неквалифицированный-id раньше, если

#include <IRremote.h>
const int pingPin=7;
int PIR=0;
int IR_Recv=11;
IRrecv irrecv(IR_Recv);
decode_results results;

void setup () 
{
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(10, OUTPUT);
  
  Serial.begin(9600);
}

void loop()
{long duration,cm;
 pinMode(pingPin, OUTPUT);
 digitalWrite(pingPin, LOW);
 delayMicroseconds(3);
 digitalWrite(pingPin, HIGH);
 delayMicroseconds(3);
 digitalWrite(pingPin, LOW);
 
 pinMode(pingPin, INPUT);
 duration = pulseIn(pingPin, HIGH);
 
 cm = microsecondsToClockCycles(duration);
 
 Serial.print(cm);
 Serial.print("cm");
 Serial.println();
 if(cm<50)
 {
   digitalWrite(13, LOW);
   digitalWrite(12, LOW);
   digitalWrite(10, HIGH);}
 else
 {
   digitalWrite(13, LOW);
   digitalWrite(12, HIGH);
   digitalWrite(10, LOW);
 }
}
 if (IRrecv.decode (5results))
 {
   
 long int decode = results.value;
   Serial.println(results.value);
   switch(results.value);
   {
     
     case 16593103: Serial.println("0");
        digitalWrite(13, HIGH);
        digitalWrite(12, HIGH);
        digitalWrite(10, HIGH);
     break;
     
     case 16582903: Serial.println("1");
        digitalWrite(13, LOW);
        digitalWrite(12, LOW);
        digitalWrite(10, HIGH);
     break;
     
     case 16615543: Serial.println("2");
        digitalWrite(13, HIGH);
        digitalWrite(12, LOW);
        digitalWrite(10, LOW);
     break;
     
     case 16599223: Serial.println("3");
        digitalWrite(13, LOW);
        digitalWrite(12, HIGH);
        digitalWrite(10, LOW);
     break;
     
     case 16623703: Serial.println("5");
        digitalWrite(13, HIGH);
        digitalWrite(12, HIGH);
        digitalWrite(10, LOW);
     break;
     
   }
irrecv.resume();
 }
}
long microsecondsToInches(long microseconds);{
  return microseconds / 74 / 2;
}
long microsecondsToCentimetres(long microseconds);{
  return microseconds / 29 / 2;
}

, 👍1

Обсуждение

У вас есть одна фигурная скобка } слишком много прав перед `if (IRrecv.decode (5results))'. Это означает, что эта строка и следующие находятся вне какой-либо функции. Вы не можете иметь код вне функции. Хотя это чистый вопрос синтаксиса C/C++ и, таким образом, вне темы здесь. Удачи вам в вашем проекте., @chrisl

Огромное спасибо. Это сработало идеально. Ты можешь сказать мне еще кое-что? Я не могу опубликовать его снова: ожидаемое объявление перед '}' token ->>> under if (IRrecv.decode (5results)), @Lka12

У вас есть задание 5 в операторе if (5results вместо правильного results), и у вас есть дополнительная точка с запятой в конце строки switch. Точка с запятой не принадлежит. Возможно, вам стоит попробовать некоторые учебники по C/C++, чтобы получить правильные правила синтаксиса. Тогда сообщения об ошибках компиляторов становятся довольно легко читаемыми., @chrisl

Я удалил это 5, а также удалил точку с запятой из конца строки коммутатора. Но та же ошибка записывается, когда я инициирую кнопку "start simulation"., @Lka12

Затем посмотрите вблизи тех мест, где компьюлер сообщает об этих ошибках. Посмотрите, есть ли у вас какие-то несбалансированные скобки/парантезы, неправильно поставленные или отсутствующие точки с запятой. Вам нужно правильно использовать синтаксис C/C++. Есть много учебных пособий об этом в Интернете., @chrisl

Да, но у меня занятия до 6, а потом проект.. Я написал код, но не нашел ошибки, так что у меня не осталось времени.. Мне нужна немедленная помощь., @Lka12

Я вижу дополнительные точки с запятой в определениях функций в конце. Удалите их также. Но когда вы пишете код, вам нужно смотреть на то, что говорит компилятор. Я понимаю, что иногда бывает трудно управлять имеющимся временем, и мне очень жаль. Но мы здесь не для того, чтобы делать тебе домашнее задание., @chrisl