スイッチのチャタリングとは

接点のバウンド

トグルスイッチ、押しボタンスイッチなどの機械式スイッチ(リレー接点も含む)では「チャタリング」という現象が起こります。 図1のように理想的なスイッチであれば、スイッチONで出力はGND、スイッチ OFFでVccになるのですが、実際にはスイッチON/OFF直後に出力が短い時間 ON/OFFを繰り返し、この現象を「チャタリング」と言います。

チャタリング

理想的なスイッチであれば、ONまたはOFF時に接点が1度でピタッと接続、または1度で接点が離れれば、チャタリングは発生しません。しかし、実際のスイッチは接点の「バウンド」または「擦れ(すれ)」が発生し、これによりチャタリングが発生します。
バウンドとは図2のように接点がONした瞬間、接点がぶつかって跳ね返る現象です。このバウンドが複数回繰り返され、この間はスイッチ接点がON/OFFを繰り返し、最終的にONに落ち着きます。

スイッチ接点のバウンド

チャタリングによる誤動作

チャタリングは電子機器の誤動作の原因の一つになる場合があります。 例えば、図3のように各スイッチ入力を検出し、その入力に応じた処理と表示を 行なう場合で考えてみます。 装置側でハードウェアまたはソフトウェアで適切なチャタリング防止を行っていない と、スイッチAの表示とそれに応じた処理を複数回実行する誤動作をしてしまいます。

チャタリングによる誤動作

チャタリング波形の観測

波形1に実際のチャタリング波形を示します。用いたスイッチはトグルスイッチですが、スイッチの種類(タクトスイッチ、押しボタン スイッチ等)によりチャタリング時間は異なり、数100μsec~数10msec程度です。この観測では約200μsecです。また、チャタリングの発生頻度も多いものと少ないものがあり、スイッチ操作(ゆっくり、 速く)などによっても変わります。いずれにしても、機械的スイッチは必ずチャタリングが発生すると考えておく必要があります。

チャタリングを防止する方法

チャタリングの防止方法はソフトウェアによる処理、ハードウェアによる方法と色々あるのですが、ここでは簡単なハードウェアによる方法を紹介します。

CRの充放電による方法

この方法は図4のように抵抗とコンデンサによる充放電を利用したものです。例えば、a ) のようにスイッチがOFFの場合、十分な時間経過後ではB点の電圧は「H」レベルです。 この状態からスイッチをONすると、コンデンサC1に充電されていた電荷は「C1→R2→S1→GND」の経路で放電され、B点の電圧は徐々に減少し、最終的にGNDレベル(L)に落ち着きます。 この放電時間がチャタリング時間より十分長ければ、B点の波形はチャタリング の影響を受けません。スイッチがON→OFFのタイミングではb ) のようにスイッチOFFの瞬間から「Vcc →R1→R2→C1」の経路で充電され、B点の電圧は上昇し、最終的にVcc(H)に落ち着きます。 この場合も充電時間がチャタリング時間より十分長ければ、B点の波形はチャタリングの影響を受けません。

CRによるチャタリング防止

このようにスイッチON/OFF時に「ゆるやかな波形」となったものが次段のインバータ (NOT IC)に入力されます。
放電時は徐々に電圧が下がり、「L」の認識レベルとなった時点でNOT出力は チャタリングの無いきれいな「H」レベルになります。(図5)
充電時では電圧が徐々に上がり、「H」の認識レベルとなった時点でNOT出力はきれ いな「L」レベルになります。 このようにチャタリングが除去され、NOT出力はそれぞれの充放電時間遅れています。

各部のタイミングと波形

シュミット・トリガ・NOTを用いる

ここで用いるNOT ICは「シュミット・トリガ・NOT」です。
一般のNOT ICでは図6のように「ゆるやかな信号」を入力すると、「H」、「L」の 認識レベル付近で誤動作してしまいます。 これに対し、シュミット・トリガ・NOTはゆるやかな信号でも誤動作することがなく、 「波形整形」などの用途で用いられます。

緩やかな入力信号と誤動作

図7に実験回路を示します。 用いたシュミット・トリガ・NOTは「74HC14」です。 R1,R2,C1の定数組み合わせは無数にありますが、 一般的にはR1,R2は数KΩ~100KΩの範囲とします。 図7の例ではR1 = R2 = 10KΩとし、C1の値は実際のチャタリング時間を観測し 決めることにします。

CRによるチャタリング防止実験回路

波形2,3にスイッチON/OFFの波形を示します。
A点ではチャタリングが発生していますが、NOT出力(C点)ではチャタリングの無 いきれいな波形になっています。
それぞれの遅れは、ON時に約1msec、OFF時に約2msecで、この遅れ時間は チャタリング時間より十分大きくなるようにR1,R2,C1の値を決めます。
遅れ時間は、正確にはICの種類、電源電圧、R1、R2,C1の値で決まり、目安と しては以下の式で計算しても良いです。

(スイッチ ON時の遅れ時間 Tom)
Ton=R2×C1 ----①
(スイッチ off時の遅れ時間 Toff)
Toff=(R1+R2)×C1 ----②

例えば、図7では R1 = R2 = 10K C1 = 0.1μF ですから、


チャタリング時間に対して十分大きくなっています。
なお、この計算と実際の遅れ時間は、ほぼ、一致しましたが、前述のように電源 電圧とICの種類により若干異なるので、①、②式は、あくまでも「目安の式」と考 えてください。

汎用ロジックICの74HCシリーズおよび4500シリーズの主なシュミット・トリガ・NOTICは 以下のとおりです。



以上はDIPパッケージです。その他のパッケージはメーカーのデータシートを参照 願います。

RSラッチによる方法

CRの充放電による方法では遅れ時間が生じ、これによる不具合はあまり無い と思いますが、遅れ時間が少ない方法を紹介します。 図8はディジタル回路における記憶回路の一つで「RSラッチ」と呼ばれるもので す。専用のICもありますが、図8では「NANDゲート」で構成した回路です。 入力はSとRの2つで、出力はQと/Qになり、Qと/Qはレベル(H、L)がいつも反対 になります。 SとRのレベルが異なる場合、
 S = L R = H で Q = H /Q = L
 S = H R = L で Q = L /Q = H
Q = H にすることを「セット」、Q = L にすることを「リセット」と呼びます。 S = R = H の場合は前の状態を保持し、これが記憶です。 また、S = R = L では出力が不定となり、この組み合わせは禁止です。


RSラッチ




この例ではスイッチS1に「ON-ON」のトグルスイッチを用いています。 S1の共通端子をGNDに接続し、R1,R2はスイッチ接点がオープン時にレベルを 「H」にするための「プルアップ抵抗」です。
このような接続にすれば、図8真理値表での「S = R = L」の組み合わせは発生しま せん。また、トグルスイッチの接点移動中はどちらの端子にも接続されませんので、 この状態は「S = R = H」となり、記憶状態です。

RSラッチによるチャタリング防止

図10にタイムチャートを示します。


タイムチャート

図11に実験回路と波形4,5に観測波形を示します。 トグルスイッチ(SとR)のチャタリングが観測されますが、スイッチON時の最初の「L」 で出力が確定され、Qと/Qにはチャタリングがありません。

実験回路

スイッチのON/OFF検出(認識)は「Q出力」または「/Q出力」のどちらでも良いです。 例えば、「Q出力」の場合、
 Q = H でスイッチポジションは「S」
  = L でスイッチポジションは「R」
「/Q出力」の場合、
 /Q = H でスイッチポジションは「R」
 /Q = L でスイッチポジションは「S」
主なNANDゲートICを以下に示します。



SN74HC00AN
TC4011BP


どちらもNANDゲートが4個入っているのでRSラッチを2個構成することが出来ます。 RSラッチは専用ICが市販されています。主なRSラッチICを以下に示します。
TC74HC279AP
TC4044BP
どちらもRSラッチが4個入っています。 HC279は「S = R= L ではセットが優先され、Q = H 」になります。 真理値表はそれぞれのデータシートを参照願います。

まとめ

●トグルスイッチ、押しボタンスイッチ、タクトスイッチなどの機械式スイッチ(リレー 接点も含む)にはチャタリングがある。
●チャタリングは接点の「バウンド」または「擦れ」などで発生する。
●チャタリングの発生度合、時間はスイッチの種類、操作方法により異なり、必ず 発生すると思ったほうが良い。
●チャタリング時間は数100μsec~数10msec程度。
●チャタリングが問題となるシステムではチャタリング防止が必要。