700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > arduino超声波测距接线图详细_Arduino学习笔记A2 - Arduino连接超声波传感器测距

arduino超声波测距接线图详细_Arduino学习笔记A2 - Arduino连接超声波传感器测距

时间:2021-04-13 03:55:27

相关推荐

arduino超声波测距接线图详细_Arduino学习笔记A2 - Arduino连接超声波传感器测距

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);

//第2个超声波

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;

//第3个超声波

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);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。