Вопрос от чайника
- Войдите на сайт для отправки комментариев
Ср, 13/12/2017 - 18:49
Добрый день, уважаемые!
Собрал робота на двух колесах, запустил программу и получил
int lookLeft(){
servo_motor.write(170);
delay(500);
int distance = readPing(); - строка выделена красным
delay(100);
servo_motor.write(115);
return distance;
delay(100);
Внизу надпись -
'readPing' was not declared in this scope
Что делать?
Собрал робота на двух колесах, запустил программу и получил
Внизу надпись -
Задекларировать readPing выше сетапа. Типа int readPing
А вообще лучше скетч целиком выложить и по правилам. Кнопка "Code" вверху окна редактирования сообщения.
Что делать?
1. Вставлять код как положено;
2. Понять, что написал компилятор. Если инвалид, то воспользоваться переводчиком.
3. Прочитать хоть какую-нибудь, ну хоть для самых идиотов, книгу по языку на котором пишешь.
4. Если после всего этого проблема так и не решилась, то выбрать один из двух вариантов дальнейших действий:
4.1. Бросить это дело
4.2. Купить аудиопровод из бескислородной меди и повеситься на нём.
#include <Servo.h> //Библиотека сервомотора. Есть по стандарту #include <NewPing.h> //Библиотека Ультразвукового датчика (нужно установить) //Пины контроллера L298N const int LeftMotorForward = 7; const int LeftMotorBackward = 6; const int RightMotorForward = 5; const int RightMotorBackward = 4; //Пины ультразвукового датчика #define trig_pin A0 //Аналоговый вход 1 #define echo_pin A1 //Аналоговый вход 2 #define maximum_distance 200 boolean goesForward = false; int distance = 100; NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function Servo servo_motor; //our servo name void setup(){ pinMode(RightMotorForward, OUTPUT); pinMode(LeftMotorForward, OUTPUT); pinMode(LeftMotorBackward, OUTPUT); pinMode(RightMotorBackward, OUTPUT); servo_motor.attach(8); //Пин подключения сервомотора servo_motor.write(115); delay(2000); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); } void loop(){ int distanceRight = 0; int distanceLeft = 0; delay(50); if (distance <= 20){ moveStop(); delay(300); moveBackward(); delay(400); moveStop(); delay(300); distanceRight = lookRight(); delay(300); distanceLeft = lookLeft(); delay(300); if (distance >= distanceLeft){ turnRight(); moveStop(); } else{ turnLeft(); moveStop(); } } else{ moveForward(); } distance = readPing(); } int lookRight(){ servo_motor.write(50); delay(500); int distance = readPing(); delay(100); servo_motor.write(115); return distance; } int lookLeft(){ servo_motor.write(170); delay(500); int distance = readPing(); delay(100); servo_motor.write(115); return distance; delay(100); } int readPing(){ delay(70); int cm = sonar.ping_cm(); if (cm==0){ cm=250; } return cm; } void moveStop(){ digitalWrite(RightMotorForward, LOW); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorBackward, LOW); digitalWrite(LeftMotorBackward, LOW); } void moveForward(){ if(!goesForward){ goesForward=true; digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorBackward, LOW); } } void moveBackward(){ goesForward=false; digitalWrite(LeftMotorBackward, HIGH); digitalWrite(RightMotorBackward, HIGH); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorForward, LOW); } void turnRight(){ digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorBackward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorForward, LOW); delay(500); digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorBackward, LOW); } void turnLeft(){ digitalWrite(LeftMotorBackward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorBackward, LOW); delay(500); digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorBackward, LOW);А вообще лучше скетч целиком выложить и по правилам. Кнопка "Code" вверху окна редактирования сообщения.
Ошибка в строке 088
Что делать?
1. Вставлять код как положено;
2. Понять, что написал компилятор. Если инвалид, то воспользоваться переводчиком.
3. Прочитать хоть какую-нибудь, ну хоть для самых идиотов, книгу по языку на котором пишешь.
4. Если после всего этого проблема так и не решилась, то выбрать один из двух вариантов дальнейших действий:
4.1. Бросить это дело
4.2. Купить аудиопровод из бескислородной меди и повеситься на нём.
Прошу сильно не пинать. Если нетрудно, подскажите книгу.
Не идиот. В 1989 году паял РК-86, на нем и программировал на BASIC-MICRON, с тех пор программированием не занимался, а тут хочу ребенка 15-ти лет в это дело ввергнуть.
ЗЫ. Сейчас аудиопровода такие чахлые, что не выдержат мою тушку.
Прошу сильно не пинать. Если нетрудно, подскажите книгу.
Да, там же ссылка дана - начните с этой.
ты где такой чоткий код спёр?
Если не хотите прислушится к совету из поста #1, второй совет - обновите IDE до последней.
Да код и впрям чЕткий ))
int lookLeft(){ servo_motor.write(170); delay(500); int distance = readPing(); delay(100); servo_motor.write(115); return distance; delay(100); }Мля, я тащусь, написано ведь:
#include <NewPing.h> //Библиотека Ультразвукового датчика (нужно установить)
Вангую, в этом дело :)
Мля, я тащусь, написано ведь:
#include <NewPing.h> //Библиотека Ультразвукового датчика (нужно установить)
Вангую, в этом дело :)
тогда бы все поломалось раньше, на строчке
add:
А Миха тем временем аватарки настраивал ....
..... то да - есть в них что-то экзистенциальное.
Евгений, Вы меня в вики загнали )))
Мля, я тащусь, написано ведь:
#include <NewPing.h> //Библиотека Ультразвукового датчика (нужно установить)
Вангую, в этом дело :)
Установлено
Если не хотите прислушится к совету из поста #1, второй совет - обновите IDE до последней.
Коим образом?
не, ну дальше я пас...
https://www.arduino.cc/en/Main/Donate
Коим образом?
По ссылке от xDriver, вторая справа круглая кнопка.
Коим образом?
По ссылке от xDriver, вторая справа круглая кнопка.
Помогло! И заработало! Всем огромное спасибо и большие плюсы к карме!
Правда, не круглая кнопка, а обновление версии софта.