详解超声波测距模块HC-SR04的使用

1.模块简介

HC-SR04超声波模块常用于机器人避障、物体测距、液位检测、公共安防、停车场检测等场所。HC-SR04超声波模块主要是由两个通用的压电陶瓷超声传感器,并加外围信号处理电路构成的。如图:
详解超声波测距模块HC-SR04的使用_第1张图片
两个压电陶瓷超声传感器,一个用于发出超声波信号,一个用于接收反射回来的超声波信号。由于发出信号和接收信号都比较微弱,所以需要通过外围信号放大器提高发出信号的功率,和将反射回来信号进行放大,以能更稳定地将信号传输给单片机。模块整体电路如图:
详解超声波测距模块HC-SR04的使用_第2张图片

2.模块参数

(1)模块主要电气参数

  1. 使用电压:DC—5V
  2. 静态电流:小于2mA
  3. 电平输出:高5V
  4. 电平输出:底0V
  5. 感应角度:不大于15度
  6. 探测距离:2cm-450cm
  7. 高精度 可达0.2cm

(2)模块引脚
超声波模块有4个引脚,分别为Vcc、 Trig(控制端)、 Echo(接收端)、 GND;其中VCC、GND接上5V电源, Trig(控制端)控制发出的超声波信号,Echo(接收端)接收反射回来的超声波信号。模块如图:
详解超声波测距模块HC-SR04的使用_第3张图片
与单片机的连接如图:详解超声波测距模块HC-SR04的使用_第4张图片
控制原理:通过Trig引脚发一个 10US 以上的高电平,就可以在Echo接收口等待高电平输出;一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了。

3.控制程序

(1)工作流程
a.单片机引脚触发Trig测距,给至少 10us 的高电平信号;
b.模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
c.有信号返回,通过 IO 输出一高电平,并单片机定时器计算高电平持续的时间;
d.超声波从发射到返回的时间.
计算公式:测试距离=(高电平时间*声速(340M/S))/2;

整个控制时序如图:
详解超声波测距模块HC-SR04的使用_第5张图片
(2)驱动程序
1.单片机引脚触发Trig测距,给至少 10us 的高电平信号;

void  StartModule() 		         //启动模块
{
	  TX=1;			                     //启动一次模块
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_();
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_();
	  TX=0;
}

2.自动检测是否有信号返回,如果有,启动定时器;

while(!RX);		//当RX为零时等待
TR0=1;			    //开启计数
while(RX);			//当RX为1计数并等待
TR0=0;				//关闭计数
Conut();			//计算

3.定时器计算高电平持续的时间,并计算出距离;

 void Conut(void)
{
	 time=TH0*256+TL0;
	 TH0=0;
	 TL0=0;	
	 S=(time*1.7)/100;     //算出来是CM
}

更多超声波测距模块HC-SR04设计资料及例程 请关注公众号,首页回复“超声波”获取资料
在这里插入图片描述

你可能感兴趣的:(单片机应用,硬件)