====== IanalogWrite() ====== ''IanalogWrite()''はユーザーの整数値をアナログ出力範囲に変換して出力します。 {{:ja-jp_commands:reference:ianalogwrite.svg?900|IanalogWrite コマンドの動作フロー}} ''void IanalogWrite(uint8_t ch, int32_t min, int32_t max, int32_t value)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''IanalogWrite(ch, min, max, value)'' | ''uint8_t ch'' — 出力するアナログ出力ピンまたはチャネル\\ ''int32_t min'' — ユーザー入力範囲の最小値\\ ''int32_t max'' — ユーザー入力範囲の最大値\\ ''int32_t value'' — 出力するユーザー入力値 | ''void'' | ユーザーの整数値をアナログ出力範囲に変換して出力します。 | ===== 使用例 ===== const uint8_t DEMAND_INPUT = A0; const uint8_t OUTPUT_CHANNEL = 0; void setup() { Serial.begin(115200); } void loop() { const int32_t demandPercent = IanalogRead(DEMAND_INPUT, 0, 100); // アナログ入力値を指定した整数範囲に変換します。 IanalogWrite(OUTPUT_CHANNEL, 0, 100, demandPercent); // ユーザーの整数値をアナログ出力範囲に変換して出力します。 Serial.print(F("demand=")); Serial.print(demandPercent); Serial.println(F("%")); 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:ianalogwritef|IanalogWritef() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]