arduino超声波平滑测距代码
时间: 2024-06-11 15:02:34 浏览: 24
以下是一个Arduino超声波平滑测距的代码,它可以通过多次测量距离并求平均值来减小误差,从而获得更加精确的测量结果:
```
const int trigPin = 9;
const int echoPin = 10;
const int numReadings = 5;
int readings[numReadings]; // 存储多次测量结果的数组
int index = 0; // 数组索引
long total = 0; // 总和
long average = 0; // 平均值
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);
long distance = duration / 58.2;
// 将测量结果存储到数组中
total = total - readings[index];
readings[index] = distance;
total = total + readings[index];
index = (index + 1) % numReadings;
// 计算平均值
average = total / numReadings;
Serial.print("Distance: ");
Serial.print(distance);
Serial.print("cm Average: ");
Serial.println(average);
delay(100);
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)