在Arduino中使用超声波传感器进行距离测量的问题,可以通过以下代码示例解决:
// 定义超声波传感器的引脚
const int trigPin = 9;
const int echoPin = 10;
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 设置超声波传感器引脚模式
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// 发送超声波信号
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 读取超声波传感器返回的脉冲宽度
long duration = pulseIn(echoPin, HIGH);
// 将脉冲宽度转换为距离
// 声音的传播速度为 340m/s,所以距离 = 时间 * 340 / 2
int distance = duration * 340 / (2 * 10000);
// 输出距离到串口监视器
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// 等待一段时间后再次测量
delay(1000);
}
这段代码首先定义了超声波传感器的引脚,并在setup()
函数中进行了初始化。然后,在loop()
函数中,通过设置trigPin
引脚发送超声波信号,并通过echoPin
引脚读取返回的脉冲宽度。最后,将脉冲宽度转换为距离,并将结果输出到串口监视器。在每次测量之后,通过delay()
函数等待一段时间再次测量。