スイッチと平行にコンデンサを挿入してチャタリングを防止
この回路は、コンデンサで接点のパタツキによる微小時間のON/OFFを吸収し、シュミットトリガでなだらかになった電圧波形を元の波形に戻す回路です。この回路では原理上スイッチの入力に対し数ミリ秒の遅れが発生しますが、基本的にこの遅延が問題となる事はありません。
コンデンサは容量を大きくすれば効果は大きくなりますが、大きすぎると時定数が大きくなりすぎて反応しなくなります。スイッチのチャタリング程度では容量も必用としないため、スイッチ側のプルアップ抵抗と合わせて0.1uF前後を目安に設計します。
電子回路に使用するスイッチは、1回しかボタンを押していないのに、複数回押した状態になってしまう「チャタリング」と呼ばれる接点のパタツキが発生します。
チャタリングは金属のバネ性や擦れを原因とするため、中には構造上チャタリングが発生し難い種類のスイッチもあります。しかし、スイッチは機械的な部品であり、経年劣化や環境の変化によって状態が容易に変化してしまうため、スイッチを搭載するアプリケーションにはチャタリング対策が必須となります。
スイッチ波形がなだらかになっても影響が無かったり、ICの入力側にシュミットトリガ相当の機能が搭載されている場合であれば、シュミットトリガICは不要になります。
チャタリングは一般的にソフト側で対策する
本例ではハードウェアによるチャタリングの対策回路を紹介していますが、この回路を使用するケースはあまり多くありません。特に、マイコンを搭載したアプリケーションの場合であれば、スイッチのチャタリング対策はソフト側に実装するのが一般的です。
チャタリングに限らず、設計段階でハード的な問題が判明しており、ソフト側での対策が容易な場合であるなら、部品点数の削減や回路設計の簡素化等の観点も含め、実現可能な範囲でソフト側に対策を組み込みを行うのが通例となります。
ソフトによるチャタリング対策を行う場合では、割り込みによる立ち上がり(立下り)検出やIOポートの常時監視によってチャタリングの影響がを無視できる処理を組み込みます。
一般的な方法としては、立ち上がり波形検出後数ミリ秒間不感とする処理(上図)や、スイッチの入力状態を逐次監視し、安定状態となった時点で処理を行う方式(下図)などが採用されます。
ソフトによるチャタリング対策は他にも様々な方式があります。マイコンで行う他の処理を妨げず、許容できる遅延時間等を考慮して適当な方法を選びます。