野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3632|回复: 9

基于霸道开发板的超声波测距

[复制链接]
发表于 2023-5-15 00:47:05 | 显示全部楼层 |阅读模式
本帖最后由 Kerman 于 2023-5-16 13:31 编辑

测距不是很准确,并且不能精确到小数部分,请各位帮忙看看应该怎么改进让它测量更加精确并且能够精确到小数部分,非常感谢!!!!

25_超声波测距.zip

6.33 MB, 下载次数: 15

回复

使用道具 举报

发表于 2023-5-16 15:17:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2023-5-16 16:35:18 | 显示全部楼层
丢失精度
野火论坛202305161635063813..png
回复

使用道具 举报

 楼主| 发表于 2023-5-16 21:14:01 | 显示全部楼层
lrz 发表于 2023-5-16 15:17
参考这个精确的https://blog.csdn.net/weixin_49082066/article/details/120605422和https://www.jianshu.c ...

非常感谢,很有用!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-16 21:15:22 | 显示全部楼层

是因为这个计算导致的计算不精准吗?
回复 支持 反对

使用道具 举报

发表于 2023-5-17 08:46:20 | 显示全部楼层
Kerman 发表于 2023-5-16 21:15
是因为这个计算导致的计算不精准吗?

你是不是小数点后都是0?你定义一个float类型变量去记录下TIM_GetCounter(GENERAL_TIM)的值,记得强转一下。如果你想要验证是不是这个问题,你可以把TIM_GetCounter(GENERAL_TIM) 换成数值((float)107)和 107
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-17 14:17:59 | 显示全部楼层
微信用户-CRxfRw 发表于 2023-5-17 08:46
你是不是小数点后都是0?你定义一个float类型变量去记录下TIM_GetCounter(GENERAL_TIM)的值,记得强转一 ...

确实是打印出来之后小数部分都为0,这下明白了!!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-17 14:29:38 | 显示全部楼层
微信用户-CRxfRw 发表于 2023-5-17 08:46
你是不是小数点后都是0?你定义一个float类型变量去记录下TIM_GetCounter(GENERAL_TIM)的值,记得强转一 ...

现在能打印小数部分了,但是距离依然不精准!!!!
回复 支持 反对

使用道具 举报

发表于 2023-5-17 15:09:36 | 显示全部楼层
Kerman 发表于 2023-5-17 14:29
现在能打印小数部分了,但是距离依然不精准!!!!

距离测量不精准,会有很多问题可以影响到,需要找到误差主要来源。究竟是电路误差,还是你换能器接收端收回的波形数据设置的阀值不合适,是否考虑需要补偿。当然超声波的传播也受到温度影响,也会受到气体流速影响。反正影响测量距离的因素很多。由于我没去仔细盯每一行代码,所以只能在这说说我自己的经验了。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-5-17 15:30:42 | 显示全部楼层
微信用户-CRxfRw 发表于 2023-5-17 15:09
距离测量不精准,会有很多问题可以影响到,需要找到误差主要来源。究竟是电路误差,还是你换能器接收端收 ...

非常感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 07:46 , Processed in 0.031592 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表