超声波测距的c语言代码
时间: 2023-09-24 22:12:00 浏览: 120
当然,下面是一个使用C语言编写的超声波测距代码示例:
```c
#include <stdio.h>
#include <wiringPi.h>
#define TRIG_PIN 4
#define ECHO_PIN 5
int main(void) {
wiringPiSetup();
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
while (1) {
// 发送超声波信号
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// 接收超声波回波
while (digitalRead(ECHO_PIN) == LOW);
long startTime = micros();
while (digitalRead(ECHO_PIN) == HIGH);
long endTime = micros();
// 计算距离
long travelTime = endTime - startTime;
float distance = travelTime / 58.0;
printf("Distance: %.2f cm\n", distance);
delay(1000); // 1秒延迟
}
return 0;
}
```
这段代码使用了wiringPi库来进行GPIO控制。其中,TRIG_PIN和ECHO_PIN分别为超声波传感器的触发引脚和回波引脚。代码通过发送触发信号并计算回波时间来测量距离,并将结果打印出来。
请注意,具体的引脚号可能需要根据你的硬件连接进行调整。此外,为了正确运行代码,你需要在编译时链接wiringPi库,可以使用如下命令进行编译:
```
gcc -o ultrasonic ultrasonic.c -lwiringPi
```
希望这能帮到你!如果有任何问题,请随时向我提问。
阅读全文