Пытался перестроить код для своего бота, но появляются ошибки
#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>
#define TRIG_PIN A0
#define ECHO_PIN A1
#define MAX_DISTANCE 200
#define MAX_SPEED 190
#define MAX_SPEED_OFFSET 20
NewPing sonar (TRIG_PIN,ECHO_PIN,MAX_DISTANCE);
AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ);
Servo myservo;
boolean goesForward=fclose;
int distance = 100;
int speedSet = 0;
void setup() {
myservo.attach(10);
myservo.write(115);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}
void loop() {
int distanceR = 0;
int distanceL = 0;
delay (40);
if (distance <= 15); {
moveStop();
delay(100);
moveForward();
delay(300);
moveStop();
delay(200);
distanceR = lookRight();
delay(200);
distanceL = lookLeft();
delay(200);
if (distanceR>=distanceL) {
turnRight();
moveStop();
} else {
turnLeft();
moveStop();
}}else {
moveForward();
}
distance=readPing();
}
int lookRight() {
myservo.write(170);
delay(500);
int distance=readPing();
delay(100);
myservo.write(115);
return distance;
delay(100);
}
int readPing() {
delay(70);
int cm = sonar.ping_cm();
if (cm ==) {
cm=250;
}
return cm;
}
void moveStop() {
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
void moveForward() {
if (!goesForward) {
goesFORWARD=true;
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
for (speedSet=0; speedSet<MAX_SPEED;speedSet+=2) {
motor1.setSpeed(speed.Set};
motor2.setSpeed(speed.Set};
motor3.setSpeed(speed.Set};
motor4.setSpeed(speed.Set};
delay(5);
}
}
}
void moveBackward() {
goesFORWARD=false;
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
for (speedSet=0; speedSet<MAX_SPEED;speedSet+=2) {
motor1.setSpeed(speed.Set};
motor2.setSpeed(speed.Set};
motor3.setSpeed(speed.Set};
motor4.setSpeed(speed.Set};
delay(5);
}
}
void moveRight() {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay (500);
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
void moveRight() {
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
delay (500);
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
это код ошибки
Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "Arduino Uno"
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino: In function 'void loop()':
sketch_nov27b:53:13: error: 'lookLeft' was not declared in this scope
distanceL = lookLeft();
^~~~~~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino:53:13: note: suggested alternative: 'lookRight'
distanceL = lookLeft();
^~~~~~~~
lookRight
sketch_nov27b:58:1: error: 'turnRight' was not declared in this scope
turnRight();
^~~~~~~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino:58:1: note: suggested alternative: 'lookRight'
turnRight();
^~~~~~~~~
lookRight
sketch_nov27b:62:1: error: 'turnLeft' was not declared in this scope
turnLeft();
^~~~~~~~
Sketch_nov27b:65:4: error: 'else' without a previous 'if'
}else
^~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino: In function 'int readPing()':
sketch_nov27b:86:10: error: expected primary-expression before ')' token
if(cm==)
^
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino: In function 'void moveForward()':
sketch_nov27b:104:1: error: 'goesFORWARD' was not declared in this scope
goesFORWARD=true;
^~~~~~~~~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino:104:1: note: suggested alternative: 'FORWARD'
goesFORWARD=true;
^~~~~~~~~~~
FORWARD
sketch_nov27b:111:17: error: 'speed' was not declared in this scope
motor1.setSpeed(speed.Set};
^~~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino:111:17: note: suggested alternative: 'speedSet'
motor1.setSpeed(speed.Set};
^~~~~
speedSet
sketch_nov27b:112:17: error: 'speed' was not declared in this scope
motor2.setSpeed(speed.Set};
^~~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino:112:17: note: suggested alternative: 'speedSet'
motor2.setSpeed(speed.Set};
^~~~~
speedSet
sketch_nov27b:113:17: error: 'speed' was not declared in this scope
motor3.setSpeed(speed.Set};
^~~~~
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino:113:17: note: suggested alternative: 'speedSet'
motor3.setSpeed(speed.Set};
^~~~~
speedSet
C:\Users\amish\Documents\Arduino\sketch_nov27b\sketch_nov27b.ino: At global scope:
sketch_nov27b:114:1: error: 'motor4' does not name a type
motor4.setSpeed(speed.Set};
^~~~~~
sketch_nov27b:114:26: error: expected declaration before '}' token
motor4.setSpeed(speed.Set};
^
Multiple libraries were found for "Servo.h"
Used: C:\Users\amish\Documents\Arduino\libraries\Servo
Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Servo
exit status 1
'lookLeft' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
@NEXE, 👍-4
Обсуждение1 ответ
▲ 3
Ваш код изобилует типографскими и основными синтаксическими ошибками. Такие вещи, как использование скобок вместо круглых скобок, точка с запятой после if
, означающая, что это ничего не даст, и т.д.
Разберитесь с основными синтаксическими ошибками (подсказка: автоформат может помочь вам с отступами, чтобы выделить ваши проблемы), и вы увидите, где вы ошиблись.
Например, после автоматического форматирования вашего кода с помощью astyle
функция moveForward()
превратилась в этот беспорядок:
99 if (!goesForward) {
100 goesFORWARD = true;
101 motor1.run(FORWARD);
102 motor2.run(FORWARD);
103 motor3.run(FORWARD);
104 motor4.run(FORWARD);
105
106 for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) {
107 motor1.setSpeed(speed.Set
108 };
109
110 motor2.setSpeed(speed.Set
111 };
112
113 motor3.setSpeed(speed.Set
114 };
115 motor4.setSpeed(speed.Set
116 };
117 delay(5);
118 }
119 }
120 }
Кроме того, у вас нет функции lookLeft - вместо этого у вас есть две
функции lookRight. Вам действительно следует прочитать то, что вы написали.
,
@Majenko
Смотрите также:
- Как использовать SPI на Arduino?
- Библиотека DHT.h не импортируется
- Светодиоды: разница между общим анодом и общим катодом
- Как повторить кусок кода
- Почему эта программа на C++ не может прочитать Serial.write() моего arduino?
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Отображение двоичных данных на светодиодах
- Корпус кнопки и переключателя
серво-часть не работала, поэтому все сошлось воедино, @NEXE
Разберитесь с отступами в вашем коде, и вы сразу увидите, в чем проблема. Попробуйте использовать автоформат в среде IDE., @Majenko
большое спасибо..., @NEXE
Вы говорите, что вам нужна быстрая помощь. Почему?, @StarCat