これはADC入力設定として機能しますか?それは一般的ですか?


8

これはうまくいくでしょうか?理論的にはそれで十分だと私は確信していますが、頻繁にまたはまったく表示されません。理論的には、2:1から1:2までの分圧器は、ポットの一方の端に3.3v、もう一方の端に1.6vを与える必要があり、ADCに幅広い動作範囲を与えます。ボタンが押されると、R1 + RVは最大20kのプルアップとして機能するため、ラインは0vになり、ADCをコード化して一意のイベントとして認識し、ボタンとポットの両方を存在させることができます。同じ入力ピンで、ADCが両方の目的を果たすことを可能にします。

ADCはすでにポットについてポーリングされているため、コードを大幅に変更することなく、入力ピンが保存されます。

概略図

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

これでうまくいくだろうか、もしそうなら、好奇心として、なぜこれほど人気が​​ないのか


3
それはうまくいくでしょう。おそらく、スイッチ全体に小さなコンデンサを追加して、ポットスイープスパイクをバイパスし、スイッチの使用時にデバウンスを提供します。
Anindo Ghosh 2013

まったく同じではありませんが、この回路図を見て、見慣れたものを見つけてみてください。sainsmart.com
zen

@jippieいいえ、私は抵抗ラダーを複数のボタンとして知っています。これはかなり一般的です(車のステアリングホイールのラジオコントロール、ipod / iphoneインラインコントロール)。具体的には、私が尋ねていたのと同じadcでのポットとボタンの使用です。
2013年

2
このようにして、ポットポジションの読み取りでいくつかの解決策を犠牲にします。アプリケーションや、ユーザーが回しているとユーザーが考えるコントロールの性質によっては、それで十分かもしれません。
RBerteig 2013年

1
両方のスイッチが同時に押される可能性がない限り、入力をVCCにプルする2番目のスイッチを特定できます。したがって、単一のADC入力で1つのアナログ調整と2つの相互に排他的なスイッチクロージャをデコードすることは悪いことではなく、ピン数の少ないマイクロでは有用なトリックになる可能性があります。両端にハードリミットスイッチが付いている位置感覚を考えてください。次に、それらは機械的に排他的で、アナログ信号にも適合します。
RBerteig 2013年

回答:


6

はい、注意が必要な問題がいくつかありますが、機能するはずです。

トリッキーな問題は、0 Vのスイッチレベルとポットレベルの間の遷移を検出して無視するように注意する必要があることです。それらのいくつかは有効なポットレベルのように見えるため、スイッチとポットの間をスルーしているときに、ポットレベルのように見えるものが実際の電圧なのか、中間電圧なのかを判断するために、複数のサンプルを考慮する必要があります。実際のスイッチはバウンスするので、これはおそらく想像以上に扱いにくいことに注意してください。有効なポット電圧について知っていることの1つは、それがそれほど速く変化できないことです。これは、中間の読みを取り除くのに役立つはずです。

別の問題は、スイッチが押されたときにポットを読み取ることができないことです。この設定では、これについてできることは何もありません。それが問題になるかどうかは、システムと、ポットの位置と押されたスイッチの意味に依存します。

これが「頻繁に」行われるかどうかはわかりません。ポット入力自体は珍しいですが、もちろん存在します。このスキームが意味を持つためには、プッシュボタンとユーザーからの継続的な設定の両方を必要とするシステムが必要であり、余分なピンを使いたくないのです。これが28ピンマイクロへのフィッティングと44ピンマイクロの使用の違いである場合、私はおそらくそれを行うでしょう。他のピンが残っている場合は、複雑度を低く保つ方が良いため、これを実行しません。ポットとボタンの別々のピンが簡単になるため、ファームウェアにバグが発生する可能性が低くなります。


2

私は、ADCを問題なく入力として使用しました。

ポットはありませんでしたが、入力電圧を下げるための2つの抵抗分割器(ADC入力が最大2/3 VccのATxmegaにありました)と、入力を接地。

うまくいくと思います。

おそらく心に留めておくべきことの1つは、ボタンが完全に地面につかない場合があることです。スイッチの抵抗によっては、入力に数ミリボルトの電圧がかかる場合があるため、ボタンが押された結果、ADC値が0になるのではなく、ADC値が<〜10カウントまたはその前後であるとは限りません(これをテストしてください!)


ADCが導電性のゴム製スイッチに使用されているのを見てきましたが、その理由は、ソフトウェアが経年変化による抵抗の増加を補償できるという理論的根拠にあります。
starblue 2013年

2

これらすべての回答とそのコメントは優れており、多くの洞察を追加します。賞金に値するものを確認しようとしていますが、これも追加したいと考えています。

これについての詳細なアプリノートを見つけました。スイッチだけでなく、スイッチとポットが同じADC入力にあります。グラフィック付きPDFバージョン

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

この記事には、バイアス抵抗とポットの選択方法に関する式(および物事を自動化するためのExcel 2007スプレッドシート)が含まれていますが、マイクロコントローラーのサンプルコードは使用できなくなりました。

この手法の制限は、一度に複数のプッシュボタンを押すことができないことです。さらに、マイクロコントローラは、他のプッシュボタンを押していない場合にのみ、ポテンショメータの位置を読み取ることができます。この例は、2つのプッシュボタンの使用方法を示していますが、プッシュボタンの数は異なる場合があります。入力範囲は、最大10個の押しボタンと1つのポテンショメータで使用でき、すべて同じ入力ピンを共有します(図2)。計算された範囲は重複せず、一意ですが、ADCハードウェアがすべての状況でこれらの帯域を確実に区別できるかどうかは疑問です。小さい抵抗値を選択すると、これらの帯域がさらに離れ、ガード範囲が広くなります。

4つのプッシュボタンと1つのポテンショメーターでこの手法を使用することは十分に理にかなっています。スプレッドシートを試してみると、各スイッチとその出力範囲に適切な直列抵抗値をすばやく決定するのに役立ちます。

このアプリケーションノートのハッカデイコメントスレッド

同じピンに複数のボタンがあることも、リソースに関する適切な質問です。


私たちが設計した組み込みシステムは、コード化された電圧を使用してほとんどのボタンを識別し、コアのSOCのリファレンスデザインで設定された例に従っています。多くのキー、1つのGPIOピン。すべてのボタンが互いに物理的に分離されており、ユーザーが一度に複数のボタンを押そうとする理由がないため、かなりうまくいきます。
RBerteig 2013年

1

これは、地面に接続されていないポットの位置を感知する場合、または地面に近づかないことがわかっている他のアナログソースを使用する場合に機能し、ADCの解像度を失うことを気にしません。

より一般的なケースでは、多くのアナログセンサー入力がグラウンドを基準とし、状況によってはグラウンドに移動する可能性があるため、このスキームは使用できません。また、多くのアナログソースは、多くの場合、魔法の煙を放出することにより、接地に反対することがあります。

この回路は、もう1つのデジタル入力が本当に必要で、制限を認識している場合に使用できますが、一般的な使用にはお勧めしません。


1
そして、それはおそらくそうではない理由だという共通。しかし、ノブとスイッチ(シャフトをクリックして入る?)がある場合は、1つのピンから両方を読み取ることができます。
RBerteig 2013年

@RBerteigこれを尋ねるとき、私はそれらのタイプのコンボポット/スイッチについて完全に忘れていました。これは非常に適切なアプリケーションです。
通行人2013年

@PeterBennettは、アナログセンサーの入力がアースに行く可能性がある、またはアースに反対するアナログソースに行く可能性があると説明した場合、それについて説明/説明できますか?私の特定のケースでは、これは一般的なMCUのADC入力であり、直接のVCCまたはGnd参照入力の取得に問題はありません。
通行人2013年

@Passerby:ADC入力をボタンと共有しているセンサーの出力がグランド(またはそれに近い)になると、プログラムはセンサーの読み取り値が低いこととボタンを押すことを区別できなくなり、アナログセンサーの出力が低いときにボタンの押下を検出します。アナログセンサーに「トーテムポール」出力または他の低インピーダンス出力ステージがある場合、プッシュボタンがラインを引き下げると、魔法が発煙する可能性があります。
Peter Bennett

@PeterBennettなので、ポット/ボタンと別のセンサーの間でそのADC入力を共有している場合にのみ問題になりますか?上記のポート/ボタンのコンボのみを実行している場合、問題はありませんか?
2013年

1

これはうまくいくはずです。しかし、あなたはそれをより良くすることができるでしょう、それが私がそれが一般的であることを疑う理由です。

  1. フルレンジ(0〜5V)のADCがあると仮定すると、R1とR2を小さくすると、ダイナミックレンジが拡大し、ポテンショメーターの位置の分解能が向上します。もちろん、R2をゼロに減らすことはできません。または、スイッチのアクティブ化の明確さを失います。

  2. 可能な限り低電力ではありません。セラミックコンデンサ(たとえば10nF)をスイッチに接続する余裕がある場合、抵抗を10倍または100倍に簡単に増やすことができ、それに応じて消費電力を削減できます。コンデンサは、ADCから見た電圧をローパスフィルタリングし、低インピーダンスの電圧源を提供することで、精度と再現性にも役立ちます。そして最後に、スイッチのデバウンスが発生します(ほとんどすべての機械式スイッチが接触バウンスを示し、一度操作するとすぐに複数回接触が開閉するため、ソフトウェアまたはハードウェアのいずれかでデバウンスが必要です)。前に指摘したように、電位差計を回したときに明確な動作を得るには、このようなコンデンサも重要です。これにより、少なくとも断続的に高インピーダンスの形で過渡現象が発生する可能性があります。

    もちろん、そのようなコンデンサーでは、C * Rが時定数になります(スイッチのリリースから0.1秒以内に(1-e)^ 3の精度が必要な場合は、10 nFと3メガ-オーム...)

  3. ソフトウェアには注意が必要です。スイッチとポテンショメーター内の機械的な動きの両方からトランジェントが表示されます。コーディングするのは難しくありませんが、1つのADC変換結果をクエリするよりも複雑です。少なくとも、読み取った値が複数の変換にわたって十分に安定しているかどうかを確認して、一時的でないと想定する必要があります。

  4. 不要なコンポーネントが含まれている可能性があります。R1は何に適していますか(ADCの入力範囲が正のレールまで達していると仮定した場合)?R1がADC範囲に収まるように最大出力電圧を制限することになっている場合、なぜ電位差計は正のADCレールまたはそのすぐ下の基準電圧から給電されないのですか?代わりにポテンショメータの出力に電流制限抵抗が必要ですが、それよりも優れています。このようなアナログ電源電圧は、ICの電源電圧(5Vバッテリーをシンボル化するものと想定しています)よりもはるかに安定させることができるため、ADC変換でのテクニカルノイズを減らすことができます。

    そして最後に、最大出力電圧を下げるためにR1が必要ない場合でも、回路の同じ変更は、他の場所で+ 5Vに接続するだけの簡単なアナログ電源への移行と組み合わせると、上記、および追加のコンポーネントなしでADC入力範囲をより適切に利用する。


1
ポイント4は間違っています。R1は必要な目的を果たします。これは、スイッチが押されてポットがトップ設定にあるときに電源電流を制限することです。R1がない場合、ポットが上にあるときにスイッチが電源を短絡させます。
Olin Lathrop

あなたが正しいです!私は修正された立場です。残りのポイント4をサルベージする方法はまだわかりませんが、はい、現時点ではすべてが正しいわけではありません。
ピラミッド

同じ可能性のある改善を提供しながら、なんとか間違いを訂正できたと思います。
ピラミッド

露骨なエラーを修正したため、反対票を取り消しました。しかし、私はまだ同意しません。それは、より良いことは、供給と測定レシオメトリックを行うため、A / Dに電力を供給する同じ電源に接続されたR1の上面を残します。A / Dおよび抵抗分割チェーンが同じ基準電圧を使用する場合、その電圧の変動は相殺されます。
Olin Lathrop 2013年

ありがとう。レシオメトリック構成では、+ 5 Vが適切な基準電圧であり、R1を削除してもそれは変わりません。しかし、それでもレシオメトリック設定のより広い範囲を利用することで役立ちます。考えられる唯一の欠点は、R2とRvの温度係数が大きく異なる場合です。次に、ポテンショメータが正確に50%に設定されている場合にのみ、元の回路が効果をキャンセルします。しかし、効果は非常に小さく、言われたように、これはまあ、とにかく1つのポテンショメータ設定に対してのみ機能します。
ピラミッド

1

私はないでしょう一つの理由のために分圧器をお勧めします。

高インピーダンスデバイスを接続して測定すると、デバイスと回路の任意の抵抗との間に等価抵抗が生じ(並列等価)、抵抗の関係が変化します。

たとえば、抵抗とポットを50〜50%に構成した場合、デバイスを接続すると49〜51%になります。ADCのインピーダンスが高いため、あまり変化しませんが、精度が低下します。つまり、ADCを等価抵抗を変更する別の抵抗として見ることができます。

概略図

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


それは、ADCを備えたポットを使用すると、その固有の不正確さが生じることを意味しませんか?
通行人2013年

ポットの理由だけでなく、ADC自体にインピーダンスがあり、それをボルタジェディバイダーに接続すると、R2に並列抵抗があるような関係になるため、関係が変化します。
Chirry、2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.