会飞的狼之华仔 发表于 2017-4-28 23:48:14

用SRO4超声波+1602 测量距离时最后多了两个“mm”这是为什么呢

用SRO4超声波+1602   测量距离时最后多了两个“mm”这是为什么呢?还有就是距离感觉不准确应该如何做修改?




我的程序如下:

#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int TringPin=A1;
int EchoPin=A0;
float distance;
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
pinMode(TringPin,OUTPUT);
pinMode(EchoPin,INPUT);

}

void loop() {
    digitalWrite(TringPin,LOW);
    delayMicroseconds(5);
    digitalWrite(TringPin,HIGH);
    delayMicroseconds(10);
    digitalWrite(TringPin,LOW);
    distance=pulseIn(EchoPin,HIGH)/58.00;      // 检测脉冲宽度,并计算出距离
   
    lcd.setCursor(0,0);               //设置光标位置
    lcd.print(distance);
    lcd.print("cm");
   
    delay(1000);

}

弘毅 发表于 2017-4-29 09:59:16

你没有清空画面,显示过的位置不清空,那么上次显示的就会一直在。

会飞的狼之华仔 发表于 2017-4-30 22:34:56

弘毅 发表于 2017-4-29 09:59
你没有清空画面,显示过的位置不清空,那么上次显示的就会一直在。

谢谢,问题已解决,再问你一个问题,这个程序,超声波测出来的距离并不准确好像还差得很远。是什么回事呢,是不是代码有问题呢?

数字 发表于 2017-5-5 15:04:32

为什么不用标准库文件呢?
Ultrasonic.h
很准的.

Ansifa 发表于 2017-5-7 00:09:16

超声波测距精度太差,测量时间太久,抖动个一两厘米甚至几厘米很正常。
如果需要精确测量的话,可以淘宝VL53L0X激光测距,2m内精确到厘米甚至毫米级。youtube上面有用来量身高的例子。
页: [1]
查看完整版本: 用SRO4超声波+1602 测量距离时最后多了两个“mm”这是为什么呢