自作キーボード愛好家の難敵「チャタリング」を解剖する:物理バウンスとデバウンスのメカニズム
自作キーボードやメカニカルキーボードを愛用していると、ある日突然「t」を1回押しただけなのに「tt」と入力される、あるいはスペースキーが二重に入力されるといった不具合に遭遇することがあります。この現象は**「チャタリング(Key Chattering または Bouncing)」**と呼ばれ、入力デバイスにおける最も一般的で、かつ厄介なハードウェアのバグの一つです。
なぜこの二重登録が発生するのか、その物理的な原理と、それを防ぐために回路やソフトウェアの裏側で働いている**「デバウンス(Debounce)」**のメカニズムを、電子エンジニアの視点から詳しく解説します。

チャタリングの物理:なぜスイッチは「バウンド」するのか
私たちが何気なくキーを押すとき、スイッチの内部では極めて微細な物理現象が起きています。
メカニカルスイッチの基本構造は、金属製の2つの接点が接触することで回路が閉じ(ON)、電流が流れる仕組みです。キーを押すと、可動側の金属板が固定側の金属板へと叩きつけられます。この衝突の瞬間、**「金属同士が非常に高速で衝突し、微細に跳ね返る(バウンドする)」**という現象が必ず発生します。
この物理的な振動は、時間にして約1ミリ秒〜5ミリ秒ほど続きます。この間、電気的な接続は「ON→OFF→ON→OFF」と超高速で切り替わります。キーボードを制御するマイクロコントローラ(MCU)は非常に高速で動作しているため、この数ミリ秒間の細かなON/OFFのバウンスを、人間が「キーを連打した」と解釈してしまい、結果として画面に文字が二重に登録されてしまうのです。
これが、チャタリング(バウンシング)の正体です。経年劣化によって接点の金属がヘタったり、内部にホコリや酸化膜(サビ)が蓄積したりすると、このバウンド時間が長くなり、チャタリングが顕著になります。
対策①:ハードウェア・デバウンス(RCフィルタ)
チャタリングを防ぐ(=バウンスを除去する)処理を「デバウンス」と呼びます。歴史的に最も古典的で確実な方法は、電気回路そのものでバウンスを吸収するハードウェア・デバウンスです。
これは、抵抗(R)とコンデンサ(C)を組み合わせた**「RC低域通過フィルタ(ローパスフィルタ)」**回路をスイッチの直後に配置する手法です。
- 仕組み: キーが押されて信号がON/OFFを繰り返しても、コンデンサが電気を蓄えたり放出したりすることで、急激な電圧変化が相殺されます。ギザギザしたチャタリング波形は、RCフィルタを通ることで緩やかな坂道のような美しいアナログ波形へと変換されます。この滑らかになった信号をシュミットトリガなどのICに通すことで、ブレのない綺麗なデジタル信号(1回だけのON)としてMCUに送り届けることができます。
- メリット: マイコン側の計算リソースを一切消費せず、極めて高い信頼性を誇ります。
- デメリット: キーボードのキー数(例えば60〜100個)と同じ数だけ抵抗とコンデンサを基板上にハンダ付けする必要があり、コストと基板面積が増大します。
対策②:ソフトウェア・デバウンス(アルゴリズム)
現在、自作キーボードで主流となっているのが、マイコンのファームウェア(QMKやVIAなど)内でプログラムによってバウンスを除去するソフトウェア・デバウンスです。
プログラムコードでチャタリングを処理するため、回路部品を増やす必要がありません。代表的なアルゴリズムには以下の2つがあります。
1. 待機型(Defer)
キーの降下信号(ON)を検知した後、あらかじめ設定した「デバウンス時間(例: 5ms)」の間、信号の状態変化を無視して待機します。バウンスが完全に収まったと推測される時間が経過した後に、改めてピンの状態を確認して確定します。
- 特徴: 非常に確実ですが、確定するまでにデバウンス時間分の「遅延(入力ラグ)」が必ず発生します。
2. 即時型(Symmetric Eager)
キーのONを検知した瞬間、ラグなしですぐに入力を「ON」としてシステムに報告します。ただし、その直後から「デバウンス時間」が経過するまでは、同じキーのいかなる変化も無視します。
- 特徴: 入力遅延がゼロであるため、ゲーミングキーボードなど極限の反応速度が求められる用途に最適です。しかし、ノイズに弱いという側面もあります。
チャタリングが起きた時の実践的アプローチ
もしあなたのキーボードでチャタリングが発生した場合、電子工学的な観点からは以下の順に対処するのが最も効率的です。
- ソフトウェア的な調整(ファームウェア): QMK Configuratorなどで、デバウンス時間(Debounce Time)の設定値を現在の設定(例: 5ms)から、8msや12msへと少し増やしてみます。これだけで、劣化したスイッチの長いバウンドを無視できるようになり、症状が収まることが多いです。
- スイッチの物理洗浄: キーキャップを外し、スイッチの隙間から「電気接点洗浄剤(コンタクトスプレー)」を極少量スプレーし、数十回キーを連打します。これで内部のホコリや軽微な酸化皮膜が除去されます。
- ハードウェアの交換: ホットスワップ(ハンダ付けなしでスイッチを抜ける)対応の基板であれば、該当するキースイッチ単体を新しいものに交換するのが最も確実な物理的解決策です。
私たちが快適にタイピングできる裏側には、このミリ秒単位の「物理的なバウンド」と、それをいかに賢く無視するかという、先人たちの泥臭いエレクトロニクス工学の知恵が息づいています。
お役立ち情報
- QMK Firmware - Debounce API (英語)
自作キーボードで最も普及しているファームウェア「QMK」における、デバウンスアルゴリズムの種類と設定パラメータの詳細な公式ドキュメントです。 - Wikipedia - チャタリング(日本語)
スイッチやリレーなどの接点で発生するチャタリング現象の一般的な物理的概要と、システムに与える影響の基礎解説です。 - EEVblog - Hardware Debounce Circuits (英語)
電子工作愛好家向けの有名なフォーラム・動画チャンネル。RCフィルタやシュミットトリガを用いた、最もノイズに強いハードウェアデバウンス回路の設計方法を詳しく解説しています。