请给出使用ESP32芯片和超声波传感器测距的代码
时间: 2024-03-26 10:35:38 浏览: 13
以下是使用ESP32和超声波传感器测距的基本代码示例:
```c
#define trigPin 4
#define echoPin 5
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// 发送一个 10 微秒的高电平脉冲来触发超声波测距模块
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 读取返回的脉冲宽度并计算距离
long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
// 输出距离到串口监视器
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
```
代码中使用 `pulseIn()` 函数读取超声波传感器返回的脉冲宽度,然后根据声音在空气中的传播速度计算出距离。最后将距离输出到串口监视器中。注意,在使用超声波传感器时,需要注意触发信号和回波信号之间的时间间隔不能太短,否则会出现干扰。在本例中,使用 `delayMicroseconds()` 函数来控制触发信号的时间间隔。