两个HC-SR04超声波传感器进行延时测距,交替采集信号的代码
时间: 2024-03-23 14:38:41 浏览: 142
带有HC-SR04的超声波传感器阵列,原理图和源码-电路方案
5星 · 资源好评率100%
以下是使用两个HC-SR04超声波传感器进行延时测距,交替采集信号的Arduino代码:
```c++
#define trigPin1 2
#define echoPin1 3
#define trigPin2 4
#define echoPin2 5
void setup() {
Serial.begin(9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
}
void loop() {
float duration1, distance1, duration2, distance2;
// 第一个传感器测距
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = duration1 * 0.034 / 2;
// 第二个传感器测距
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2 = duration2 * 0.034 / 2;
// 输出距离结果
Serial.print("Distance 1: ");
Serial.print(distance1);
Serial.print(" cm\tDistance 2: ");
Serial.print(distance2);
Serial.println(" cm");
// 等待一段时间后再次进行测距
delay(1000);
}
```
该代码使用了两个超声波传感器进行测距,每次循环中交替采集信号并输出测距结果。其中,`trigPin1`和`echoPin1`分别对应第一个传感器的引脚,`trigPin2`和`echoPin2`分别对应第二个传感器的引脚。在每次进行测距前,需要先向传感器发送一个短暂的触发信号,然后等待传感器返回的响应信号。通过测量响应信号的持续时间,可以计算出物体与传感器之间的距离。最后,为了避免频繁测距,循环中加入了一定的延时时间。
阅读全文