当前位置:文档之家› 超声波模块程序详解

超声波模块程序详解

int Trigpin = 7; //定义模块触发引脚
int Echopin = 5; //定义模块接收引脚
float Distance; //定义距离变量
void setup()
{
pinMode(Echopin,INPUT) ;
pinMode(Trigpin,OUTPUT);
Serial.begin(9600);//启动串口功能
}
void loop()
{
Distance = Measurement();//调用测量函数,将采得的值给变量Distance
Serial.print(Distance);//在端口输出距离
Serial.println("cm");//输出单位,并换行
delay(2000);
}
float Measurement()
{
float distance;//定义一个局部变量
digitalWrite(Trigpin,LOW); //初始化触发引脚
delayMicroseconds(2);
digitalWrite(Trigpin,HIGH);//给触发引脚一个信号,使模块发出声波
delayMicroseconds(10);
digitalWrite(Trigpin,LOW);//结束声波信号
distance = (pulseIn(Echopin,HIGH)*17)/1000;//计算距离
return distance;//将算得的距离返回给变量distance
}
伺服舵机+超声波模块
#include<Servo.h>
int Trigpin = 7; //定义模块触发引脚
int Echopin = 5; //定义模块接收引脚
float Distance; //定义距离变量
Servo myservo3;
void setup()
{
myservo3.attach(3);
pinMode(Echopin,INPUT) ;
pinMode(Trigpin,OUTPUT);
Serial.begin(9600);//启动串口功能
}
void loop()
{
myservo3.write(0);
delay(2000);
Distance = Measurement();//调用测量函数,将采得的值给变量Distance
Serial.print(Distance);//在端口输出距离
Serial.println("cm");//输出单位,并换行
myservo3.write(90);
delay(2000);
Distance = Measurement();//调用测量函数,将采得的值给变量Distance
Serial.print(Distance);//在端口输出距离
Serial.println("cm");//输出单位,并换行
myservo3.write(178);
delay(2000);
Distance = Measurement();//调用测量函数,将采得的值给变量Distance
Serial.print(Distance);//在端口输出距离
Serial.println("cm");//输出单位,并换行
}
float Measurement()
{
float distance;//定义一个局部变量
digitalWrite(Trigpin,LOW); //初始化触发引脚
delayMicroseconds(2);
digitalWrite(Trigpin,HIGH);//给触发引脚一个信号,使模块发出声波delayMicroseconds(10);
digitalWrite(Trigpin,LOW);//结束声波信号
distance = (pulseIn(Echopin,HIGH)*17)/1000;//计算距离
return distance;//将算得的距离返回给变量distance
}。

相关主题