====== Ialt() ====== ''Ialt()''は入力の立ち上がりごとに指定した状態をON・OFF反転します。 {{:ja-jp_commands:reference:ialt.svg?900|Ialt コマンドの動作フロー}} ''void Ialt(bool input, bool &state_var)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''Ialt(input, state_var)'' | ''bool input''\\ ''bool &state_var'' | ''void'' | 入力の立ち上がりごとに指定した状態をON・OFF反転します。 | ===== 使用例 ===== const uint8_t COMMAND_INPUT = 0; const uint8_t MOTOR_OUTPUT = 32; void setup() { Serial.begin(115200); } void loop() { const bool input = IdigitalRead(COMMAND_INPUT, 5); // 入力を連続して複数回読み、すべて一致した場合のみ状態を更新します。HIGHとLOWが混在する場合は前の安定状態を保持します。 const bool started = Iup(0, input); // 入力がOFFからONに変わる瞬間だけtrueを返します。 const bool stopped = Idown(0, input); // 入力がONからOFFに変わる瞬間だけtrueを返します。 static bool run = false; Ialt(started, run); // 入力の立ち上がりごとに指定状態をON/OFF反転します。 digitalWrite(MOTOR_OUTPUT, run ? HIGH : LOW); if (started) Serial.println(F("motor started")); if (stopped) Serial.println(F("command released")); } ===== 注意事項 ===== 異なる信号に同じ''id''を使用すると前の状態が混在する場合があります。''Iscale''入力範囲の最小値と最大値を同じ値にしないでください。 [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]