ожидаемый инициализатор перед токеном '=='
первый скетч сделал сам , я пытался создать скетч для светофора с помощью одной кнопки изменить его фазу( 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);
}
}
@user61474, 👍-1
Обсуждение1 ответ
▲ 0
В вашем коде много основных синтаксических ошибок. Вам действительно нужно еще немного прочитать и изучить основы C и C++, прежде чем идти дальше.
Вот несколько примеров того, что я нашел:
- У вас есть точки с запятой там, где их быть не должно
- Вы путаете
==
и=
повсюду estadosemaforo == estadosemaforo 1++;
вообще не имеет смысла — я понятия не имею, что вы имеете в виду- Переменные, определенные в
setup
, можно использовать только вsetup
. Если вы хотите использовать переменную в нескольких функциях, она должна быть глобальной. estadosemaforo
может быть только 1 или 2. Оно сбрасывается на 1 каждый раз, когда запускаетсяloop()
.- Вы не можете просто ожидать, что прочитаете вывод один раз, и ее значение волшебным образом изменится — вы должны читать ее каждый раз, когда хотите узнать состояние вывода.
- Вы считываете данные с цифрового вывода, а затем используете результаты этого чтения для настройки вывода, а затем ожидаете, что она сделает что-то полезное.
,
@Majenko
я действительно начинаю там, но, спасибо большое. даже не думал об этих ошибках., @user61474
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
вы используете эти два варианта для присвоения переменных ...
int vermelhoc = 1;
иint estadosemaforo == 1;
.... один из них не является правильным синтаксисом .... пожалуйста, изучите, как присваивать значения переменных, @jsotola