基于单片机的超声波测距代码生成
时间: 2024-09-15 17:05:03 浏览: 33
基于单片机的超声波测距通常使用的是超声波传感器模块,如HC-SR04或US000系列。以下是基本的Arduino Uno或类似单片机平台的一个简化版超声波测距代码示例:
```c++
#include <SoftwareSerial.h> // 如果你的传感器通过串口连接
#define trigPin 9 // Trig信号引脚
#define echoPin 10 // Echo信号引脚
SoftwareSerial ultrasonic(9, 10); // 创建软件串口对象
void setup() {
Serial.begin(9600);
ultrasonic.begin(9600); // 设置超声波模块通信速率
}
void loop() {
long duration, distance; // 定义距离变量
float speed = 343; // 空气中声速,单位:米每秒
// 发送触发脉冲
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 接收回音,并计算时间差
pinMode(echoPin, INPUT);
while (ultrasonic.available() == 0) {} // 等待数据传输完成
duration = pulseIn(echoPin, HIGH); // 获取回声持续时间
// 计算距离
distance = duration * speed / 2;
// 距离转换为厘米并打印结果
distance /= 100;
Serial.print("Distance: ");
Serial.println(distance, 2) + " cm"; // 保留两位小数
// 延迟一定时间防止连续测量干扰
delay(50);
}
```