| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
Idown(id, input) | uint8_t idbool input | bool | 入力がONからOFFに変わる瞬間だけtrueを返します。 |
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入力範囲の最小値と最大値を同じ値にしないでください。