#include
#define S_LIMIT_1 18
#define S_LIMIT_3 8
#define S_LIMIT_2 100
long timer,runtime;\
const long TIME_OUT=5000;
Servo myservo;
int ServoPin=10
int pos=0
#define MOTORADJUSTMENT
int MotorAdjustmengPin=A1;
const int trig=4;
const int echo=7;
const int DIR1_RIGHT=12;
const int DIR2_RIGHT=11;
const int DIR1_LEFT=8;
const int DIR2_LEFT=9;
const int PWM_LEFT=6;
const int PWM_RIGHT=5;
int Bit_Front,Bit_Left,Bit_Right;
void setup()
{
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
pinMode(DIR1_RIGHT,OUTPUT);
pinMode(DIR2_RIGHT,OUTPUT);
pinMode(DIR1_LEFT,OUTPUT);
pinMode(DIR2_LEFT,OUTPUT);
pinMode(PWM_LEFT,OUTPUT);
pinMode(PWM_RIGHT,OUTPUT);
myservo.attach(ServoPin);
Servo.begin(9600);
}
void motorsWrite(int speedLeft,int speedRight)
float motorAdjustment=MotorAdjustment();
if(motorAdjustment<0){
speedRight*=(1+motorAdjustment);
}
else{
speedLeft*=(1-motorAdjustment);
}
if(speedRight>0);
{
digitalWrite(DIR1_RIGHT,1);
digitalWrite(DIR2_RIGHT,0);
}
else
{
digitalWrite(DIR1_RIGHT,1);
digitalWrite(DIR2_RIGHT,0);
}
analogWrite(PWM_RIGHT, abs(speedRight));
if(speedLeft>0);
{
digitalWrite(DIR1_LEFT,1);
digitalWrite(DIR2_LEFT,0);
}
else
{
digitalWrite(DIR1_LEFT,1);
digitalWrite(DIR2_LEFT,1);
}
analogWrite(PWM_RIGHT, abs(speedRight));
int ranging()
{
long IntervalTime=0;
digitalWrite(trig,1);
delayMicroseconds(15);
digitalWrite(trig,0);
IntervalTime=pulseIn(echo,HIGH);
int S=IntervalTime/58;
return S;
}
void loop()
{
int S,SL,SR;
int TimerFlag=0;
myservo.write(90);
while(1);
{
if((millis()-TIME_OUT))
}
TimerFlag=1;
}
myservo.write(90);
delay(300);
S= ranging();
Serial.printIn(5);
if(S<=S_LIMIT_3)
back(300)
if(S<=S_LIMIT_1||TimerFlag==1)
{
timer=millis();
TimerFlag=0;
stopMotor();
myservo.write(45);
delay(300);
int SR=ranging();
myservo.write(145);
delay(300);
int SL=ranging();
myservo.write(90);
