Ошибка 'else' without a previous 'if' (не из-за символов)

Тема в разделе "Arduino & Shields", создана пользователем evans7, 16 авг 2021.

  1. evans7

    evans7 Нуб

    Всем здравствуйте, помогите пожалуйста, пробую совместить два разных кода в один для робота на ардуино, выдает ошибку 'else' without a previous 'if'. Не могу понять, что не нравится компилятору, учитывая что точка с запятой не поставлена после if.

    Код (C++):
    #define avoidPin A1 // задаем имя порта с датчиком

    const int in1 = 5;    // L298N-1 pin 5
    const int in2 = 4;    // L298N-1 pin 4
    const int in3 = 3;    // L298N-1 pin 3
    const int in4 = 2;    // L298N-1 pin 2

    int avoid;

    void setup()
    {
      Serial.begin(9600); // инициализация монитора порта
     
      pinMode(avoidPin, OUTPUT); // выход
      pinMode(avoidPin, INPUT); // вход
      pinMode(in1, OUTPUT);      // выход на L298n
      pinMode(in2, OUTPUT);      // выход на L298n
      pinMode(in3, OUTPUT);      // выход на L298n
      pinMode(in4, OUTPUT);      // выход на L298n
       

    }

    void loop() {
     
    avoid = digitalRead(avoidPin); // получаем данные с датчика препятствий

    Serial.print("Avoid Sensor - "); //выводим данные с датчика на монитор
    Serial.println(avoid);

    if(avoid == HIGH)
      digitalWrite(in1, HIGH);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, HIGH);
    else
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
      digitalWrite(in3, LOW);
      digitalWrite(in4, LOW);
           
    }
     
  2. akl

    akl Гуру

    там целых четыре точки с запятой после иф.
    скобки надо использовать
     
    evans7 нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Типа так
    Код (Text):
    #define avoidPin A1 // задаем имя порта с датчиком

    const int in1 = 5;    // L298N-1 pin 5
    const int in2 = 4;    // L298N-1 pin 4
    const int in3 = 3;    // L298N-1 pin 3
    const int in4 = 2;    // L298N-1 pin 2

    int avoid;

    void setup()
    {
      Serial.begin(9600); // инициализация монитора порта
      pinMode(avoidPin, OUTPUT); // выход
      pinMode(avoidPin, INPUT); // вход
      pinMode(in1, OUTPUT);      // выход на L298n
      pinMode(in2, OUTPUT);      // выход на L298n
      pinMode(in3, OUTPUT);      // выход на L298n
      pinMode(in4, OUTPUT);      // выход на L298n
     

    }

    void loop() {
    avoid = digitalRead(avoidPin); // получаем данные с датчика препятствий

    Serial.print("Avoid Sensor - "); //выводим данные с датчика на монитор
    Serial.println(avoid);

    if(avoid == HIGH)
    {
      digitalWrite(in1, HIGH);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, HIGH);
    }
              else  
                         {
                         digitalWrite(in1, LOW);
                         digitalWrite(in2, LOW);
                         digitalWrite(in3, LOW);
                         digitalWrite(in4, LOW);
                                                                      }
         
    }
     
    issaom и evans7 нравится это.
  4. evans7

    evans7 Нуб

    Вот зараза...спасибо вам большое! Ошибка исчезла.