チャタリング防止って、そもそもナニ?

はじめに
ボタンを「ポチッ」と1回押しただけなのに、なぜか2回も3回も押されたことになってしまう――。
こんな現象が起こる原因のひとつが 「チャタリング」 です。
今回は、この「チャタリング」と、それを防ぐための「チャタリング防止」について、初心者にもわかりやすく解説します。
チャタリングとは?
● ボタンは一瞬でONにならない
私たちがスイッチを押すとき、「カチッ」と一瞬でONになっているように感じますよね。
でも実は、内部ではこんなことが起きています。
- 金属の接点がぶつかる
- 反発して少し離れる
- またぶつかる
- それを数回くり返す
つまり、細かくONとOFFを何度も繰り返している状態になるのです。
これを
チャタリング(Chattering:ガタガタ振動するという意味)
と呼びます。
どんな問題が起きる?
たとえば、マイコン(Arduinoなど)でボタンを使っている場合。
「1回押したらLEDがつく」というプログラムを書いたとします。
でもチャタリングが起きると…
- 1回押したつもりが
- マイコンには「ON・OFF・ON・OFF」と何回も届く
- 結果:LEDがすぐ消えたり、何回も切り替わったりする
という現象が起きます。
〇見た目では1回
×電気的には何回も
これがチャタリングのやっかいなところです。
チャタリング防止とは?
その名の通り「チャタリングの影響をなくす工夫」のことで、主な方法は2つあります。
方法① ソフトウェアで防ぐ(初心者向け)
いちばん簡単なのがこの方法です。
やり方
「ボタンが押されたら、少し待つ」
たとえば:
if (digitalRead(buttonPin) == HIGH) {
delay(20); // 20ミリ秒待つ
}
チャタリングはほんの数ミリ秒で終わるので、
10~20ミリ秒くらい待てば安定するのです。
これを デバウンス処理 と呼びます。
デバウンス=「バウンド(跳ね返り)を取り除く」
方法② 回路で防ぐ(少しステップアップ)
電子部品を使って防ぐ方法もあります。
よく使われるのは:
- コンデンサ
- シュミットトリガ回路
これらを使うと、信号をなめらかにして
ガタガタを吸収できます。
こちらは少し専門的なので、
まずはソフトウェア対策を覚えればOKです。
どんな場面で重要?
チャタリング防止は、こんな場面で重要です。
- キーボード
- リモコン
- 産業用機械のスイッチ
- ゲームコントローラー
実は、私たちの身の回りの多くの機器で
当たり前のように使われている技術なのです。
まとめ
- チャタリングとは?
スイッチがON/OFFを細かく繰り返してしまう現象 - なぜ起こる?
接点が物理的に跳ね返るから - 防止方法は?
- ソフトで待つ(デバウンス)
- 回路で吸収する


