ожидаемый инициализатор перед токеном '=='

первый скетч сделал сам , я пытался создать скетч для светофора с помощью одной кнопки изменить его фазу( 1- закрыто для машин, открыто для пешеходов 2- ждать 3- открыто для автомобилей, закрыто для пешеходов) достигнув третьей фазы, возвращается к первой.

вот оно::

(комментарии на португальском языке)

/*

*/

void setup() { 

 //declaraçao de variaveis globais.

 int vermelhoc = 1;

 int verdec =2;

 int amareloc = 3;

 int vermelhop = 4;

 int verdep = 5;

 // valor atribuido a variavel botao e definido pela leitura do estado do pino 7: HIGH ou LOW

 int botao = digitalRead(7);


 // определение направления электрического тока.
 pinMode(vermelhoc, OUTPUT);

 pinMode(verdec, OUTPUT);

 pinMode(amareloc, OUTPUT);

 pinMode(vermelhop, OUTPUT);

 pinMode(verdep, OUTPUT);

 pinMode(botao, INPUT);

}

void loop() {

   // определение локальных переменных

    int estadosemaforo == 1;

   // тело функции, определяющей фазовую систему

    if(botao == HIGH;){
     estadosemaforo == estadosemaforo 1++;
    }

    if( estadosemaforo == 4 ){
     estadosemaforo == 1;
    }

    if ( estadosemaforo == 1 ){

     // автомобильные светофоры

      digitalWrite(vermelhoc, HIGH);
      digitalWrite(amareloc, LOW);
      digitalWrite(verdec, LOW);

      // пешеходный светофор

      digitalWrite(vermelhop, LOW);
      digitalWrite(verdep, HIGH);
    }

    if ( estadosemaforo == 2 ){

     // автомобильные светофоры

      digitalWrite(vermelhoc, LOW);
      digitalWrite(amareloc, HIGH);
      digitalWrite(verdec, LOW);

      // пешеходный светофор

      digitalWrite(vermelhop, HIGH);
      digitalWrite(verdep, LOW);
    }

    if ( estadosemaforo == 3 ){

     // semaforo dos carros

      digitalWrite(vermelhoc, LOW);
      digitalWrite(amareloc, LOW);
      digitalWrite(verdec, HIGH);

      //semaforo де pedestres

      digitalWrite(vermelhop, HIGH);
      digitalWrite(verdep, LOW);
    }


}

, 👍-1

Обсуждение

вы используете эти два варианта для присвоения переменных ... int vermelhoc = 1; и int estadosemaforo == 1; .... один из них не является правильным синтаксисом .... пожалуйста, изучите, как присваивать значения переменных, @jsotola


1 ответ


0

В вашем коде много основных синтаксических ошибок. Вам действительно нужно еще немного прочитать и изучить основы C и C++, прежде чем идти дальше.

Вот несколько примеров того, что я нашел:

  • У вас есть точки с запятой там, где их быть не должно
  • Вы путаете == и = повсюду
  • estadosemaforo == estadosemaforo 1++; вообще не имеет смысла — я понятия не имею, что вы имеете в виду
  • Переменные, определенные в setup, можно использовать только в setup. Если вы хотите использовать переменную в нескольких функциях, она должна быть глобальной.
  • estadosemaforo может быть только 1 или 2. Оно сбрасывается на 1 каждый раз, когда запускается loop().
  • Вы не можете просто ожидать, что прочитаете вывод один раз, и ее значение волшебным образом изменится — вы должны читать ее каждый раз, когда хотите узнать состояние вывода.
  • Вы считываете данные с цифрового вывода, а затем используете результаты этого чтения для настройки вывода, а затем ожидаете, что она сделает что-то полезное.
,

я действительно начинаю там, но, спасибо большое. даже не думал об этих ошибках., @user61474