====== IanalogRead2() ====== ''IanalogRead2()''は4~20mA入力値を指定した整数範囲に変換します。 {{:ja-jp_commands:reference:ianalogread2.svg?900|IanalogRead2 コマンドの動作フロー}} ''int32_t IanalogRead2(uint8_t ch, int32_t min, int32_t max)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''IanalogRead2(ch, min, max)'' | ''uint8_t ch'' — MPINOは''A0''などのアナログピン、MPAINOは''0''から始まる全モジュールのチャネル番号\\ ''int32_t min''\\ ''int32_t max'' | ''int32_t'' | 4~20mA入力値を指定した整数範囲に変換します。 | ===== 使用例 ===== MPINO-8A4R(T)-Sの4~20mA入力''A2''を0~100%に換算する例です。 void setup() { Serial.begin(115200); } void loop() { const int32_t percent = IanalogRead2(A2, 0, 100); // A2の4~20mA入力を0~100%の整数に換算します。 if (percent == ANALOG_READ2_ERROR) { Serial.println(F("4-20mA input error")); } else { Serial.print(F("A2: ")); Serial.println(percent); } delay(500); } ===== 注意事項 ===== * この例の''A2''はMPINO-8A4R(T)-Sの電流入力です。ほかの製品では、4~20mA対応チャネルと配線をその製品のピンマップで確認してください。 * 約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:ianalogread2f|IanalogRead2f() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]