====== analogRead2Avgf() ====== ''analogRead2Avgf()''は4~20mA入力値の実数平均を返します。 {{:ja-jp_commands:reference:analogread2avgf.svg?900|analogRead2Avgf コマンドの動作フロー}} ''float analogRead2Avgf(uint8_t ch, uint8_t samples)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''analogRead2Avgf(ch, samples)'' | ''uint8_t ch'' — MPINOは''A0''などのアナログピン、MPAINOは''0''から始まる全モジュールのチャネル番号\\ ''uint8_t samples'' — 読み取り移動平均サンプル数。最大''20''個まで適用 | ''float'' | 4~20mA入力値の実数平均を返します。 | ===== 使用例 ===== MPAINO-8A8R(T)にX入力モジュールを接続し、**Analog Input Module → X**を選択します。CH0のDIPスイッチは20mAとGNDをONにし、4~20mA信号を接続します。 void setup() { Serial.begin(115200); } void loop() { const float value = analogRead2Avgf(0, 5); // 直近の正常な補正値を最大5件使い、実数の移動平均を読み取ります。 if (value == (float)ANALOG_READ2_AVG_ERROR) { Serial.println(F("4-20mA input error")); } else { Serial.println(value, 2); } delay(500); } ===== 注意事項 ===== * MPAINO XモジュールCH0のDIPスイッチは20mAとGNDをONにし、電流入力の極性に合わせて配線してください。 * 約3.6~4.0mAの入力は正常値''0''を返し、3.6mA未満はエラー値を返します。 * エラー値は断線判定を補助する基準です。最終的な警報と安全動作はユーザーがプログラムで実装してください。 * ''IanalogRead2()''と''IanalogRead2f()''も、エラー時はユーザー範囲の値ではなく''65535''を返します。結果を使う前にエラーを確認してください。 * ''IanalogRead2()''の''min~max''には''int32_t''の全範囲を使用できますが、正常範囲に''65535''を含めるとエラー値と区別できません。 * ''analogRead2Avgf()''は''analogRead2Avg()''とは別の状態・バッファを使用します。両方を使うとSRAM使用量が増加します。 * ''analogRead2Avgf()''の''samples''が''0''、またはメモリ確保に失敗した場合、現在の正常な補正値を''float''で返します。 * MPINOでは4~20mA入力ではない電圧・NTCチャネルに''analogRead2()''を使用しません。 * ''analogReference(EXTERNAL)''が必要なMPINO製品では、''setup()''で先に設定します。 * ''IanalogWrite2()''と''IanalogWrite2f()''は4~20mA専用の簡易出力です。同じチャネルで''IanalogWrite()''と交互に使うことは推奨しません。 * アナログ出力回路には外部12~24V電源が必要です。USB電源だけでは正常に出力されない場合があります。 * 実際の電流入出力の検証は、テスト製品を準備して計測器で確認してください。 ===== 同じカテゴリの内蔵コマンド ===== * [[:ja-jp_commands:reference:analogread2|analogRead2() 詳細説明を見る]] * [[:ja-jp_commands:reference:analogread2avg|analogRead2Avg() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]