ユーザ用ツール

サイト用ツール


ja-jp_commands:reference:idigitalread

文書の過去の版を表示しています。


IdigitalRead()

IdigitalRead()は入力を複数回連続で読み、すべての値が同じ場合だけ状態を更新します。HIGHとLOWが混在すると、前の安定状態を維持します。

IdigitalRead コマンドの動作フロー

bool IdigitalRead(uint8_t pin, uint8_t samples)

コマンド

コマンド 引数 戻り値 動作
IdigitalRead(pin, samples) uint8_t pin — デジタル入力ピン番号
uint8_t samples — 連続読み取り回数。1以下は1回読み取り、最大255回まで適用
bool 入力を複数回連続で読み、すべての値が同じ場合だけ状態を更新します。HIGHとLOWが混在すると、前の安定状態を維持します。

動作方式

  • 入力をsamples回連続で読み取ります。
  • 読み取り値がすべてHIGHの場合、安定状態をHIGHに更新します。
  • 読み取り値がすべてLOWの場合、安定状態をLOWに更新します。
  • HIGHLOWが混在すると、短いノイズが含まれると判断して前の安定状態を維持します。
  • 前の安定状態がまだなく、読み取り値が混在する場合はLOWを返します。

使用例

void setup() {
  pinMode(0, INPUT);
}
 
void loop() {
  bool input = IdigitalRead(0, 5);  // 入力を連続して複数回読み、すべて一致した場合のみ状態を更新します。HIGHとLOWが混在する場合は前の安定状態を保持します。
 
  if (input) {
    digitalWrite(64, HIGH);
  } else {
    digitalWrite(64, LOW);
  }
}

注意事項

  • samples1以下の場合、入力を1回だけ読み取ります。
  • samplesを大きくするほど1回の呼び出し時間が長くなります。一般的な入力ノイズ確認には3回または5回を推奨します。
  • このコマンドは即時に複数回読み取る方式です。機械式スイッチのようなms単位のチャタリングを除去するにはIbounce()を使用してください。

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

ja-jp_commands/reference/idigitalread.1788796399.txt.gz · 最終更新: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki