проблема в коде с вездеходом с эхолокатором
- Войдите на сайт для отправки комментариев
Ср, 17/05/2017 - 18:16
скетч для самодвижущего танка не работает
int L_A_IA = 2;
int L_A_IB = 3;
int R_B_IA = 4;
int R_B_IB = 5;
int frontL = 9;
int frontR = 10;
int backL = 11;
int backR = 12;
int echoPin = 6;
int trigPin = 7;
int isLeft = 0;
long distance;
void setup() {
pinMode(L_A_IA, OUTPUT);
pinMode(L_A_IB, OUTPUT);
pinMode(R_B_IA, OUTPUT);
pinMode(R_B_IB, OUTPUT);
pinMode(frontL, OUTPUT);
pinMode(frontR, OUTPUT);
pinMode(backL, OUTPUT);
pinMode(backR, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, OUTPUT);
}
void loop() {
distance = getDistance();
if (distance >= 20 {
digitalWrite(frontL, LOW);
digitalWrite(frontR, LOW);
go_forward();
}
else {
stop_robot();
digitalWrite(frontL, HIGH);
digitalWrite(frontR, HIGH);
delay(10);
isLeft = random(0, 2);
if (isLeft < 1) {
go_right();
}
else {
go_left();
}
}
delay(50);
}
void go_farward() {
digitalWrite(L_A_IA, HIGH);
digitalWrite(L_A_IB, LOW);
digitalWrite(R_B_IA, LOW);
digitalWrite(R_B_IB, HIGH);
digitalWrite(backL, LOW);
digitalWrite(backR, LOW);
}
void go_back() {
digitalWrite(L_A_IA, LOW);
digitalWrite(L_A_IB, HIGH);
digitalWrite(R_B_IA, HIGH);
digitalWrite(R_B_IB, LOW);
digitalWrite(backL, HIGH);
digitalWrite(backR, HIGH);
}
void go_right() {
digitalWrite(R_B_IA, HIGH);
digitalWrite(R_B_IB, LOW);
digitalWrite(L_A_IA, HIGH);
digitalWrite(L_A_IB, LOW);
digitalWrite(backR, HIGH);
digitalWrite(backL, LOW);
}
void go_left() {
digitalWrite(R_B_IA, LOW);
digitalWrite(R_B_IB, HIGH);
digitalWrite(L_A_IA, LOW);
digitalWrite(L_A_IB, HIGH);
digitalWrite(backL, HIGH);
digitalWrite(backR, LOW);
}
void stop_robot() {
digitalWrite(L_A_IA, LOW);
digitalWrite(L_A_IB, LOW);
digitalWrite(R_B_IA, LOW);
digitalWrite(R_B_IB, LOW);
digitalWrite(backL, HIGH);
digitalWrite(backR, HIGH);
delay(100);
digitalWrite(backL, LOW);
digitalWrite(backR, LOW);
}
long getEchoTining() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration;
}
Arduino: 1.8.2 (Windows 10), Плата:"Arduino/Genuino Uno"
C:\Users\Thrower.thrower-pc\Downloads\sketch_may17a\sketch_may17a.ino: In function 'void loop()':
sketch_may17a:29: error: 'getDistance' was not declared in this scope
distance = getDistance();
^
sketch_may17a:30: error: expected ')' before '{' token
if (distance >= 20 {
^
C:\Users\Thrower.thrower-pc\Downloads\sketch_may17a\sketch_may17a.ino: In function 'long int getEchoTining()':
sketch_may17a:100: error: 'tringPin' was not declared in this scope
digitalWrite(tringPin, LOW);
^
exit status 1
'getDistance' was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
подскажите , как исправить пожалуйста !
подскажите , как исправить пожалуйста !
Написать функцию getDistance()
добавить завершающую скобку в строке if (distance >= 20
и объявить переменную tringPin
и тогда возможно случится чудо и будет Вам счастье.
не подскажите тогда , пожалуйста , как можно это исправить ?
Выше уже ответили - написать функцию getDistance().
Возможно не хватает какой-нибудь библиотеки, содержащей эту функцию. Тогда спрашивайте там, где взяли этот код.