mjkdz1 发表于 2019-5-10 22:11:01

LGT8F328 连接HC-SR04测试误差很大有没解决办法

LGT8F328 连接HC-SR04测试误差很大,至少差6CM,手头的US-100HC-SR04 都测试了一样的误差,在UNO上使用就好着,研究了几天了,那位高手也遇到过,分享下原因。

mjkdz1 发表于 2019-5-10 22:15:29

#define trigPin 2
#define echoPin 3
long duration;
int distance;
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600); //
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
delay(50);
}

弘毅 发表于 2019-5-12 12:12:05

你需要外部晶振,内部RC温漂还是很大的。这种超声波场合不适合。

qq.com 发表于 2019-5-12 21:04:50

是数据离散还是值偏差,修正不行吗?超声波测量本身误差大

mjkdz1 发表于 2019-5-12 21:49:31

使用了外部晶振还是一样的效果,外部晶振频率测的是15.984M,内部输出的是16.12M,用了直接补偿,但失败了,主要是每个厘米还都差点,总感觉pulseIn(echoPin, HIGH);可能有误差问题,原版uno测试没出现问题,很精准的,希望大家一起努力解决下,谢谢大家了

弘毅 发表于 2019-5-13 17:14:52

这两天安排同学测一下这个超声波。。。。

yzz163 发表于 2019-10-14 16:18:44

本帖最后由 yzz163 于 2019-10-14 16:28 编辑

看看。。有大佬测试过 LGT比AVR快。。。delayMicroseconds(10); 可能只延时了 7-8.

16MHZ LGT8F328P

delayMicroseconds(100)    : 74.990 us

www.geek-workshop.com/thread-37399-1-2.html

mjkdz1 发表于 2019-11-2 09:48:53

我在研究下不行底层延时我也修改下,谢谢你的回复。

Ansifa 发表于 2019-11-14 10:29:54

换VL53L1X吧,超声波不好玩
页: [1]
查看完整版本: LGT8F328 连接HC-SR04测试误差很大有没解决办法