一、器件介绍
(1)器件名称:
HC-SR04超声波测距模块
(2)主要技术参数:
1、使用电压:DC5V;
2、静态电流:小于2mA;
3、电平输出:高5V;
4、电平输出:底0V;
5、感应角度:不大于15度;
6、探测距离:2cm-450cm
7:高精度可达0.2cm;
7、接线方式,VCC、trig(控制端)、echo(接收端)、GND。
(3)工作原理:
1、采用IO触发测距,给至少10us的高电平信号;
2、模块自动发送8个40khz的方波,自动检测是否有信号返回;
3、有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时
间。测试距离=(高电平时间*声速(340M/S))/2。
超声波传感器主要利用多普勒原理,通过晶振向外发射超过人体能感知的高频超声波,
一般典型的选用25~40kHz波,然后控制模块检测反射回来波的频率,如果区域内有物体运动,反射波频率就会有轻微的波动,即多普勒效应,以此来判断照明区域的物体移动,从而达到控制开关的目的。
超声波的纵向振荡特性,可以在气体、液体及固体中传播且其传播速度不同;它还有折射和反射现象,在空气中传播其频率较低,衰减较快,而在固体、液体中则衰减较小,传播较远。超声波传感器正是利用超声波的这些特性。超声波传感器有敏感范围大,无视觉盲区,不受障碍物干扰等特点,这项技术已经在商业和安全领域被使用25年多了,已经被证明是检测小物体运动最有效的方法。
ULTD5N-350超声波测距模块,可提供3cm--3.5m的非接触式距离感测功能,该模块包括了超声波发射器、接收器与控制电路。其基本工作原理为给予此超声波测距模块一触发信号后发射超声波,当超声波投射到物体而反射回来时,模块输出一回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。
(4)应用产品领域:
飞行器测距、机器人避障、公共安防、停车场检测等。
(5)管脚图:
二、测试实验
(1)实验目的:
运用超声波测距模块实行简单测距。
(2)线路连接(理论):
(3)线路连接(实际):
暂缺
(4)运行代码:
const int echopin=3; // echo接3端口
const int trigpin=2; // trig接2端口
int led = 10; // led灯接10端口
void setup()
{
Serial.begin(9600);
pinMode(echopin,INPUT); //设定echo为输入模式
pinMode(trigpin,OUTPUT);//设定trig为输出模式
pinMode(led,OUTPUT);//设定led为输出模式
}
void loop()
{
digitalWrite(trigpin,LOW);
delayMicroseconds(2);
digitalWrite(trigpin,HIGH);
delayMicroseconds(10);
digitalWrite(trigpin,LOW);
//发一个10ms的高脉冲去触发TrigPin
float distance =
pulseIn(echopin,HIGH);//接收高电平时间
distance = distance/58.0;//计算距离
Serial.print(distance);
//输出距离
Serial.println(“cm”);
//输出单位
delay(60);
//循环间隔60uS
}
(5)操作过程中出现的问题及解决方案:
1、Arduino Uno上的指示灯无法正常闪烁,原因:代码出现问题,重新寻找代码;
2、Arduino代码无法编译,原因:代码出现问题,目前能力无法对此进行更改,所
以重新寻找代码;
3、采集信号时出现负值现象,原因:障碍物与模块距离过近或者采集信号频率过高;
三、拓展型实验:
(1)实验目的:
当超声波测距模块前10cm内有障碍物时,LED能持续发光。
(2)线路连接(理论):
(3)线路连接(实际):
(4)运行代码:
const int echopin=3; // echo接3端口
const int trigpin=2; // trig接2端口
int led = 10; // led灯接10端口
void setup()
{
Serial.begin(9600);
pinMode(echopin,INPUT); //设定echo为输入模式
pinMode(trigpin,OUTPUT);//设定trig为输出模式
pinMode(led,OUTPUT);//设定led为输出模式
}
void loop()
{
digitalWrite(trigpin,LOW);
delayMicroseconds(2);
digitalWrite(trigpin,HIGH);
delayMicroseconds(10);
digitalWrite(trigpin,LOW);
//发一个10ms的高脉冲去触发TrigPin
float distance =
pulseIn(echopin,HIGH);//接收高电平时间
distance = distance/58.0;//计算距离
Serial.print(distance);
//输出距离
Serial.println(“cm”);
//输出单位
if(distance<10)
{digitalWrite(led,HIGH);}
else{digitalWrite(led,LOW);}//距离小于10cm时,led写入高电平
delay(60);
//循环间隔60uS
}
(5)测试结果图:
(6)操作过程中出现的问题及解决方案:
暂未出现问题。
(7)时序波形图:
(8)时序图解释:
从上面的模块时序图可以看出,只需要提供一个短期的10uS脉冲触发信号,超声波即可进行距离测量工作。
该模块被触发后,超声波发射头将发出8个40kHz周期电平,同时检测回波。一旦检测到有回波信号则输出回响信号。
回响信号是一个脉冲的宽度成正比的距离对象。可通过发射信号到收到的回响信号时间间隔可以计算得到距离。
公式: uS/58=厘米;或者uS/148=英寸。
建议测量周期为60ms 以上,以防止发射信号对回响信号的影响。
资料整理人:邓晨涛
实验测试者:邓晨涛,林峻民,彭帆,张世琳(按姓氏首字母排列)
|