目次

Ibounce()

Ibounce()は入力状態が指定した時間変化せずに維持された値を返す関数です。入力の短い変動や機械式スイッチのチャタリングが発生しても、安定した状態だけを返します。

この関数はdelay()のようにプログラムを停止しないため、loop()で継続的に呼び出せます。

Ibounce入力フィルタの動作

コマンド

bool Ibounce(uint8_t pin, uint32_t debounceTime)

コマンド 引数 戻り値 動作
Ibounce(pin, debounceTime) pin: デジタル入力ピンまたは論理入力番号
debounceTime: 状態維持時間(ms)
bool 入力状態が指定時間変わらない場合、保持された値を返します。

使用例

この例では、MPAINOのデジタル入力0を50 msフィルタリングして安定状態をデジタル出力64へ渡し、状態が変化したときだけシリアルモニターへ記録します。

const uint8_t INPUT_CHANNEL = 0;
const uint8_t OUTPUT_CHANNEL = 64;
 
void setup() {
  Serial.begin(115200);
}
 
void loop() {
  const bool inputState = Ibounce(INPUT_CHANNEL, 50);  // 入力状態が50 ms継続したら、安定したON・OFF値を返します。
  digitalWrite(OUTPUT_CHANNEL, inputState ? HIGH : LOW);
 
  static bool previousState = false;
  if (inputState != previousState) {
    previousState = inputState;
    Serial.println(inputState ? F("input ON") : F("input OFF"));
  }
}

注意事項

同じカテゴリの内蔵コマンド

← 内蔵コマンド一覧