这段代码是使用超声波传感器测量距离的代码。
我们使用了HC-SR04超声波传感器,它有两个引脚,一个是trigPin,一个是echoPin。
在setup函数中,我们将trigPin设置为输出,echoPin设置为输入,并通过Serial.begin(9600)初始化串口通信。
在loop函数中,我们首先将trigPin设置为低电平,延迟2微秒,然后将trigPin设置为高电平,延迟10微秒,最后将trigPin再次设置为低电平。
这个过程会发送一个8个周期的40kHz的超声波脉冲。当这个脉冲被发送后,我们使用pulseIn函数来测量echoPin引脚上的高电平持续时间,这个时间就是超声波从传感器发出到返回的时间。
我们将这个时间乘以声速的一半(即0.034cm/微秒)就可以得到距离。最后,我们通过串口输出距离,并延迟500毫秒。
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);
float distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
delay(500);
}