用c++编一个超声波测距2-200m的代码
时间: 2023-06-04 16:03:37 浏览: 173
chaoshengbo.rar_超声波 STC89C52_超声波 测距 c++ 程序
以下是一个基于HC-SR04的超声波传感器的C语言代码,可用于测量2-200米距离:
```c
#include <stdio.h>
#include <wiringPi.h>
#define TRIGGER_PIN 18 //Trigger引脚为wiringPi编码18
#define ECHO_PIN 24 //Echo引脚为wiringPi编码24
int main()
{
wiringPiSetupGpio(); //使用GPIO引脚编号
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
while(1)
{
digitalWrite(TRIGGER_PIN, LOW); //将Trigger引脚先拉低
delayMicroseconds(2); //等待2微秒
digitalWrite(TRIGGER_PIN, HIGH); //将Trigger引脚拉高10微秒
delayMicroseconds(10); //等待10微秒
digitalWrite(TRIGGER_PIN, LOW); //将Trigger引脚再次拉低
while(digitalRead(ECHO_PIN) == LOW); //等待Echo引脚变为高电平
long startTime = micros(); //记录开始时间
while(digitalRead(ECHO_PIN) == HIGH); //等待Echo引脚变为低电平
long endTime = micros(); //记录结束时间
long duration = endTime - startTime; //计算脉冲持续时间,单位为微秒
float distance = duration / 58.0; //将脉冲持续时间转换为距离,单位为厘米
printf("Distance: %0.1f meters\n", distance / 100.0); //将距离转换为米,并输出
delay(1000); //每隔1秒进行一次测量
}
return 0;
}
```
注意事项:
该代码中使用的TRIGGER_PIN和ECHO_PIN是wiringPi库中的引脚编号,与树莓派的物理引脚编号略有不同,需要根据实际情况进行调整。
超声波传感器测量距离的最大范围一般为4米左右,如果要测量更远的距离需要使用其它类型的传感器。
阅读全文