温度センサと移動平均のアルゴリズム
電子工作とか「つくる」のが好きな人の日々
こんにちは,ニキシー管をArduinoで操作する記事を探していてたどり着きました. 移動平均をとることについてですが, init()にて init() int t = temp_receive(); for(int i=0;i などと,初期化し,loop()は if(cnt == 100) cnt = 0; sum -= temp[cnt]; temp[cnt] = temp_receive(); sum += temp[cnt]; cnt++; average = sum / 100; としてやれば大分高速化できる気がします. あとは,カルマンフィルタなんかを使って平滑化するのも有効かもしれません. 横槍失礼しました.
上の方が書いているように 積算値から一番古い値を引いて新しい値を足していく方式が 計算量が少なくて済みます。 ただし、浮動小数点数では誤差が累積していくためお勧めできません。 Leave a Comment コメントをキャンセルAbout This Site
- Category
- Tag Cloud
- Recent
- Popular
- Updated