正しくない:これは、異なる種類のセンサを説明するために、起動時にアナログ値をベースラインに行われArduinoのループの更新がある私は、セットアップ()関数に次のコードスニペットを持って
...
unsigned int a0val;
unsigned int a0total = 0;
...
for (i = 0; i < 1000; i++) {
a0val = analogRead(A0);
Serial.println(a0val);
a0total += a0val;
}
Serial.println(a0total);
...
使用されています。 1つのタイプは0を読み取り、別のタイプはゼロ以外の値を読み取ることがあります。始動時に平均して1000回の読み値で始点参照を行うことがポイントです。 1000は明らかに過度のものです、私は後で元に戻すでしょう。
ここでは、1000の読み取り値が128と130の間のどこかで、私はa0totalが約129,000になると予想しています。しかし、1つの例で63,722のように、その数の半分以下が一貫して出てきます。それは半分ではない、それよりも小さい。
もう1つの例:350-352の周りにあるときに最初の500回の読みを合計し、合計が43614になったときです。ラップアラウンドのように見えますが、両方の値にunsigned intを使用しています。起こることはできません。
私にとっては、 "a0total + = a0val"はすべてのループを更新していないようですが、それは意味がありません。
私には何が欠けていますか?
おかげで、 ロン