首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于HC-SR04的测距能力

关于HC-SR04的测距能力
EN

Stack Overflow用户
提问于 2019-11-15 10:57:21
回答 1查看 33关注 0票数 0

我目前正在使用HC-SR04超声波传感器测量传感器到表面的距离。

问题是来自传感器的结果值既不一致,也不准确。

我读到HC-SR04的最大读数范围可达400厘米。

我目前的情况是,传感器可以合理地测量到20厘米,但当它超过这个高度时,它很快就会失效。

例如,传感器和表面之间的距离大约是170厘米,但是传感器说它大约是50厘米。

以下是引脚的连接方式。

HC-SR04-Arduino。

Trig调到13

回声到12

Vcc至5V

GND到GND

以下是我为Arduino编写的代码。

代码语言:javascript
复制
#define echoPin1 12
#define trigPin1 13

float duration;
float distance1_1;

void setup()
{
    pinMode (echoPin1, INPUT);
    pinMode (trigPin1, OUTPUT);
    digitalWrite(trigPin1, LOW);

    Serial.begin (9600);
    Serial.println("Program Begins");
}

void loop()
{
    DIST();
    delay (1000);
}

void DIST()
{
    digitalWrite(trigPin1, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin1, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin1, LOW);
    duration=pulseIn(echoPin1, HIGH);
    distance1_1=(duration*0.0343)/2;
    Serial.println("Distance")
    Serial.println(distance1_1);
}  
EN

回答 1

Stack Overflow用户

发布于 2019-11-15 12:45:44

  1. 尝试使用不同的Arduino引脚来连接回声引脚和触发引脚。Arduino的引脚13连接到发光二极管,在某些Arduino型号/修订版上使用pin13作为超声波传感器时,有一些问题的报告。因此,首先尝试更换引脚。
  2. 接下来,尝试备用传感器(如果可用),查看结果是否一致。有时问题出在损坏的超声波传感器上。
  3. 此外,我们还需要知道确切的硬件设置,即如何安装传感器。可能会有来自附近对象的杂散反射,因此在挂载sensor.
  4. Finally,时需要小心,pulseIn的返回类型是unsigned long。因此,您应该将pulseIn中的值存储为long数据类型,而不是浮点型。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58869703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档