Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

Arduinoねた その19 変数

2010-10-14 | Arduinoねた

またまた「Arduinoねた」です。


いろいろなセンサーを接続して実験などしているのですが・・・

センサーの精度が良くなかったり、ふらふらとノイズの影響を受けることがあるので、一定時間ごとに計測した値の最新の4回の平均をとることにしました。

void loop( )

{

  int x,x1,x2,x3,x4;

  x4 = x3;
  x3 = x2;
  x2 = x1;

  x1 = analogRead( OUT ); // センサーの値を取得

  x = ( x1 + x2 + x3 + x4 ) / 4;
}
こんな感じ・・・

そうすると、変数x には、4回の平均値が入る・・・と思ったのですが・・・

凄く小さな値になります。

で、最近やっと覚えた Serial.print( ) で、変数 x2 の値を表示してみると、「0」です。

いつまでも「0」です。


loop( ) のループは、ループの最初に戻ると毎回初期化される・・・ということなんでしょうか?

とりあえず、変数を静的に定義すると

static int x,x1,x2,x3,x4;

やっと、4回の平均値が表示されるようになりました。


イメージ的には・・・

main( )

{

while( true )

   loop( );

}

ということなんですね。


これも、Arduinoの常識なの?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする