STM32
登录
直播中
李波
7年用户
1441经验值
私信
关注
[问答]
如何利用Trig和Echo引脚去实现HC_SR04超声波测距呢
开启该帖子的消息推送
超声波测距
引脚
定时器
如何利用Trig和Echo引脚去实现HC_SR04超声波测距呢?如何对其进行测试?
回帖
(1)
甘晓茵
2021-12-13 09:41:28
用Trig和Echo引脚实现测距的流程:
1.通过Trig输出一段至少10us的高电平(脉冲),触发一次测距,超声波在传输的过程中Echo一直输出高电平。
2.在Trig脉冲输出后,立即检测Echo引脚的电平,测出Echo高电平持续的时间t,t就是超声波在所测距离一个来回所需时间。
感应角度:不大于15度
探测距离:2cm-450cm
高精度可达0.2cm
利用定时器3的TIM_IT_Update中断来计数,stm32f103时钟是72M, TIM3_Int_Init(1000-1,72-1);//1Mhz的计数频率,1us计数一次,计数到1000为1ms,产生一次溢出中断 ,超声波的速度取344m/s=344mm/ms,具体可更据温度设置,以毫秒为单位乘以速度,当前counter值补足1ms时,把us换算成ms:如图
计数距离就是用上面的函数得到来回时间(ms为单位),除以2得到单程时间,再乘以速度344mm/ms,得到距离ms为单位)
2种处理数据的方法(前面两个函数实质一样)
GetLength_Hc()
GetLength2_Hc()
GetLength3_Hc()
测试实验:1,当使用GetLength_Hc()获取长度,
求和再取平均
串口现象:第一个值刚开始测距,不准确,理所应当
2,当使用GetLength2_Hc()获取长度,
实际和1一样,求和再取平均
串口现象:
3,当使用GetLength3_Hc()获取长度,
去掉最大最小,剩下的取平均
串口现象:
结论:最后的算法更接近真实距离。
距离大概是272-278mm,可能由于单手改代码测试,另一种手抖也造成了稍微移动,误差多少?起始距离在哪?我也不知道咋参考,请读者赐教,需要源文件的可以私信。
编程犯的几个错误:
1,比较大小时,采用min=0去比较大小,正数都比0大,请问谁能抢到min这个宝座??
2,double GetLength3_Hc(void)函数中,计算平均值时,忘了打括号写成average=sum/N-2,正确应为average=sum/(N-2);
用Trig和Echo引脚实现测距的流程:
1.通过Trig输出一段至少10us的高电平(脉冲),触发一次测距,超声波在传输的过程中Echo一直输出高电平。
2.在Trig脉冲输出后,立即检测Echo引脚的电平,测出Echo高电平持续的时间t,t就是超声波在所测距离一个来回所需时间。
感应角度:不大于15度
探测距离:2cm-450cm
高精度可达0.2cm
利用定时器3的TIM_IT_Update中断来计数,stm32f103时钟是72M, TIM3_Int_Init(1000-1,72-1);//1Mhz的计数频率,1us计数一次,计数到1000为1ms,产生一次溢出中断 ,超声波的速度取344m/s=344mm/ms,具体可更据温度设置,以毫秒为单位乘以速度,当前counter值补足1ms时,把us换算成ms:如图
计数距离就是用上面的函数得到来回时间(ms为单位),除以2得到单程时间,再乘以速度344mm/ms,得到距离ms为单位)
2种处理数据的方法(前面两个函数实质一样)
GetLength_Hc()
GetLength2_Hc()
GetLength3_Hc()
测试实验:1,当使用GetLength_Hc()获取长度,
求和再取平均
串口现象:第一个值刚开始测距,不准确,理所应当
2,当使用GetLength2_Hc()获取长度,
实际和1一样,求和再取平均
串口现象:
3,当使用GetLength3_Hc()获取长度,
去掉最大最小,剩下的取平均
串口现象:
结论:最后的算法更接近真实距离。
距离大概是272-278mm,可能由于单手改代码测试,另一种手抖也造成了稍微移动,误差多少?起始距离在哪?我也不知道咋参考,请读者赐教,需要源文件的可以私信。
编程犯的几个错误:
1,比较大小时,采用min=0去比较大小,正数都比0大,请问谁能抢到min这个宝座??
2,double GetLength3_Hc(void)函数中,计算平均值时,忘了打括号写成average=sum/N-2,正确应为average=sum/(N-2);
举报
更多回帖
rotate(-90deg);
回复
相关问答
超声波测距
引脚
定时器
如何
利用
HC-SR04
超声波
测距
模块
去
实现
精确的直线
测距
呢
2021-10-20
1505
有哪几种方法
去
实现
HC-SR04
超声波
测距
呢
2021-12-01
945
如何
利用
现成的SysTick
去
实现
HC-sr04
超声波
测距
呢
2021-12-02
1351
如何
去
编写
HC-SR04
超声波
测距
模块的驱动程序
呢
2021-12-15
1261
如何通过
HC-SR04
超声波
模块
去
实现
测距
功能
呢
2021-12-13
2533
如何对
超声波
测距
HC-SR04
进行测试
呢
2021-11-16
942
HC-SR04
和51单片机是如何
实现
超声波
测距
的
2021-10-20
2147
如何对基于STM32F103VET6的
超声波
传感器
HC-SR04
进行
测距
呢
2021-11-09
1800
基于stm32的
HC-SR04
超声波
测距
模块怎么使用?
2021-11-25
1590
如何用STM32F103ZET6和
HC-SR04
超声波
测距
模块给直升机航模测高度
呢
2021-12-01
1493
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分