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

はじめに

ボタンを「ポチッ」と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を細かく繰り返してしまう現象
  • なぜ起こる?
    接点が物理的に跳ね返るから
  • 防止方法は?
    • ソフトで待つ(デバウンス)
    • 回路で吸収する