スイッチバウンスとは何ですか?
押しボタン、トグルスイッチ、またはマイクロスイッチを押すと、2つの金属部品が接触して電源が短絡します。しかし、それらはすぐには接続されませんが、実際の安定した接続が行われる前に、金属部品が数回接続および切断されます。ボタンを離しても同じことが起こります。これにより、誤ったトリガーまたはボタンが複数回押されたような複数のトリガーが発生します。跳ねるボールを高さから落とすようなもので、静止するまで表面で跳ね続けます。
簡単に言うと、スイッチのバウンスは、単一の入力の複数の遷移を生成するスイッチの理想的ではない動作であると言えます。スイッチのバウンスは、電源回路を扱う場合は大きな問題ではありませんが、ロジック回路やデジタル回路を扱う場合は問題が発生します。したがって、回路からバウンスを除去するために、スイッチデバウンス回路が使用されます。
ソフトウェアデバウンスとは何ですか?
デバウンスはソフトウェアでも発生しますが、プログラミングプログラマーは、ソフトウェアのデバウンスを取り除くために遅延を追加します。遅延を追加すると、コントローラーは特定の期間停止しますが、遅延を追加すると、プログラムが一時停止して処理時間が長くなるため、プログラムに適切なオプションはありません。最良の方法は、ソフトウェアバウンスのコードで割り込みを使用することです。Arduinoには、ソフトウェアのバウンスを防ぐためのコードがあります。
デバウンス方法の切り替え
最初に、スイッチのデバウンスなしの回路を示します。
また、バウンス時にボタンを押している間、オシロスコープで波形を確認できます。これは、押しボタンの切り替え中にどれだけのバウンスが発生したかを示しています。
回路がバウンスするのを防ぐために一般的に使用される3つの方法があります。
- ハードウェアデバウンス
- RCデバウンス
- スイッチデバウンスIC
1.ハードウェアデバウンス
ハードウェアデバウンス技術では、SRフリップフロップを使用して、回路がバウンスするのを防ぎます。これは、すべての中で最良のデバウンス方法です。
必要なコンポーネント
- ナンドゲートIC74HC00
- トグルスイッチ
- 抵抗器(10k -2nos。)
- コンデンサ(0.1uf)
- 導いた
- ブレッドボード
回路図
ハードウェアデバウンス回路の動作
この回路は、SRフリップフロップを形成する2つのNandゲート(74HC00 IC)で構成されています。回路図でわかるように、トグルがA側に切り替わるたびに、出力ロジックは「HIGH」になります。ここでは、バウンスを検出するためにオシロスコープを使用しました。そして、以下の波形でわかるように、ロジックはバウンドするのではなく、わずかなカーブでシフトしています。回路で使用されている抵抗はプルアップ抵抗です。
スイッチが接点間を移動してバウンスを生成しているときは常に、「0」がNandゲートの出力からフィードバックされるため、フリップフロップは出力を維持します。
2.2。
RCはその名前だけで定義され、回路はスイッチのバウンスから保護するためにRCネットワークを使用しました。回路のコンデンサは、スイッチング信号の瞬間的な変化をフィルタリングします。スイッチが開状態のとき、コンデンサの両端の電圧はゼロのままです。最初に、スイッチが開いているとき、R1およびR2抵抗を介してコンデンサが充電されます。
スイッチが閉じると、コンデンサはゼロまで放電を開始するため、反転シュミットトリガーの入力端子の電圧はゼロになり、出力はHIGHになります。
バウンス状態では、コンデンサはVccまたはGroundに達するまでVinの電圧を停止します。
RCデバウンスの速度を上げるために、下の画像に示すようにダイオードを接続できます。したがって、コンデンサの充電時間を短縮します。
3.デバウンスICのスイッチ
スイッチのデバウンス用に市場で入手可能なICがあります。一部のデバウンスICがある MAX6816、MC14490、およびLS118。
以下は、MAX6818を使用してデバウンスするスイッチの回路図です。
そこで、ここでは、プッシュボタンがスイッチバウンス効果を作成する方法と、スイッチデバウンス回路を使用してそれを防ぐ方法を学びました。