极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2890|回复: 8

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

[复制链接]
发表于 2019-5-10 22:11:01 | 显示全部楼层 |阅读模式
LGT8F328 连接HC-SR04测试误差很大,至少差6CM,手头的US-100  HC-SR04 都测试了一样的误差,在UNO上使用就好着,研究了几天了,那位高手也遇到过,分享下原因。
回复

使用道具 举报

 楼主| 发表于 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温漂还是很大的。这种超声波场合不适合。
回复 支持 反对

使用道具 举报

发表于 2019-5-12 21:04:50 | 显示全部楼层
是数据离散还是值偏差,修正不行吗?超声波测量本身误差大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-12 21:49:31 | 显示全部楼层
使用了外部晶振还是一样的效果,外部晶振频率测的是15.984M,内部输出的是16.12M,用了直接补偿,但失败了,主要是每个厘米还都差点,总感觉pulseIn(echoPin, HIGH);可能有误差问题,原版uno测试没出现问题,很精准的,希望大家一起努力解决下,谢谢大家了
回复 支持 反对

使用道具 举报

发表于 2019-5-13 17:14:52 | 显示全部楼层
这两天安排同学测一下这个超声波。。。。
回复 支持 反对

使用道具 举报

发表于 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
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-2 09:48:53 | 显示全部楼层
我在研究下不行底层延时我也修改下,谢谢你的回复。
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
换VL53L1X吧,超声波不好玩
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-11-18 12:54 , Processed in 0.045662 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表