写一下超声波测距代码
时间: 2024-08-12 21:02:03 浏览: 32
超声波测距通常涉及到硬件传感器配合编程来计算物体的距离。这里以Arduino Uno平台和HC-SR04超声波模块为例,给出一个简单的测距代码:
```c++
#include <SoftwareSerial.h> // 引入软件串口库
// HC-SR04模块的信号引脚
const int trigPin = 9;
const int echoPin = 10;
SoftwareSerial ultrasonic(9, 10); // 创建软件串口连接
void setup() {
Serial.begin(9600);
ultrasonic.begin(400000); // 设置串口波特率
}
void loop() {
long duration, distance; // 定义距离变量
// 发送触发脉冲
digitalWrite(trigPin, LOW);
delayMicroseconds(2); // 等待下落沿
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // 保持高电平
digitalWrite(trigPin, LOW);
// 接收回声信号,并计算持续时间
while (ultrasonic.available() == 0) {}
duration = pulseIn(echoPin, HIGH); // 回声信号高电平持续时间
// 转换为距离(单位cm)
distance = duration / 58 * 17150;
// 如果超声波未检测到障碍物,距离设为无限大,防止异常
if (distance > 400) {
distance = INFINITY;
}
// 打印测量结果
Serial.print("Distance: ");
Serial.println(distance, DEC);
// 暂停一段时间再进行下一次测量
delay(500);
}
```
这个代码会每秒测量一次距离并打印结果。注意,实际应用中可能需要对数据进行滤波处理以提高精度。