Arduinoでセンサの値を読み取るとき、ノイズが多くて困る場合があります。そんなときにつかえるプログラムでのノイズ対策をまとめます。なんか、たくさんあって面倒だという人は、とりあえずRCフィルタやっとけば大丈夫でしょう。 目次 [移動平均フィルタ] [RCフィルタ] [メディアンフィルタ] 移動平均フィルタ 出力値 = (センサの値 + 前回のセンサ値 + 前々回のセンサ値 + ...) / 標本数 算術平均を取ることでノイズを除去します。直感的でわかりやすい方法です。 #define n 10 //標本数を決める int f[n]={0}; float ave = 0; //平均値を入れる変数 void setup(){ Serial.begin(9600); //9600bpsでシリアルポートを開く } void loop(){ for(int i=n-1;i>0;i--) f[i]