基本情報技術者 2011年 春期 午前(科目A) 問26
問題文
機械式接点の押しボタンスイッチを1回押すことに対して、押してから数ミリ秒の間、複数回のON, OFFが発生する現象はどれか。
選択肢
ア:サンプリング
イ:シェアリング
ウ:チャタリング(正解)
エ:バッファリング
🔒 解説は解答すると表示されます
チャタリング現象【午前解説】
正解の理由
正解: ウ チャタリング。
機械式接点は物理的に金属が接触・離離を繰り返すため、押下直後に短時間(典型的には数百マイクロ秒〜数ミリ秒)でON/OFFが複数回発生します。この現象を「チャタリング(接点バウンス)」と呼び、問題文の「数ミリ秒の間、複数回のON, OFFが発生する」という記述と完全に一致します。チャタリングはハード・ソフト両面のデバウンス処理で対処します。
機械式接点は物理的に金属が接触・離離を繰り返すため、押下直後に短時間(典型的には数百マイクロ秒〜数ミリ秒)でON/OFFが複数回発生します。この現象を「チャタリング(接点バウンス)」と呼び、問題文の「数ミリ秒の間、複数回のON, OFFが発生する」という記述と完全に一致します。チャタリングはハード・ソフト両面のデバウンス処理で対処します。
解法ステップ
- 問題文からキー語を抽出:「機械式接点」「押しボタンスイッチ」「数ミリ秒」「複数回のON, OFF」。
- キー語と知識を照合:接点の物理的振動で生じる現象=チャタリング(バウンス)。
- 他選択肢を定義で除外:サンプリング/シェアリング/バッファリングは現象説明と一致しない。
- 正解(チャタリング)を確認し、デバウンス対策を思い浮かべると理解が深まる。
選択肢別の誤答解説
- ア: サンプリング — 信号を一定周期で取り出す処理の名称で、現象(ON/OFFが連続する)を表すものではありません。
- イ: シェアリング — 資源や信号の共有・分割(例: 時分割)を指し、接点の振動現象とは無関係です。
- ウ: チャタリング — 正解。機械的接点のバウンスによる短時間のON/OFFの繰り返しを指します。
- エ: バッファリング — データを一時的に蓄える動作を指すため、接点が瞬間的に接触/非接触を繰り返す現象の説明にはなりません。
よくある誤解
- 「サンプリング=チャタリング」と誤解する人が多いが、サンプリングは信号を一定間隔で取得する手法であり、現象そのものではありません。
- 「バッファリングで解決できる」と考えがちですが、バッファはデータの一時保存であり、接点の物理的なバウンスを取り除く目的には直接使いません。
- 押しボタンのノイズ全般を「電気的ノイズ」と一括りにするが、チャタリングは機械的要因が主で、対策も機械的/回路的/ソフト的に分類されます。
補足コラム
チャタリング対策(デバウンス)の代表例:
- ハードウェア:RC低域フィルタ+シュミットトリガで遅延とヒステリシスを与える方法。 の時定数 を調整して数ミリ秒程度で安定させます。例:。
- ソフトウェア:割り込みやポーリングで数ミリ秒待った後、安定した状態が続くことを確認してから確定する方法(「安定判定」)。
- ディジタル入力のシュミットトリガ化はしきい値ヒステリシスを導入して短時間の振動を無視できます。
簡単なソフトウェアデバウンスの例(ポーリング方式、Python擬似コード):
import time
def read_switch():
# 実際はGPIO読み取り
return gpio_input()
def debounce_read(stable_time_ms=10, poll_interval_ms=1):
last = read_switch()
stable_count = 0
required = stable_time_ms // poll_interval_ms
while stable_count < required:
time.sleep(poll_interval_ms / 1000.0)
cur = read_switch()
if cur == last:
stable_count += 1
else:
last = cur
stable_count = 0
return last
FAQ
Q1: チャタリングはどのくらいの時間続きますか?
A1: 数百マイクロ秒〜数ミリ秒が典型ですが、スイッチ構造や摩耗で変わります。設計では数ミリ秒程度で考えることが多いです。
A1: 数百マイクロ秒〜数ミリ秒が典型ですが、スイッチ構造や摩耗で変わります。設計では数ミリ秒程度で考えることが多いです。
Q2: ソフトウェアだけで十分ですか?
A2: 多くの場合は十分ですが、高速応答が必要な場面や電気的ノイズが多い環境ではハードウェア対策も併用すると安定性が高まります。
A2: 多くの場合は十分ですが、高速応答が必要な場面や電気的ノイズが多い環境ではハードウェア対策も併用すると安定性が高まります。
Q3: サンプリング周波数を上げればチャタリングを避けられますか?
A3: 周波数を上げると現象はより正確に「観測」できますが、チャタリングそのものは消えません。デバウンス処理が必要です。
A3: 周波数を上げると現象はより正確に「観測」できますが、チャタリングそのものは消えません。デバウンス処理が必要です。
Q4: チャタリングと接点の摩耗は関係ありますか?
A4: はい。摩耗や汚れで接触挙動が不安定になり、チャタリングが増えることがあります。
A4: はい。摩耗や汚れで接触挙動が不安定になり、チャタリングが増えることがあります。
関連キーワード: チャタリング、デバウンス、押しボタン、接点バウンス、RCフィルタ、シュミットトリガ、ソフトウェアデバウンス、ハードウェアデバウンス、スイッチノイズ

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

