- 方法1: サンプリングと平均値の計算 この方法では、センサーからの複数のサンプル値を取得し、それらの平均値を計算します。
const int sensorPin = A0; // センサーの接続ピン
const int numSamples = 10; // サンプル数
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = 0;
// 複数のサンプル値を取得
for (int i = 0; i < numSamples; i++) {
sensorValue += analogRead(sensorPin);
delay(10);
}
// 平均値を計算
sensorValue /= numSamples;
Serial.print("Average sensor value: ");
Serial.println(sensorValue);
delay(1000);
}
- 方法2: 移動平均法の使用 移動平均法は、直近の一定数のサンプル値の平均を計算する方法です。これにより、ノイズの影響を軽減することができます。
const int sensorPin = A0; // センサーの接続ピン
const int numSamples = 10; // サンプル数
int sensorValues[numSamples];
int currentIndex = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
// センサー値を取得
int sensorValue = analogRead(sensorPin);
// 配列にセンサー値を格納
sensorValues[currentIndex] = sensorValue;
currentIndex = (currentIndex + 1) % numSamples;
// 配列の平均値を計算
int averageValue = 0;
for (int i = 0; i < numSamples; i++) {
averageValue += sensorValues[i];
}
averageValue /= numSamples;
Serial.print("Moving average sensor value: ");
Serial.println(averageValue);
delay(1000);
}
これらの方法を使用して、Arduinoでセンサーの平均値を計算することができます。メインのループ内でセンサー値を取得し、適切な方法を選んで平均値を計算することが重要です。注意点として、サンプル数やディレイの値を調整することで、精度や応答性を調整することができます。