Помогите найти ошибку на ардуино
Вот скетч
#include
int joyX = 0;
int angl = 0;
Servo myservo;
void setup() {
myservo.attach(9);
pinMode(joyX,INPUT);
Serial.begin(9600);
}
void loop(){
int val = (analogRead(joyX)/64)-8;
if(val>0){
angl=angl+abs(val);
}
}
else{
if (val < 0){
angl=angl-abs(val);}
}
if(angl<0)angl = 0;
if(angl>180)angl = 180;
Serial.print("Power:");
Serial.println(val);
Serial.print("angle:");
Serial.println(angl);
myservo.write(angl);
int spd = 500
if(val !=0){
spd = 600/abs(val);
}
Serial.print("Speed:");
Serial.println(spd);
Serial.println("-----------");
delay(spd);
}
вот ошибка которую он выдает
Arduino: 1.6.5 (Windows 8.1), Плата"Arduino/Genuino Uno"
sketch_may16a:17: error: expected unqualified-id before 'else'
expected unqualified-id before 'else'
Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки
Ответы на вопрос
Ошибка «expected unqualified-id before 'else'» возникает из-за лишней закрывающей фигурной скобки. В твоём коде после блока if стоит две скобки } подряд — одна закрывает if, а вторая преждевременно завершает функцию loop(). Поэтому else оказывается снаружи всех функций, и компилятор не понимает, к чему он относится.
Кроме того, есть ещё две ошибки:
- Не дописана строка #include — должно быть #include <Servo.h> (иначе сервопривод не будет работать).
- Пропущена точка с запятой после int spd = 500.
Вот как должен выглядеть исправленный код (основная часть):
#include <Servo.h>
int joyX = 0;
int angl = 0;
Servo myservo;
void setup() {
myservo.attach(9);
pinMode(joyX, INPUT);
Serial.begin(9600);
}
void loop() {
int val = (analogRead(joyX) / 64) - 8;
if (val > 0) {
angl = angl + abs(val);
} else {
if (val < 0) {
angl = angl - abs(val);
}
}
if (angl < 0) angl = 0;
if (angl > 180) angl = 180;
Serial.print(\"Power:\");
Serial.println(val);
Serial.print(\"angle:\");
Serial.println(angl);
myservo.write(angl);
int spd = 500;
if (val != 0) {
spd = 600 / abs(val);
}
Serial.print(\"Speed:\");
Serial.println(spd);
Serial.println(\"-----------\");
delay(spd);
}
Убери лишнюю скобку, добавь #include <Servo.h> и точку с запятой — ошибка исчезнет.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

