ボタンをデバウンスするためにコンデンサだけを使用することは可能ですか?


19

私は不思議に思っていました:なぜあなたはそれをデバウンスするためにボタンにコンデンサを接続することができないのですか?私はマイクロプロセッサーがしなければならない仕事を減らす方法を考え出していますが、私が設計しているPCB上のスペースは非常に限られているため、設計を複雑にする本格的なデバウンス回路をしたくありません。


回路図

この回路のシミュレーションCircuitLabを使用して作成された回路


これは回路の例です。エラーについては申し訳ありません(コンデンサを使用した回路の設計は苦手です)。これでも機能しますか?タックスイッチについては、実際の生活と一致するものは見つかりませんでしたが、この状況では機能します。ボタンはここにあるボタンのようですD10の略ですDigital Pin 10が、それは問題ではありません。Arduinoの入力を意味します。必要なコンデンサの大きさもわからないので、この回路が機能する場合、どのサイズが必要ですか?


繰り返しますが、ソフトウェアのデバウンスを行わなくても、ビルドを簡単にするためにこれを単純化しようとしています。コンデンサの動作を見ると、これは動作するように見えますが、静電容量が大きすぎるとボタンが長押し/遅延する可能性もあります。これらは一般に電源のノイズを「滑らかにする」ために使用されます。したがって、これはバウンスを「滑らかにする」のと同じようなものではないでしょうか?(必要に応じて)動作させるための回路の変更も歓迎します。


1
我々は前にそれを議論してきたのはここです:electronics.stackexchange.com/questions/6884/...
通称アンディ・

5
少なくとも50ミリ秒の間隔でポーリングするだけで入力をデバウンスできることに気付いていますか?あなたのaduinoのためにやるべき仕事が少ない:)
ウーターヴァンOoijen

1
50ミリ秒になるでしょう-良い点Mr O
Andy aka

1
いいえ、少なくとも50ミリ秒の間隔でポーリングを行い、検出したレベルに応じて必要なことを行います。
WouterヴァンOoijen

1
@AnnonomusPerson-シングルスレッド環境でのdelay()は、他に何も起こらないことを意味します。それは1つのオプションですが、別の方法は、再度確認する時が来るまで他の有用な作業を行うことです。
クリスストラットン

回答:


12

スイッチのデフォルト状態によって異なります。コンデンサは、正の電圧を与えたときにのみ充電されます。通常、組み込み環境では、プルアップを使用してピンにデフォルトのハイ状態を与え、スイッチをグランドにリンクします。コンデンサを追加しても、基底状態を「保存」しないため、ここでは役に立ちません。

ただし、プルダウンを使用することもできます。これは、ピンがデフォルトで低いことを意味します。スイッチを押して高くすると、コンデンサが充電されます。解放後、コンデンサはピンをしばらくの間ハイに保ちますので、はい、これは機能します。1uFで十分なのか、少なすぎるのか、多すぎるのか定かではありません。スコープを見て、少し試してみることをお勧めします。


だから私が変更し+-それが機能する場合はどうなりますか?
匿名ペンギン

@AnnonomusPersonそれは依存します。スイッチのデフォルト状態は何ですか?

それは電気を伝導するかどうかが押されていないときですか?それがあなたの言うことなら、私は使用しているスイッチの性質のためにどちらの方法でもできます。私の質問内のリンク、を見ていない押され、ボタンから導通top left to the bottom leftthe top right to the bottom right。を押すと、、top left to the bottom rightおよびから実行されtop right to the bottom leftます。
匿名のペンギン

はい。これは、デフォルトでピンを低くすることを意味します。ボタンを離す前にコンデンサが充電されるように、スイッチは+に接続する必要があります。

3
@AnnonomusPersonいいえ、スイッチは+に接続する必要があります。これは、スイッチを押しときに接続するものの専門用語です。コンデンサは正しい場所にあります。抵抗は、グランドからIOピンに直接接続する方が適切です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.