从 X 测量值中获取平均值

get mean value from X measurements

我正在尝试对 Mikrocontroller 进行编程以通过超声波传感器自动测量距离并将值上传到 thingSpeak。由于传感器不是很可靠,我正在尝试进行多次测量并上传平均值。 我正在使用 #include <NewPing.h> 库,所以 sonar.ping_cm() 给出了距离。 我的代码如下所示:

#include <ESP8266WiFi.h>
#include <NewPing.h>
void loop() {
float distance_1 = sonar.ping_cm();
delay(50);
float distance_2 = sonar.ping_cm();
delay(50);
float distance_3 = sonar.ping_cm();
mean distance = (distance_1+distance_2+distance_3)/3
upload  to thingSpeak

在不编写 X 行的情况下将此方法扩展到 X 测量的好方法是什么?

X 是在计算平均值之前必须创建多少个测量值的参数。

float getAverage(int X) {
    float out = 0;
    int i = 0;

    for (i = 0; i < X; i++) {
        out += sonar.ping_cm();
    }
    return out / (float)X;
}

for 循环看起来没问题:

void loop(const int x) {
    float distance_1 = 0.0;
    for (int i=0;i<x;i++)
    {
        distance_1 += sonar.ping_cm();
        delay(50);
    }
    mean distance = (distance_1)/x;