脱線は、スイッチやボタンが押下したときに、単一の信号のみが登録されていることを確認するために、デジタル電子機器で使用される技術です。 メカニカルスイッチは、多くの場合、接触バウンスのために複数の信号を生成し、デジタルシステムでエラーを引き起こす可能性があります。 脱線を実装すると、入力読書の信頼性が向上します。

スイッチの不具合の把握

機械スイッチが押されたり、解放されたら、接触は状態をきれいに変えません。代わりに、彼らは急速に数回、セットリングの前に接触をします。この現象は、バウンスとして知られ、いくつかのマイクロ秒からミリ秒まで続くことができ、複数の不要な信号につながります。

実用的なデバニングテクニック

ハードウェアやソフトウェアのアプローチを含む、デジタル入力を非バウンスするために、いくつかのメソッドが使われます。ハードウェアのデバッシングは、多くの場合、RCフィルタやSchmittトリガーを含みます。ソフトウェアのデバインは、タイミングアルゴリズムを使用して、迅速な状態の変化を無視します。

ソフトウェアのデバッシングの実装

ソフトウェアのデバインは通常、通常の間隔で入力をサンプリングし、指定された期間に安定状態のままにしている場合だけ状態の変更を確認することを含みます。この方法は、マイクロコントローラコードで柔軟で簡単に実装できます。

例えば、ボタン入力が10ミリ秒ごとに読み込まれると、変更を登録する前に、新しい状態に入力が残り50ミリ秒以上残っていることを確認することができます。これにより、バウンスによる誤ったトリガーが減少します。

出欠時間計算

差分時間は、スイッチ特性とシステム要件に依存します。 一般的なアプローチは、5〜20ミリ秒間の差分間隔を選択することです。 計算は、最大のバウンス時間を測定し、安全マージンを追加します。

例えば、スイッチが最大10ミリ秒間バウンスしてしまった場合、20ミリ秒のデバウンス時間を設定することで、重要な遅延なしに信頼性の検出が保証されます。

  • 最大のバウンス時間を特定する
  • 発音間隔を少し長ければ発音時間を選ぶ
  • コードで定期的なサンプリングを実行
  • 入力を登録する前に安定した状態を確認します