在Arduino环境下基于ESP32的两个超声波发射模块分别输出自己测量的距离
在Arduino环境下,可以使用ESP32的GPIO引脚来连接超声波发射模块,并通过编程来输出测量的距离。以下是一个示例代码:
#define TRIGGER_PIN1 12
#define ECHO_PIN1 13
#define TRIGGER_PIN2 14
#define ECHO_PIN2 15
void setup() {
Serial.begin(9600);
pinMode(TRIGGER_PIN1, OUTPUT);
pinMode(ECHO_PIN1, INPUT);
pinMode(TRIGGER_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
}
void loop() {
// 发射第一个超声波
digitalWrite(TRIGGER_PIN1, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN1, LOW);
// 接收第一个超声波的反射信号,并计算距离
long duration1 = pulseIn(ECHO_PIN1, HIGH);
float distance1 = duration1 * 0.034 / 2;
// 发射第二个超声波
digitalWrite(TRIGGER_PIN2, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN2, LOW);
// 接收第二个超声波的反射信号,并计算距离
long duration2 = pulseIn(ECHO_PIN2, HIGH);
float distance2 = duration2 * 0.034 / 2;
// 输出距离
Serial.print("Distance 1: ");
Serial.print(distance1);
Serial.println(" cm");
Serial.print("Distance 2: ");
Serial.print(distance2);
Serial.println(" cm");
delay(1000);
}
在上述代码中,定义了两个超声波发射模块的触发引脚和回声引脚,分别为TRIGGER_PIN1、ECHO_PIN1和TRIGGER_PIN2、ECHO_PIN2。在setup()函数中,将这些引脚设置为输出或输入模式。在loop()函数中,先发射第一个超声波,然后通过pulseIn()函数获取超声波的回声信号持续时间,并根据声速计算出距离。然后再发射第二个超声波,获取第二个超声波的回声信号持续时间并计算出距离。最后通过串口输出两个超声波的测量距离,并延时1秒后重复执行
原文地址: http://www.cveoy.top/t/topic/hRn7 著作权归作者所有。请勿转载和采集!