微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 超声波测距数据一闪一闪的

超声波测距数据一闪一闪的

时间:10-02 整理:3721RD 点击:
小弟最近做了一个超声波测距,但是实际测量总,数据总是一闪一闪的,自己找了好几天也找不出原因,希望大家指点一下,谢谢大家了

数据闪是什么意思,你传感器什么型号,把传感器资料发上来,大家帮你看一下

HC-sr04   
  计时测的是距离啊!  就放在那里侧距离,比如距离是20CM,显示的时候就是00.0 但是一会就闪现出20CM ,反正数据就是显示一下 然后就变成零了,随后在显示一下在变为0,是不是跟我自己做的硬件有关系啊

你把检测时间延长。改变一下检测频率,或者再加一个滤波作用在上面,消除漂移。

显示程序的扫描速度有问题。

小编解决没?我最近也在做,也是这个问题~~数据一闪一闪

还没有测量完成你就将要显示的数据删除了

我的不是闪,而是数字乱跳啊!奴知道怎么回事!

没有出现过那种情况啊。

回场是不是受到干扰了?

是不是延时加的太长了

不会吧

延时问题,或者中间的某段函数花费时间太长

我写只是还没有调试

乱跳自然是你接受的部分有干扰啊,机器接收到然后就计算出来实际值,然后显示了! 硬件有问题没处理干净!

用我的也是是HC- SR04模块,1602显示数据。出现了类似的错误,解决不了。代码如下:
#include<reg52.h>
#define uc unsigned char
#define ui unsigned int
unsigned long distance;
sbit rs=P3^5;
sbit wr=P3^6;
sbit en=P3^4;
sbit du=P2^6;
sbit we=P2^7;
sbit echo=P3^2;
sbit trig=P1^7;
uc table1[]="Distance is: ";
uc table2[]="0123456789";
void delay(uc z);
void display();
void init();
void init_1602();
void write_com(uc com);
void write_dat(uc dat);
void delay20us();
void detect();
void main()
{

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top