====== Itmr() ====== ''Itmr()''は(Retentive Timer)条件がONの時間を積算し、Reset入力で初期化します。 {{:ja-jp_commands:reference:itmr.svg?900|Itmr コマンドの動作フロー}} ''bool Itmr(uint8_t timer_id, bool state, unsigned long delayTime, bool reset = false)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''Itmr(timer_id, state, delayTime, reset)'' | ''uint8_t timer_id'' — タイマ番号。''0'' ~ ''255''の範囲で使用可能\\ ''bool state'' — タイマ入力状態\\ ''unsigned long delayTime'' — 設定時間。単位はms\\ ''bool reset = false'' — ''Itmr''積算値の初期化 | ''bool'' | (Retentive Timer)条件がONの時間を積算し、Reset入力で初期化します。 | ===== 使用例 ===== MPINO-8A4R(T)-Sを選択した例です。入力''P0''と出力''P32''を使用し、''loop()''を止めずに毎回コマンドを呼び出します。 ''P0''のON時間を累積し、3秒で''P32''をONにします。''P0''がOFFでも累積値を保持し、''P1''で初期化します。 const uint8_t RUN_INPUT = 0; const uint8_t RESET_INPUT = 1; const uint8_t OUTPUT_PIN = 32; void setup() {} void loop() { const bool run = digitalRead(RUN_INPUT) == HIGH; const bool reset = digitalRead(RESET_INPUT) == HIGH; const bool elapsed = Itmr(0, run, 3000, reset); // ON時間だけを累積し、resetがtrueなら初期化します。 digitalWrite(OUTPUT_PIN, elapsed ? HIGH : LOW); } ===== 注意事項 ===== * 経過時間と入力OFFを処理するため、タイマコマンドを''loop()''で繰り返し呼び出します。 * 異なるタイマ動作で同じ''timer_id''を共有すると状態が混ざるため、別の番号を使用します。 * ''reset''がtrueなら累積時間と完了状態が初期化されます。 ===== 同じカテゴリの内蔵コマンド ===== * [[:ja-jp_commands:reference:iton|Iton() 詳細説明を見る]] * [[:ja-jp_commands:reference:itof|Itof() 詳細説明を見る]] * [[:ja-jp_commands:reference:itpl|Itpl() 詳細説明を見る]] * [[:ja-jp_commands:reference:itmon|Itmon() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]