====== IanalogWritef() ====== ''IanalogWritef()''はユーザーの実数値をアナログ出力範囲に変換して出力します。 {{:ja-jp_commands:reference:ianalogwritef.svg?900|IanalogWritef コマンドの動作フロー}} ''void IanalogWritef(uint8_t ch, float min, float max, float value)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''IanalogWritef(ch, min, max, value)'' | ''uint8_t ch'' — 出力するアナログ出力ピンまたはチャネル\\ ''float min'' — ユーザー入力範囲の最小値\\ ''float max'' — ユーザー入力範囲の最大値\\ ''float value'' — 出力するユーザー入力値 | ''void'' | ユーザーの実数値をアナログ出力範囲に変換して出力します。 | ===== 使用例 ===== const uint8_t DEMAND_INPUT = A0; const uint8_t OUTPUT_CHANNEL = 0; void setup() { Serial.begin(115200); } void loop() { const float demandVolts = IanalogReadf(DEMAND_INPUT, 0.0F, 10.0F); // アナログ入力値を指定した浮動小数点範囲に変換します。 IanalogWritef(OUTPUT_CHANNEL, 0.0F, 10.0F, demandVolts); // ユーザーの浮動小数点値をアナログ出力範囲に変換して出力します。 Serial.print(F("demand=")); Serial.print(demandVolts, 2); Serial.println(F("V")); delay(250); } ===== 注意事項 ===== * 引数の順序は必ず''ch, min, max, value''です。 * ''min''と''max''は電気的出力範囲を直接設定する値ではなく、''value''を解釈するユーザー入力範囲です。 * ''value''が''min~max''の範囲外の場合、内部の''Iscalef()''により近い方の端点に制限されます。 * ''min''を''max''より大きくすると出力方向が反転します。 * ''min''と''max''が同じ場合、出力値は''0''になります。 * ''analogWriteInit()''や''analogWriteFreq()''でTimer TOPを変えると実際の''analogWrite()''出力範囲も変わります。16ビット''0~65535''の分解能を維持するには既定のTOP ''65535''を使用します。 * 出力モジュールのDIPスイッチ、外部電源、配線と、接続機器の入力仕様を一致させてください。 * 同じタイマを使用するPWM、パルス出力、カウンタコマンドと同時使用しません。 ===== 同じカテゴリの内蔵コマンド ===== * [[:ja-jp_commands:reference:analogwriteinit|analogWriteInit() 詳細説明を見る]] * [[:ja-jp_commands:reference:analogwritefreq|analogWriteFreq() 詳細説明を見る]] * [[:ja-jp_commands:reference:analogwritemax|analogWriteMax() 詳細説明を見る]] * [[:ja-jp_commands:reference:ianalogwriteinit|IanalogWriteInit() 詳細説明を見る]] * [[:ja-jp_commands:reference:ianalogwrite|IanalogWrite() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]