Kann dies als ADC-Eingangs-Setup funktionieren und ist es üblich?

8

Würde das funktionieren? Ich bin mir theoretisch ziemlich sicher, dass es so sein sollte, aber ich sehe es nicht oft oder überhaupt nicht. Theoretisch sollte der Spannungsteiler von 2: 1 bis 1: 2 an einem Ende 3,3 V und am anderen Ende des Topfes 1,6 V liefern, was dem ADC einen weiten Arbeitsbereich bietet. Und wenn die Taste gedrückt wird, fungiert der R1 + RV als maximal 20.000 Pullup, sodass die Leitung auf 0 V herunterfällt, was vom ADC als eindeutiges Ereignis codiert werden kann, sodass sowohl eine Taste als auch ein Pot vorhanden sind auf demselben Eingangspin, sodass der ADC beide Zwecke erfüllen kann.

Ein Eingangs-Pin wird ohne wesentliche Codeänderungen gespeichert, da der ADC bereits für den Pot abgefragt wird.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Würde das funktionieren, und wenn ja, aus Neugier, warum ist das nicht beliebter?

Passant
quelle
3
Es würde gut funktionieren. Fügen Sie möglicherweise einen kleinen Kondensator über dem Schalter hinzu, um die Pot-Sweep-Spitzen zu umgehen und bei Verwendung des Schalters ein gewisses Entprellen zu ermöglichen.
Anindo Ghosh
Nicht genau das gleiche, aber schauen Sie sich diesen Schaltplan an und versuchen Sie, etwas zu finden, das Ihnen
jippie
@jippie nein, ich kenne Widerstandsleitern als mehrere Tasten, das ist ziemlich üblich (Autolenkrad-Funksteuerung, iPod / iPhone-Inline-Steuerung). Es ist speziell die Verwendung eines Topfes und von Knöpfen auf dem gleichen ADC, nach dem ich gefragt habe, ich habe es nie gesehen.
Passant
2
Auf diese Weise opfern Sie eine gewisse Auflösung beim Ablesen der Topfposition. Dies kann durchaus akzeptabel sein, abhängig von Ihrer Anwendung und der Art des Steuerelements, von dem der Benutzer glaubt, dass er sich dreht.
RBerteig
1
Sie können einen zweiten Schalter identifizieren, der den Eingang zu VCC zieht, solange keine Chance besteht, dass beide Schalter gleichzeitig gedrückt werden. Das Decodieren einer analogen Einstellung und zweier sich gegenseitig ausschließender Schalterverschlüsse mit einem einzigen ADC-Eingang ist also nicht schlecht und kann ein nützlicher Trick in einem Mikro mit niedriger Pinanzahl sein. Denken Sie an den Positionssinn mit harten Endschaltern an jedem Ende. Dann sind sie mechanisch exklusiv und passen sogar zum analogen Signal.
RBerteig

Antworten:

6

Ja, es sollte funktionieren, obwohl es einige Probleme gibt, auf die Sie achten müssen.

Das schwierige Problem ist, dass Sie vorsichtig sein müssen, um die Übergänge zwischen dem 0-V-Schalterpegel und dem Topfpegel zu erkennen und zu ignorieren. Einige von ihnen werden wie gültige Pot-Levels aussehen, daher müssen Sie mehrere Proben berücksichtigen, um zu entscheiden, ob ein Pot-Level real oder nur eine Zwischenspannung ist, während Sie zwischen dem Schalter und dem Pot schwenken. Denken Sie daran, dass echte Schalter abprallen, was schwieriger ist, als Sie sich wahrscheinlich vorstellen. Eine Sache, die Sie über eine gültige Topfspannung wissen, ist, dass sie sich nicht so schnell ändern kann. Dies sollte helfen, Zwischenwerte auszusortieren.

Ein weiteres Problem ist, dass Sie den Topf nicht lesen können, wenn der Schalter gedrückt wird. Mit diesem Setup können Sie nichts dagegen tun. Ob dies wichtig ist, hängt vom System ab und welche Bedeutung die Topfposition und ein gedrückter Schalter haben.

Ich kann nicht sagen, ob dies "oft" gemacht wird oder nicht. Pot Inputs an sich sind ungewöhnlich, aber natürlich existieren sie. Damit dieses Schema sinnvoll ist, müssen Sie über ein System verfügen, das sowohl eine Drucktaste als auch eine kontinuierliche Einstellung des Benutzers benötigt und bei dem Sie den zusätzlichen Stift wirklich wirklich nicht ausgeben möchten. Wenn dies der Unterschied zwischen dem Einbau in ein 28-Pin-Mikro oder der Verwendung eines 44-Pin-Mikros ist, würde ich es wahrscheinlich tun. Wenn ich noch andere Pins übrig hätte, würde ich das nicht tun, weil es besser ist, die Komplexität gering zu halten. Separate Stifte für den Topf und den Knopf werden einfacher und daher weniger wahrscheinlich, dass Fehler in der Firmware auftreten.

Olin Lathrop
quelle
2

Ich habe ADCs ohne Probleme als Eingaben verwendet, in einer Topologie, die Ihrer sehr ähnlich ist.

Ich hatte keinen Poti, aber ich hatte einen Zwei-Widerstands-Teiler, um die Eingangsspannung zu reduzieren (es war bei einem ATxmega mit einem ADC-Eingang von maximal 2/3 Vcc) und einen Schalter, an den der Eingang gezogen werden konnte Boden.

Ich denke, es wird gut funktionieren.

Eine Sache, an die Sie wahrscheinlich denken sollten, ist, dass der Knopf Sie möglicherweise nicht vollständig auf den Boden bringt. Abhängig vom Schaltwiderstand haben Sie möglicherweise noch einige Millivolt am Eingang. Sie sollten also nicht davon ausgehen, dass das Drücken der Taste zu einem ADC-Wert von 0 führt, sondern zu einem ADC-Wert von <~ 10 Zählwerten oder so ungefähr ( teste das!).

Connor Wolf
quelle
Ich habe gesehen, dass ADC für leitfähige Gummischalter verwendet wird, mit der Begründung, dass die Software dann einen erhöhten Widerstand aufgrund von Alterung ausgleichen könnte.
Starblue
2

Alle diese Antworten und ihre Kommentare sind gut und bieten viel Einsicht. Ich versuche zu sehen, wer das Kopfgeld verdient, wollte dies aber auch hinzufügen.

Ich habe einen detaillierten App-Hinweis zu genau dieser Sache gefunden. Nicht nur Schalter, sondern auch Schalter und ein Poti am selben ADC-Eingang. PDF-Version mit Grafiken

Geben Sie hier die Bildbeschreibung ein

Der Artikel enthält Formeln (und eine Excel 2007-Tabelle zur Automatisierung) zur Auswahl der Vorspannungswiderstände und des Potis, obwohl der Beispielcode für einen Mikrocontroller nicht mehr verfügbar ist.

Die Einschränkung dieser Technik besteht darin, dass Sie zu keinem Zeitpunkt mehr als einen Druckknopf drücken können. Außerdem kann der Mikrocontroller die Position des Potentiometers nur dann ablesen, wenn Sie keine anderen Drucktasten drücken. Dieses Beispiel zeigt, wie zwei Drucktasten verwendet werden, die Anzahl der Drucktasten kann jedoch variieren. Es stehen Eingangsbereiche für bis zu 10 Drucktasten und ein Potentiometer zur Verfügung, die sich alle den gleichen Eingangsstift teilen (Abbildung 2). Obwohl sich die berechneten Bereiche nicht überlappen und eindeutig sind, ist es zweifelhaft, dass Ihre ADC-Hardware diese Bänder unter allen Umständen zuverlässig unterscheiden kann. Durch Auswahl kleinerer Widerstandswerte werden diese Bänder weiter voneinander entfernt, wodurch ein größerer Schutzbereich entsteht.

Die Verwendung dieser Technik mit vier Drucktasten und einem Potentiometer liegt auf der Hand. Durch Experimentieren mit der Tabelle können Sie schnell die richtigen Vorwiderstandswerte für jeden Schalter und seinen Ausgangsbereich ermitteln.

Hackaday Kommentar Thread zu dieser App Hinweis .

Mehr als eine Schaltfläche in derselben PIN ist auch eine gute Ressourcenfrage.

Passant
quelle
Ein von uns entworfenes eingebettetes System verwendet codierte Spannungen, um die meisten seiner Tasten zu identifizieren. Dies folgt einem Beispiel, das in einem Referenzdesign für den SOC im Kern festgelegt ist. Viele Schlüssel, ein GPIO-Pin. Funktioniert ziemlich gut, da alle Tasten physisch voneinander getrennt sind und es keinen Grund für einen Benutzer gibt, zu versuchen, mehr als eine Taste gleichzeitig zu drücken.
RBerteig
1

Dies funktioniert zum Erfassen der Position eines Topfes, der nicht mit Masse verbunden ist, oder mit anderen analogen Quellen, von denen Sie wissen, dass sie nicht in Bodennähe gehen, vorausgesetzt, es macht Ihnen nichts aus, eine ADC-Auflösung zu verlieren.

Im allgemeineren Fall werden viele analoge Sensoreingänge auf Masse bezogen und können unter bestimmten Umständen auf Masse gehen, sodass dieses Schema nicht verwendet werden kann. Viele analoge Quellen können auch Einwände gegen eine Erdung erheben - häufig durch Abgabe des magischen Rauches.

Diese Schaltung könnte verwendet werden, wenn Sie wirklich verzweifelt nach einem weiteren digitalen Eingang suchen und sich der Einschränkungen bewusst sind, aber ich würde sie nicht für den allgemeinen Gebrauch empfehlen.

Peter Bennett
quelle
1
Und das ist wahrscheinlich der Grund, warum es nicht so häufig ist. Wenn Sie jedoch einen Knopf und einen Schalter haben (klicken Sie auf die Welle, um einzutreten?), Können Sie beide von einem einzigen Stift aus ablesen.
RBerteig
@RBerteig Ich habe diese Arten von Combo-Potis / Schaltern völlig vergessen, als ich danach gefragt habe. Das ist eine sehr geeignete Anwendung.
Passant
@PeterBennett Wenn Sie sagen, dass die analogen Sensoreingänge möglicherweise gegen Masse gehen oder analoge Quellen gegen eine Erdung protestieren, können Sie dies erklären / erläutern? In meinem speziellen Fall handelt es sich um eine allgemeine MCU-ADC-Eingabe, die kein Problem damit haben sollte, eine direkte VCC- oder Gnd-bezogene Eingabe zu erhalten.
Passant
@Passerby: Wenn der Ausgang des Sensors, der den ADC-Eingang mit der Taste teilt, auf Masse (oder in der Nähe davon) geht, kann Ihr Programm nicht zwischen einem niedrigen Sensorwert und einem Tastendruck unterscheiden und wird dies auch nicht tun Erkennen eines Tastendrucks, wenn der analoge Sensorausgang niedrig ist. Wenn der analoge Sensor einen "Totempfahl" -Ausgang oder eine andere niederohmige Ausgangsstufe hat, kann er die Magie rauchen lassen, wenn der Druckknopf die Leitung nach unten zieht.
Peter Bennett
@PeterBennett, also ist das nur ein Problem, wenn ich diesen ADC-Eingang zwischen dem Poti / Knopf und einem anderen Sensor teile? Wenn ich nur die obige Port / Button-Kombination mache, sollte das kein Problem sein, oder?
Passant
1

Das sollte funktionieren. Aber du könntest es besser machen, weshalb ich bezweifle, dass es üblich ist.

  1. Angenommen, Sie haben einen ADC mit vollem Bereich (0 bis 5 V), erhöht die Reduzierung von R1 und R2 Ihren Dynamikbereich und damit die Auflösung der Position des Potentiometers. Natürlich können Sie R2 nicht auf Null reduzieren oder verlieren die Unterscheidbarkeit einer Aktivierung des Schalters.

  2. Es ist nicht so stromsparend wie es sein könnte. Wenn Sie sich einen Keramikkondensator leisten können, z. B. 10 nF, um ihn über den Schalter anzuschließen, können Sie Ihre Widerstände leicht um den Faktor 10 oder sogar 100 erhöhen und den Stromverbrauch entsprechend reduzieren. Der Kondensator trägt auch zur Genauigkeit und Wiederholbarkeit bei, indem er die vom ADC gesehene Spannung tiefpassfiltert und eine niederohmige Spannungsquelle bereitstellt. Und schließlich wird der Schalter entprallt (Sie wissen wahrscheinlich, dass fast alle mechanischen Schalter einen Kontaktsprung aufweisen, der bei einmaliger Bedienung schnell mehrere Male Kontakt aufnimmt und unterbricht und ein Entprellen entweder in Software oder Hardware erfordert). Wie bereits erwähnt, ist ein solcher Kondensator auch wichtig, um beim Drehen des Potentiometers ein genau definiertes Verhalten zu erzielen, da dies Transienten erzeugen kann, zumindest in Form einer intermittierend hochohmigen.

    Mit einem solchen Kondensator ist C * R natürlich Ihre Zeitkonstante (wenn Sie also (1-e) ^ 3 Genauigkeit innerhalb von 0,1 s nach einer Schalterfreigabe wünschen, sollten Sie besser unter der Kombination von 10 nF und 3 Mega- bleiben. Ohm...)

  3. Ihre Software erfordert einige Sorgfalt. Sie sehen Transienten sowohl vom Schalter als auch von mechanischen Bewegungen im Potentiometer. Es ist nicht schwer zu codieren, aber komplizierter als nur ein einzelnes ADC-Konvertierungsergebnis abzufragen. Sie müssen zumindest überprüfen, ob der von Ihnen gelesene Wert über mehrere Konvertierungen hinweg ausreichend stabil ist, um anzunehmen, dass Sie sich nicht in einem Übergang befinden.

  4. Möglicherweise fügen Sie unnötige Komponenten hinzu: Wozu dient R1 (vorausgesetzt, Ihr ADC-Eingangsbereich reicht bis zur positiven Schiene)? Wenn R1 die maximale Ausgangsspannung begrenzen soll, die in Ihren ADC-Bereich passt, warum wird das Potentiometer dann nicht von einer Referenzspannung an oder nahe unter der positiven ADC-Schiene gespeist? Das würde stattdessen einen Strombegrenzungswiderstand am Ausgang des Potentiometers erfordern, aber es wäre besser. Da eine solche analoge Versorgungsspannung leicht wesentlich stabiler sein könnte als die IC-Versorgungsspannung (von der ich annehme, dass Ihre 5-V-Batterie ein Symbol ist), können Sie bei Ihren ADC-Konvertierungen weniger technische Störungen verursachen.

    Und selbst wenn R1 nicht benötigt wird, um die maximale Ausgangsspannung zu reduzieren, bringt dieselbe Änderung der Schaltung in Kombination mit einer Umstellung auf eine analoge Versorgung, die so einfach sein könnte wie das Anschließen an +5 V an anderer Stelle, den kombinierten Vorteil von über und besser Ihren ADC-Eingangsbereich ohne zusätzliche Komponente zu nutzen.

Pyramiden
quelle
1
Punkt 4 ist falsch. R1 dient einem notwendigen Zweck, nämlich der Begrenzung des Stromversorgungsstroms, wenn der Schalter gedrückt wird und sich der Topf in der höchsten Einstellung befindet. Ohne R1 würde der Schalter die Stromversorgung kurzschließen, wenn sich der Topf oben befindet.
Olin Lathrop
Sie haben Recht! Ich stehe korrigiert. Ich bin mir noch nicht sicher, wie ich den Rest von Punkt 4 retten soll, aber ja, nicht alles ist so, wie es jetzt ist.
Pyramiden
Ich glaube, ich habe es geschafft, den Fehler zu korrigieren und gleichzeitig das gleiche Verbesserungspotenzial anzubieten.
Pyramiden
Ich habe die Ablehnung rückgängig gemacht, weil Sie den offensichtlichen Fehler korrigiert haben. Ich bin jedoch immer noch anderer Meinung. Es ist besser , die Oberseite von R1 an dieselbe Stromversorgung anzuschließen, die den A / D versorgt, da dadurch die Messung mit der Stromversorgung ratiometrisch wird. Wenn die A / D- und die Widerstandsteilerkette die gleichen Referenzspannungen verwenden, heben sich Schwankungen dieser Spannung auf.
Olin Lathrop
Vielen Dank. Bei einer ratiometrischen Konfiguration ist +5 V die geeignete Referenzspannung, und das Entfernen von R1 ändert daran nichts. Es hilft jedoch, indem es einen größeren Bereich des noch ratiometrischen Aufbaus nutzt. Der einzig denkbare Nachteil ist, wenn R2 und Rv stark unterschiedliche Temperaturkoeffizienten haben. Dann hebt die ursprüngliche Schaltung den Effekt genau dann auf, wenn das Potentiometer auf genau 50% eingestellt ist. Aber der Effekt ist sehr gering, und wie gesagt, funktioniert die Kompensation sowieso nur für eine Potentiometereinstellung.
Pyramiden
1

Ich würde Spannungsteiler aus einem Grund nicht empfehlen:

Wenn Sie ein hochohmiges Gerät zum Messen anschließen, hat es einen aquivalenten Widerstand zwischen dem Gerät und einem Widerstand der Schaltung (parallele Äquivalenz), wodurch sich die Widerstandsbeziehung ändert.

Wenn Sie beispielsweise die Widerstände und den Poti auf 50-50% konfigurieren, beträgt der Wert beim Anschließen des Geräts 49-51%. Es wird sich aufgrund der hohen Impedanz des ADC nicht zu stark ändern, aber Sie verlieren an Genauigkeit. Ich meine, Sie können den ADC als einen weiteren Widerstand sehen, der den äquivalenten Widerstand ändert.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Chirry
quelle
Würde das nicht bedeuten, dass die Verwendung eines Topfes mit einem ADC diese inhärente Ungenauigkeit aufweist?
Passant
Nicht nur wegen des Potis, weil der ADC selbst eine Impedanz hat und wenn Sie ihn an den Voltaje-Teiler anschließen, ändert sich die Beziehung, weil es so wäre, als hätte er einen Parallelwiderstand zu R2.
Chirry