超声波模块(HC_SR04)串口打印距离

本文详细介绍了超声波模块HC-SR04的工作原理及使用方法,通过具体代码实例展示了如何利用该模块进行精确的距离测量,并采用五次循环取平均值的方式提高测量准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 超声波模块

2超声波模块原理

3 结合主要讲解代码

1 实物图

引脚

2超声波模块原理

    我们在初始化 都要 发送和接收端 拉低   首先给输出端 至少 10us的 高电平持续时间  之后要把它拉低    等待输入高电平打开 定时器 计算  高电平持续的时间   最后一步  等待高电平的结束  就把定时器关闭  这时就证明 发送和返回的时间 已经算完了一次   就开始用 计算 距离 

并且注意 高电平持续的时间  并不是定时器直接计算出来的    而是你通过定时器计算过后 要 乘 1000 才是 超声波高电平持续的时间 3 结合代码3 结合代码

 三个公式 

输入的=定时器*1000;  //这个只是返回高电平持续时间的  现在我们还差一个  
(输入+输出)+=定时器的 // 这个才是发送和返回的

距离=(输出+输入)/58

 

3 结合主要代码讲解

	 while(i!=5)
	{
	 hc_sr04_Tirg(1);
	  delay_ms(20);
	 hc_sr04_Tirg(0);
		
	   while(hc_sr04_EchoReceive==0);
		OPEN_TIM5_Counter();
		i++;
		while(hc_sr04_EchoReceive==1);
	     OFF_TIM5_Counter();
		hc_sr04InOuttimes=Get_Echo_Tim();
		hc_sr04lens =((float)hc_sr04InOuttimes/58.0);
	    sum=sum+hc_sr04lens;
	
	
	}
	   hc_sr04lens=sum/5.0;
	  return hc_sr04lens;

 这里采用了五次循环  也就是 让采集 更加准确点  我们 在等待低电平结束 后 开启定时器 

循环变量加一次  等待高电平结束  定时器 关闭  并且 计算 距离   函数是 返回值的 我们直接在 串口打印 距离   

来 我们看看最后结果

  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值