Ошибка "expected ')' before executarAcao"

вот код:

#define pinSom 7
#define pinRele1 2
#define pinRele2 3
#define tempoMaximoDeUmaPalma 150 //миллисекунды
#define tempoMaximoEntrePalmas 500 //миллисекунды

int contaPalmas = 0;
long tempoEspera = 0;
long tempoEsperaEntrePalmas = 0;


void setup() {
  // поместите сюда свой код установки для однократного запуска:
    pinMode(pinSom, INPUT);
    pinMode(pinRele1, OUTPUT);
    pinMode(pinRele2, OUTPUT); 
}

void loop() {{
  // проверяет состояние датчика звука (обычно это
  int sensorSom = digitalRead(pinSom) ;

  //если датчик зафиксировал хлопки
  if (tempoEspera == LOW) {

      //ждём некоторое время, чтобы не обнаружить одну и ту же ладонь более одного раза
    tempoEspera = tempoEsperaEntrePalmas = millis();
    contaPalmas++;
  }else if ((millis() - tempoEspera) >= tempoMaximoDeUmaPalma)
     tempoEspera = 0;
  }

    //если максимальное время между аплодисментами превышается, счетчик хлопков сбрасывается


    {

    if ( (contaPalmas != 0) && ((millis() - tempoEsperaEntrePalmas)
    (i get the error here) executarAcao();
    contaPalmas = 0;
    TempoEsperaEntrePalmas = millis();

 }
}
void executarAcao()
{
   switch (contaPalmas) {
    case 2:
      digitalWrite(pinRele1, !digitalRead(pinRele1));
      break;
   }

, 👍0

Обсуждение

Ваши брекеты - это бардак., @Majenko

Добро пожаловать в [Arduino SE!!](https://arduino.stackexchange.com/). Я думаю, вы добавили больше скобок в строку voidloop() {{, пожалуйста, проверьте еще раз свой код!!!, @abu-ahmed al-khatiri

на ТАК такие вопросы закрыты как "опечатка", потому что они не стоят ответа. ответы отклонены., @Juraj


2 ответа


1

Эта ошибка означает, что вы не закрыли пару скобок: {} или (). Решение – проверить код и убедиться, что скобки всегда парные.

,

3

В строке над ошибкой отсутствуют закрывающие скобки.

Сейчас он компилируется, но я понятия не имею, работает ли он так, как вы хотите. Попробуйте заставить себя всегда открывать и закрывать скобки в начале и следить за тем, чтобы отступы были правильными.

Кроме того, код Arduino чувствителен к регистру.

#define pinSom 7
#define pinRele1 2
#define pinRele2 3
#define tempoMaximoDeUmaPalma 150 //milisegundos
#define tempoMaximoEntrePalmas 500 //milisegundos

int contaPalmas = 0;
long tempoEspera = 0;
long tempoEsperaEntrePalmas = 0;

void executarAcao()
{
  switch (contaPalmas) {
    case 2:
      digitalWrite(pinRele1, !digitalRead(pinRele1));
      break;
  }
}

void setup() {
  // поместите сюда свой код установки для однократного запуска:
  pinMode(pinSom, INPUT);
  pinMode(pinRele1, OUTPUT);
  pinMode(pinRele2, OUTPUT); 
}

void loop() {
  // проверяет состояние датчика звука (обычно это
  int sensorSom = digitalRead(pinSom);

  //если датчик зафиксировал хлопки
  if (tempoEspera == LOW) {
      //ждём некоторое время, чтобы не обнаружить одну и ту же ладонь более одного раза
    tempoEspera = tempoEsperaEntrePalmas = millis();
    contaPalmas++;
  }
  else if ((millis() - tempoEspera) >= tempoMaximoDeUmaPalma) {
     tempoEspera = 0;
  }
    //если максимальное время между аплодисментами превышается, счетчик хлопков сбрасывается
  else {
    if ((contaPalmas != 0) && (millis() - tempoEsperaEntrePalmas)) {
      executarAcao();
      contaPalmas = 0;
      tempoEsperaEntrePalmas = millis();
    }
  }
}
,