Ошибка "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;
}
@Enzo, 👍0
Обсуждение2 ответа
▲ 1
Эта ошибка означает, что вы не закрыли пару скобок: {}
или ()
. Решение – проверить код и убедиться, что скобки всегда парные.
,
@MichaelT
▲ 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();
}
}
}
,
@towe
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Ваши брекеты - это бардак., @Majenko
Добро пожаловать в [Arduino SE!!](https://arduino.stackexchange.com/). Я думаю, вы добавили больше скобок в строку
voidloop() {{
, пожалуйста, проверьте еще раз свой код!!!, @abu-ahmed al-khatiriна ТАК такие вопросы закрыты как "опечатка", потому что они не стоят ответа. ответы отклонены., @Juraj