勿忘~朋友 发表于 2013-10-19 01:47:13

这个程序测远距离就有点问题,我测了一下天花板不行,貌似最远就两米54,看了一下其他的程序可以测到三米

van_wilder 发表于 2013-12-2 21:43:14

请问LZ

if(millis() > timer +500)
{
    lcd.print("Distancce:");
    lcd.setCursor(6,1);
    lcd.print(cm);
    lcd.print("cm");
    lcd.home();
    timer=millis()+500;
}

这里的意思是不是当millis() > timer +500)的时候开始执行下面程序。
当 timer=millis()+500;的时候停止以上程序??

code-AR 发表于 2013-12-3 20:47:14

van_wilder 发表于 2013-12-2 21:43 static/image/common/back.gif
请问LZ

if(millis() > timer +500)


这个代码是表示每一秒更新距离数据。millis() > timer +500,这个是时间判断。

fish6823 发表于 2014-2-17 19:48:58

code-AR 发表于 2013-12-3 20:47 static/image/common/back.gif
这个代码是表示每一秒更新距离数据。millis() > timer +500,这个是时间判断。

楼主,你的代码不大对吧,看红字


int timer=-500;
cm = pulseIn(EchoPin, HIGH) / 58.0;
cm = (int(cm * 100.0)) / 100.0;
delay(500);

if(millis() > timer +500)
{
    lcd.print("Distancce:");
    lcd.setCursor(6,1);
    lcd.print(cm);
    lcd.print("cm");
    lcd.home();
    timer=millis()+500;
}

你每次循环都设timer=-500,那么timer的值永远都不变的,后面那两个根本没用吧,而且你设的延时是500,为什么还要设后面这个时间判断呢?难道是想测两次显示一次吗?

code-AR 发表于 2014-2-18 23:44:43

fish6823 发表于 2014-2-17 19:48 static/image/common/back.gif
楼主,你的代码不大对吧,看红字




好像是有些问题。也是有些久了,没去研究了,谢谢提意见!
页: 1 [2]
查看完整版本: [新人帖]超声波模块+1602信息输出