Сделал так: ЭФЕКТА НОЛЬ
/*******************************************************************************
* ROBOT
* Filename : MyRobot01.pde
********************************************************************************/
#include <AFMotor.h> // подключили библиотеку для работы с ДПТ и ШД
AF_DCMotor Motor3(3, MOTOR12_1KHZ); // используем 1-й порт на частоте ШИМ 1 кГц (можно 1,2,8,64)
AF_DCMotor Motor4(4, MOTOR12_1KHZ); // используем 2-й порт на частоте ШИМ 1 кГц (можно 1,2,8,64)
int dalnomer = 4; // дальномер
int gp2;
float distance;
int obstacleDetected(){
gp2=analogRead(dalnomer);
distance=(2914/(gp2+5))-1; // Перевод в сантиметры
return (distance<=6);
}
// -----------------------------------------------------------------
void setup(){
Motor3.setSpeed(200); // устанавливаем скорость вращения двигателя на 1-м порту
Motor4.setSpeed(200); // устанавливаем скорость вращения двигателя на 2-м порту
} // end setup
// -----------------------------------------------------------------
// О С Н О В Н О Й Ц И К Л П Р О Г Р А М М Ы
void loop(){
Go();
}
// -----------------------------------------------------------------
// -----------------------------------------------------------------
void Go() { // БЛУЖДАЮЩИЙ ЦИКЛ // зациклить с условием while
do
{
Forward (250); delay(2000);
//Spin_Left(); delay(2000);
//Forward(200); delay(2000);
Spin_Right(); delay(2000);
//Backward (150); delay(2000);
} while (obstacleDetected);
Stop (); delay (1000);
Backward (250); delay (2000);
Spin_Right(); delay(2000);
} // end loop
// ПОДПРОГРАММЫ ДВИЖЕНИЙ
// -----------------------------------------------------------------
void Forward (int speed){ // движение вперед
Motor3.setSpeed(speed); // устанавливаем скорость вращения двигателя на 1-м порту
Motor4.setSpeed(speed); // устанавливаем скорость вращения двигателя на 2-м порту
Motor3.run(FORWARD); // 1-й моторчик вперед крутится
Motor4.run(FORWARD); // 2-й моторчик вперед крутится
} // end Forward
void Backward (int speed){ // движение вперед
Motor3.setSpeed(speed); // устанавливаем скорость вращения двигателя на 1-м порту
Motor4.setSpeed(speed); // устанавливаем скорость вращения двигателя на 2-м порту
Motor3.run(BACKWARD); // 1-й моторчик назад крутится
Motor4.run(BACKWARD); // 2-й моторчик назад крутится
} // end Forward
void Release (){ // выбег с остановом
Motor3.run(RELEASE);
Motor4.run(RELEASE);
} // end Release
void Stop (){ // останов
Motor3.run(BRAKE);
Motor4.run(BRAKE);
} // end Stop
void Spin_Right (){ // поворот влево
Motor3.setSpeed(500); // устанавливаем скорость вращения двигателя на 1-м порту
Motor4.setSpeed(500);
Motor3.run(FORWARD); // 1-й моторчик вперед крутится
Motor4.run(BACKWARD);
delay (2000);
Motor3.run(RELEASE);
Motor4.run(RELEASE);
} // end Spin_Right
void Spin_Left (){ // поворот влево
Motor3.setSpeed(500);// устанавливаем скорость вращения двигателя на 1-м порту
Motor4.setSpeed(500);
Motor4.run(FORWARD); // 2-й моторчик вперед крутится
Motor3.run(BACKWARD);
delay (2000);
Motor3.run(RELEASE);
Motor4.run(RELEASE);
} // end Spin_Left
// -----------------------------------------------------------------