一、产品特点:


HY-SRF05 超声波测距模块在单片机项目还是毕业设计中是比较常用的一个传感器,成本低精度高性价比是很高的,可提供2cm-450cm 的非接触式距离感测功能,
测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。

二、使用案例

使用超声波测距传感器sr04/srf05,搭配stm32单片机制作,测量障碍物距离

使用0.96oled显示实时距离,

 蜂鸣器和led灯在不同距离进行不用频率和亮度的闪烁。距离远慢闪,距离越近闪烁越快 。

完整程序代码可在百度网盘下载:

下载链接icon-default.png?t=O83Ahttps://pan.baidu.com/s/1W_sRHmMzod3TQ4X8S7o6Dw?pwd=ye1s


三、基本工作原理:

1、基本工作原理


(1)采用IO口TRIG触发测距,给至少10us的高电平信号;


(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;


(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声
波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

2、引脚定义

3、电气特性

四、超声波时序

以上时序显示只需要提供一个10uS以上脉冲触发信号,srf05超声波测距模块内部将发出8个40kHz

周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离

成正比。由此通过 发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者

uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;


建议测量周期为60ms以上,以防止发射信号对回响信号的影响。

五、proteus仿真

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Ultrasound.h"
#include "LEDBuzzer.h"
#include "OLED.h"


uint16_t a;  						//定义变量,存放距离			

int main(void)
{ 	
	/*模块初始化*/
	
	Ultrasound_Init();				//超声波初始化
	LEDBuzzer_Init();				//蜂鸣器LED初始化
	OLED_Init();					//OLED初始化
	
	
	/*显示静态字符串*/
	OLED_ShowString(1,1,"Distance:");
	OLED_ShowString(2,4,"cm");
	
	while (1)
	{   		
		a = Test_Distance();       //超声波测得的距离存在变量a
		OLED_ShowNum(2,1,a,3);		//oled显示距离的值
				
		if(a>20&&a<=30)				//判断距离值范围
			{
				LEDBuzzer_ON();		//LED慢闪烁,蜂鸣器慢响
				Delay_ms(100);
				LEDBuzzer_OFF();
				Delay_ms(50);
			}
		if(a>10&&a<=20)				//判断距离值范围
			{
				LEDBuzzer_ON();		//LED快闪烁,蜂鸣器快响
				Delay_ms(60);
				LEDBuzzer_OFF();
				Delay_ms(10);				
			}
			if(a>5&&a<=10)			//判断距离值范围
			{
				LEDBuzzer_ON();		//LED最快闪烁,蜂鸣器最快响
				Delay_ms(30);
				LEDBuzzer_OFF();
				Delay_ms(10);				
			}
			if(a>30) LEDBuzzer_OFF();	//判断距离值范围大于30,蜂鸣器LED不闪
	}
}



六、资料内容清单

百度网盘资料下载链接icon-default.png?t=O83Ahttps://pan.baidu.com/s/1W_sRHmMzod3TQ4X8S7o6Dw?pwd=ye1s

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐