1.概述
这是一个常用的超声波传感器,它可以检测前方是否存在障碍物,并且检测出传感器与障碍物的详细距离。它的原理和蝙蝠飞行的原理一样,就是超声波模块发送出一种频率很高,人体无法听到的超声波信号。这些超声波的信号若是碰到障碍物,就会立刻反射回来,在接收到返回的信息之后,通过判断发射信号和接收信号的时间差,计算出传感器和障碍物的距离。
为了方面接线,我们还配送1根4pin线,线的一端为白色防反插接口(和传感器上防反插白色端子匹配),另一端为4pin杜邦线母头接口。
传感器兼容各种单片机控制板,如arduino系列单片机。使用时,我们可以在单片机上堆叠一个传感器扩展板。传感器和自带导线连接,然后连接在传感器扩展板上,简单方便。同时,传感器自带4个直径为2mm的定位孔,方便你将传感器固定在其他设备。
2.规格参数
导线长度:200mm
工作电压:DC 5V
工作电流:15mA
工作频率:40khz
最大探测距离:3-4m
最小探测距离:2cm
感应角度:不大于15度
高精度:可达3mm
接口:间距为2.54mm 4pin防反接口
定位孔大小:直径为2mm
尺寸:45*26*15mm
重量:8.7g
3.连接图
4.测试代码
#define echoPin 13 // Echo Pin
#define trigPin 12 // Trigger Pin
int maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration/58.2;
if (distance >= maximumRange || distance <= minimumRange){
Serial.println(“-1”);
}
else {
Serial.print(“Distance:”);
Serial.print(distance);
Serial.println(” cm”);
}
//Delay 50ms before next reading.
delay(50);
}
5.代码设置原理:
1)采用IO触发测距,给至少10us的高电平信号;就是先给这个Trip 拉低电平,再给个10us的高电平信号。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是
超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;
距离公式:测试距离=(高电平时间/58.2)(厘米);
6.测试结果
烧录好测试代码,按照接线图连接好线;利用USB接口上电后,进入串口监视器,设置波特率为9600。即可看到超声波传感器和前方障碍物之间的距离,单位为cm,显示如下图。