int inputPin=2;
int outputPin=3;
//
int inputPin1=12;
int outputPin1=13;
int inputPin2=0;
int outputPin2=1;
///
int distance;
int distance1;
int distance2;
void setup()
{
Serial.begin(9600);
///第一超声波
pinMode(inputPin,INPUT);
pinMode(outputPin,OUTPUT);
//第二超声波
pinMode(inputPin1,INPUT);
pinMode(outputPin1,OUTPUT);
//
pinMode(inputPin2,INPUT);
pinMode(outputPin2,OUTPUT);
///小车运动
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(11,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop()
{
///第一超声波
digitalWrite(outputPin,LOW);
delayMicroseconds(2);
digitalWrite(outputPin,HIGH);
delayMicroseconds(10);
int distance=pulseIn(inputPin,HIGH);
distance=distance/58;
//第二个超声波
digitalWrite(outputPin1,LOW);
delayMicroseconds(2);
digitalWrite(outputPin1,HIGH);
delayMicroseconds(10);
distance1=pulseIn(inputPin1,HIGH);
distance1=distance1/58;
//第三超声波
digitalWrite(outputPin2,LOW);
delayMicroseconds(2);
digitalWrite(outputPin2,HIGH);
delayMicroseconds(10);
distance2=pulseIn(inputPin2,HIGH);
distance2=distance2/58;
//
//Serial.print("distance = ");
//Serial.println(distance);
//
Serial.print(",distance = ");
Serial.println(distance1);
//
Serial.print(",distance = ");
Serial.println(distance2);
Goahead();
delay(20);
if( distance >= 50)
{
// digitalWrite(ledpin,HIGH);
// delay(100);
Goahead();
}
else
{
// digitalWrite(ledpin,LOW);
//delay(100);
Turn_left();
}
if( distance1 >= 50 )
{
// digitalWrite(ledpin,HIGH);
// delay(100);
// Goahead();
}
else
{
// digitalWrite(ledpin,LOW);
//delay(100);
//Stop();
Turn_right();
}
if( distance2 >= 50)
{
// digitalWrite(ledpin,HIGH);
// delay(100);
Goahead();
}
else
{
// digitalWrite(ledpin,LOW);
//delay(100);
Stop();
}
}
///
void Goahead()
{
analogWrite(5,145);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
analogWrite(11,160);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
}
void Stop()//停止程序
{
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}
void Turn_right()///右转
{
analogWrite(5,165);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
analogWrite(11,140);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
}
void Turn_left()
{
analogWrite(5,165);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
analogWrite(11,160);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
}