用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
你没有清空画面,显示过的位置不清空,那么上次显示的就会一直在。
谢谢,问题已解决,再问你一个问题,这个程序,超声波测出来的距离并不准确好像还差得很远。是什么回事呢,是不是代码有问题呢? 为什么不用标准库文件呢?
Ultrasonic.h
很准的. 超声波测距精度太差,测量时间太久,抖动个一两厘米甚至几厘米很正常。
如果需要精确测量的话,可以淘宝VL53L0X激光测距,2m内精确到厘米甚至毫米级。youtube上面有用来量身高的例子。
页:
[1]