从 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;
我正在尝试对 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;