arduino - Arduino,HC SR-04 距离传感器输出错误
问题描述
我的名字是 Dmitrij,我想将 HC-SR04 连接到 Arduino,以便测量距离。问题是传感器连续发送 4-5 个正确结果,然后连续发送 5-6 个错误结果。
我试图更换 Arduino 和它没有帮助的传感器。最后,当我写这篇文章时,我有点解决了这个问题。在我将传感器连接到 Arduino 5V 后,传感器从外部电源模块 ( https://i.imgur.com/Zjg22ka.png )获得 5 伏电压,一切正常。有没有办法以某种方式解决这个问题?
int echo = 8;
int trig = 9;
float duration, distance;
void setup() {
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
Serial.begin (9600);
}
void loop() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration / 2) * 0.0344;
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
那是传感器对准墙壁时的输出。实际距离约为 15-16 厘米,我不明白为什么它还会输出其他东西。
Distance = 15.70 cm
Distance = 15.70 cm
Distance = 15.65 cm
Distance = 15.70 cm
Distance = 3.92 cm
Distance = 2.25 cm
Distance = 1.67 cm
Distance = 0.48 cm
Distance = 0.55 cm
Distance = 6.73 cm
Distance = 15.65 cm
Distance = 15.65 cm
Distance = 15.65 cm
Distance = 15.65 cm
Distance = 4.11 cm
Distance = 2.27 cm
Distance = 1.50 cm
Distance = 0.50 cm
Distance = 0.50 cm
Distance = 6.33 cm
等等。
解决方案
推荐阅读
- java - 使用 OWL API 提取本体命名空间/前缀
- swift - 如何在没有 Segue 的情况下更新另一个 View Controller 中的数据(SideMenu)
- python - 在python中从字符串中选择和存储数据
- database - sqflite中db.insert的返回值?
- java - Java - If 语句返回 false
- python - 将缺少部分的部分 H:M:S 持续时间转换为秒;或右对齐非 NA 数据
- f# - Bolero 日期时间绑定
- pybullet - PyBullet - 如何设置机器人关节的全局坐标?
- algorithm - 通过从整数列表中添加最少数量的元素来获取整数
- python - While 循环的第二次迭代会产生错误