51单片机超声波测距数码管显示为什么示数一直不稳定,而且变化幅度好大,感觉有点儿不准?

变化幅度超大
补充一下,我用的不是超声波模块

你有没有做滤波啊?
超声波遇到障碍物会反射,特别是在室内,会多次反射,如果你对发射的频率(只是发射的频率,而非超声波频率)不做限制,前后反射的信号被接收后叠加,自然就会出现你说的那种情况了。
你要做的:
1、对数据做数字滤波,取几次结果,然后抛弃一些不正常的数据(比如取10个值,去两个最大值,两个最小值,剩下6个数取平均值)等等,这样数据会稳定很多。
2、控制发射频率,不要太快,发射的间隔稍微长一些,这样前后信号叠加现象会少很多。
3、加入温度测量,根据温度测量结果,选用当前温度下的声速精确值,提高精度。追问

滤波做了啊,而且还是用的一个比较复杂的,但就是不知道哪儿出问题了

追答

1、你的发射间隔呢?
2、你的发射头跟接收头是不是挨得太近了?发射后直接接收

追问

感觉还是不行啊,发射头和接收头隔的也不是很近

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-13
可能你没有滤波吧,增加滤波功能试下,追问

能具体点儿吗?我是按照下面这个图来连的,请指教

51单片机超声波测距数码管显示为什么示数一直不稳定,而且变化幅度好大...
超声波遇到障碍物会反射,特别是在室内,会多次反射,如果你对发射的频率(只是发射的频率,而非超声波频率)不做限制,前后反射的信号被接收后叠加,自然就会出现你说的那种情况了。你要做的:1、对数据做数字滤波,取几次结果,然后抛弃一些不正常的数据(比如取10个值,去两个最大值,两个最小值...

KST-51单片机超声波测距程序。数码管显示最大9000多!并且数字2会错误显 ...
\/ 程序名称:main.c 程序功能:主程序文件 程序作者:吴鉴鹰 创建时间:2014-3-10 修改时间:程序版本:V0.1 \/ \/ 包含的头文件 \/ include "reg51.h"include "inc\/hc595.h"include "inc\/delay.h"include "intrins.h"\/* 存储待发送的数据 *\/ code unsigned char ucDataOneTab[16] = {0x0...

51单片机控制的超声波测距程序问题,为什么num一直为0
嗯!这个问题是!你的外部中断使用的是外部中断0,而定时器使用的也是0.在51内,外部中断0的优先级是要大于定时器0的。所以在程序的最后是要先执行外部中断0的!然后你的程序就会先进入外部中断服务,然后你在外部中断中又把定时器中断给关闭了!这样你就不会走到定时器中断的服务项中。所以你的num...

高分求51单片机超声波测距避障小车程序(差速转向)设计。(最好能够实...
我也遇到过你这样的问题,主要是电源驱动能力不够,L298把电压拉低,单片机不正常工作,我解决的办法是用一个12V的锂电池,或者多串几个干电池,最起码要10V以上,单独驱动L298模块,控制两个电机,再自制一块小转接板,用7805把12V电压转到5V,控制单片机电路,单片机肯定正常工作,小车跑的那是嗷嗷的 ...

相似回答