瞬間的なスイッチ制御をトグルにする


17

モーメンタリスイッチで2ステートのトグル出力を生成する最も簡単で安価で最小の方法は何ですか(ラッチモーメンタリスイッチ)。

言い換えると、出力は連続的に低く、ボタン/タクトスイッチを瞬間的に押すと、出力は連続的に高くなり、次にもう一度押すと再び低くなります。


これに対する最善の答えは、質問者と、ハードウェアまたはソフトウェアソリューションのどちらに慣れているかによって異なります。
J.ポルファー

また、この出力スイッチの場所と使用可能な電圧(状態!)によっても異なります。
XTL

デジタルロジックと同様に、ハイとローの2つの状態。サイクリング中の複数の状態を実行する場合、マイクロコントローラーが必要だと思います。とにかくあなたはおそらくあなたのサーキットにそれを持っているでしょう。
エンドリス

私は2つのインバーターを備えたソリューションが好きです。これを有効にして30V @ 1Aを切り替えるには何が必要なのでしょうか?
-stevenrcfox

@Overlow:出力トランジスタをパワートランジスタまたはリレーに交換します
エンドリス

回答:


9

2つのインバーターとデバウンスを使用する別の方法を次に示します。

2つのインバーター

ロジック出力には、2つのインバーター、RC、およびフィードバック抵抗器のみが必要です。

ここに画像の説明を入力してください

NC7WZ14は0.06ドルで、2つのインバーター、小さな6ピンパッケージ、およびシュミットトリガー入力を備えていますが、この回路はRCのためにシュミット入力すら必要ないと思います。また、24 mAを駆動できるため、何らかの理由でLEDを使用している場合は、LEDを直接接続できます。

ここここでは、トグルタッチスイッチとしても表示されます

フィードバック抵抗は、ボタンを押したときに発振しないように中央の抵抗よりもはるかに小さくする必要があると思います。出力への低インピーダンス接続により、手放すまでコンデンサが中間電圧まで充電されないためです。

バリエーションについては、「ON押す -OFFを押す」ソフトラッチ回路で説明されています。

ANDゲートバリアント


これが最初に電源投入されると、出力をオン、オフ、またはランダムに起動しますか?回路を検査するだけで、出力がオンになるとパワーアップするのではないかと思います。
クレイグマックイーン

@CraigMcQueen最初に電源が投入されたとき、コンデンサの両端の電圧は0 Vになります。したがって、最初の回路はオンの位置で開始されます。コンデンサをグランドではなく電源に接続すると、オフ位置で開始します。
エンドリス

@CraigMcQueen実際にそれは保証されていますか?よく分かりません。インバータの低出力インピーダンスは220k抵抗よりも支配的であるため、ランダムな状態で起動する可能性があります。
エンドリス

Voutが0になるよう、0.01μFコンデンサ0 Vで始まります示す最後回路@CraigMcQueen
endolith

@endolith最後の画像のどこにVCCが接続されていますか?グラウンドとVoutが見えます。
マイク

7

1つの可能な方法:

RCを使用してスイッチをデバウンスする

一時的なスイッチに接続されたRCネットワークがデバウンス

次に、それをDフリップフロップに送り、出力を入力にフィードバックしてTフリップフロップを実装します。

トグルフリップフロップとして構成されたDフリップフロップ

Dフリップフロップは、正のエッジトリガーのみで、反転出力が必要です。

  • 8ピンNC7SZ74は動作するはずで、非常に小さく、価格は0.12ドルです。
  • 74HC74は、14ピンの0.05ドルのデュアルDフリップフロップです。

これに何か問題はありますか?立ち上がり時間がクロック入力をトリガーするには、スイッチを短時間押し続ける必要がありますが、これはおそらく適切です。ボタンを押したままにすると、1回だけトリガーされます。これは良いことです。代わりに、フィードバックループなどでデバウンスするより良い方法はありますか?


5
ボタンからの入力にシュミットトリガーバッファが実際に必要です(または、フリップフロップにシュミットトリガー入力があり、これも機能する場合)。そうしないと、ボタンを放したときにクロック入力がゆっくりと立ち上がると、FFが瞬間的に振動する場合があります。(これは、デバウンスキャップと抵抗を慎重に選択することで多少緩和できますが、排除されることはありません)
コナーウルフ

バウンスを防ぐためにフィードバックパスでRCフィルターを使用することもできませんか?
エンドリス

6

または、単一の小さな6ピンマイクロコントローラーで他のコンポーネントを使用せずに実行できます。少しコストがかかるかもしれませんが、よりシンプルでスペースを取りません。ソフトウェアでスイッチをデバウンスするのは簡単です。出力を高くしたり低くしたりする必要がある場合にブール値を格納する方法にすぎません。このmcuの最小バージョンは、2mm x 2mmの表面実装パッケージで提供されます。大量の場合、0.50ドルになる可能性があります。

トグル回路図


+1-ただし、その一部はSMTにしか含まれないと考えています。
J.ポルファー

1
ええ、しかし、最も安価なマイクロコントローラーでさえ、単純なデジタルロジック以上の費用がかかります。単純なタスクを実行するのは非常に複雑なシステムであり、ソフトウェアバグの世界に自分をさらけ出しています。また、すべてのマイクロをプログラミングすることで生産コストが増加しますか?
エンドリス

だから、デジタル入力として設定されたPB0の内部プルアップ抵抗を使用し、それを接地してトリガーしますか?このようにスイッチと直列に抵抗を接続する必要はありません。
エンドリス

1
@TokenMacGuy PB0は出力ではなく入力になるため、PB0からGNDに電流は流れません。@endolithが正しい場合、内部プルアップを使用すると、外部プルアップが不要になります。(さらに、プルアップはスイッチと直列ではなく、内部または外部プルアップのいずれかです)。SMTで提供される@sheepsimulatorは、愛好家にとってのみ問題です。その場合、1ドルか2ドル余分に問題なく、8ピンDIP ATtiny25に簡単にアップグレードできます。
-davr

@endolithそれは私が推測するアプリケーションによって異なります。常にトレードオフがあります。最も基本的なデバイス以外のすべてには、何らかのロジックが含まれています。ソフトウェアバグの世界に自分自身を開放すると言うことは、それほど大したことではありません...ロジックを実行するために何らかのデジタル/アナログ回路を構築しているので、ハードウェアバグに自分を開放しなければなりません。
-davr

1

この回路ここでも説明します)は非常に安価ですが、より複雑であり、すべてのコンポーネントでいくらかのスペースを占有します。トランジスタが大量に0.02ドルのような場合、合計で0.10ドルになるでしょうか?

3トランジスタラッチスイッチ


$、0.02 ...あなたが買うならば、多分それらの27,000はここで好き:search.digikey.com/scripts/DkSearch/...
davr

1
0.03ドルは、少量で0.02ドルのようなひどいロットです。
SingleNegationElimination

1.4セントの3904newark.com/on-semiconductor/mmbt3904lt1g/… 大量の場合、コンデンサは1セント、抵抗器は1/10セントのようです。
エンドリス

トランジスタQ2は、ベースに流れる電流を制限するために、ベースに抵抗が必要であるように見えます。
クレイグマックイーン


0

私はそれがそれを行うための「間接的な」方法であることを知っていますが、sparkfunのようなホール効果センサーを得ることができます:http : //www.sparkfun.com/commerce/product_info.php? products_id=9312

磁石を使用すると、この特定のホール効果がラッチすることが(難しい方法で)わかったので、必要なものには機能しませんが、理論的には探しているものには機能するようです。

私はそれをブレッドボードに差し込んだだけで、抵抗器を使用したかもしれないと思います(おそらく1ヶ月だったので詳細が少し曖昧です)、そして磁石を近づけると(瞬間的に)センサーを閉じますあなたが行く。


1
どうやって「ラッチ解除」しますか?磁石をもう一度センサーに近づけても、磁石が外れることはありませんか?
-davr

磁石の極性を反転させて「クリア」する必要があると思いますが、確実にテストするために自宅で再度接続する必要がありますが、「リセット」にかかる時間を調べています電源を切ると。私は、指定された時間(それはあまりにも長くはありません提供)の電源を殺すことによって、私はするつもりだったというのが私のプロジェクトのためにそれを使用することができるかもしれない
onaclov2000

0

最も簡単な代替方法は、交互の押しボタンスイッチを使用することです。

異なる位置でラッチするという事実を無視すると、ほとんど瞬間的なスイッチのようになります。これは質問の精神ではないが、ソフトウェアや外部ハードウェアを必要としないシンプルでコンパクトなソリューションであることは理解しています。


0

最終目標が正確にはわからないが、私はこれをそこに出すと思った:

これは、双安定リレーを駆動するために使用するのが好きな、非常に小さな回路です。ビルドするのもかなり安いです。

モーメンタリスイッチを押すと、リレーとLEDの状態が切り替わります。ボタンを押し続ける時間についてはあまり気にしません。リレーはラッチしているため、ほとんどの場合、ほとんど電流を流しません。

この構成では、リレーがセット状態にあるときにLEDがオンになり、リレーがリセットされるとオフになります。R7をC3の+端子に接続して、代わりにリレーがリセットされたときにLEDをオンにすることもできます。

ギターのエフェクトでこれを使用して、一時的なフットスイッチでデバイスをバイパスまたは操作できるようにします。もちろん、3PDTスイッチはそれ自体で同じことをしますが、この方法は切り替えが静かで(大きなポップはありません)、瞬間的なソフトタッチフットスイッチは大きな3PDTスイッチよりもずっといい感じです。

お役に立てれば。

ラッチングリレードライバー


0

ソフトウェアでそれをするだけではできませんか?

ボタンはプログラマブルデバイスの入力になりますか、それともハードウェアレルムでトグルを行う必要がありますか?

ボタンの状態をメモリに保存することにより、一時的なスイッチをトグルとして使用するのは非常に簡単です。

boolean buttonState = false; // store for toggle state, false = off true = on

if(yourButton == HIGH && buttonState == false) // if button is pressed and toggled off
{
     Serial.println("Button Toggled On"); // do something while button is on

     buttonState = true // set button state to on
}

if(yourButton == HIGH && buttonState == true) // if button is pressed and toggled on
{
     Serial.println("Button Toggled Off");  // do something else while button is off

     buttonState = false // set button state to off
}

これが基準を外れている場合は申し訳ありませんが、明らかにこの答えはMCUまたはプログラマブルチップを使用していることに依存します。


個人的には、スタンドアロンのソリューションが必要ですが、質問は一般的なものです。
endolith

1
はい、それは確かにあなたがマイクロプロセッサを持っているときに賢明なソリューションです。スイッチとボタンは切り替え時にうるさいため、「デバウンス」も実装する必要があります。
クレイグマックイーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.