Schaltungen und Techniken zur Implementierung kapazitiver Berührungssensoren

Berührungssensor bauen (Transistor Schaltung) (November 2018).

Anonim

Schaltungen und Techniken zur Implementierung kapazitiver Berührungssensoren


Dieser Artikel stellt einige grundlegende Caps-Sense-Schaltungskonfigurationen vor und erläutert, wie mit nieder- und hochfrequentem Rauschen umgegangen werden kann.

zusätzliche Informationen

  • Elektrische Felder und Kapazität
  • Faktoren, die sich auf die Kapazität auswirken
  • Operationsverstärker-Oszillator-Schaltungen
  • Positives Feedback

Vorheriger Artikel

  • Einführung in die kapazitive Berührungssensorik

Veränderung messen

Wenn Sie den vorherigen Artikel gelesen haben, wissen Sie, dass das Wesentliche der kapazitiven Berührungssensorik die Änderung der Kapazität ist, die auftritt, wenn sich ein Objekt (normalerweise ein menschlicher Finger) einem Kondensator nähert. Das Vorhandensein eines Fingers erhöht die Kapazität, indem 1) eine Substanz (dh menschliches Fleisch) mit einer relativ hohen Dielektrizitätskonstante eingeführt wird und 2) eine leitfähige Oberfläche bereitgestellt wird, die eine zusätzliche Kapazität parallel zu dem vorhandenen Kondensator erzeugt.

Natürlich ist die bloße Tatsache, dass sich die Kapazität ändert, nicht besonders nützlich. Um tatsächlich eine kapazitive Berührungserfassung durchzuführen, benötigen wir eine Schaltung, die eine Kapazität mit ausreichender Genauigkeit messen kann, um die Zunahme der Kapazität, die durch die Anwesenheit des Fingers verursacht wird, konsistent zu identifizieren. Es gibt verschiedene Möglichkeiten, dies zu tun, einige sind einfach, andere sind anspruchsvoller. In diesem Artikel werden wir zwei allgemeine Ansätze zur Implementierung von kapazitiver Sinn-Funktionalität betrachten; der erste basiert auf einer RC (Widerstand-Kondensator) -Zeitkonstante und der zweite basiert auf Frequenzverschiebungen.

Die RC Zeitkonstante - Wie ein alter Freund

Wenn Sie wie ich sind, erleben Sie vage Gefühle der Nostalgie der Universität, wenn Sie die exponentielle Kurve sehen, die die Spannung an einem Lade- oder Entladekondensator darstellt. Da ist etwas dran - vielleicht war es eines der ersten Male, dass ich erkannte, dass höhere Mathematik tatsächlich eine Beziehung zur Realität hat, oder vielleicht gibt es in diesem Zeitalter der Traubenernte-Roboter etwas Anziehendes an der Einfachheit eines Entladungskondensators. Auf jeden Fall wissen wir, dass sich diese exponentielle Kurve ändert, wenn sich entweder der Widerstand oder die Kapazität ändert. Nehmen wir an, wir haben eine RC-Schaltung, die aus einem 1 MΩ-Widerstand und einem kapazitiven Berührungssensor mit einer typischen fingerlosen Kapazität von 10 pF besteht.

Wir können einen universellen Eingangs- / Ausgangspin (konfiguriert als Ausgang) verwenden, um die Sensorkappe auf die logisch hohe Spannung zu laden. Als nächstes müssen wir den Kondensator durch den großen Widerstand entladen. Es ist wichtig zu verstehen, dass Sie den Ausgangszustand nicht einfach auf logisch niedrig schalten können. Ein als Ausgang konfigurierter I / O-Pin steuert ein logisch niedriges Signal an, dh er liefert den Ausgang mit einer niederohmigen Verbindung zum Masseknoten. Somit würde sich der Kondensator durch diese niedrige Impedanz schnell entladen - so schnell, dass der Mikrocontroller die feinen zeitlichen Schwankungen, die durch kleine Änderungen der Kapazität erzeugt werden, nicht erfassen kann. Was wir hier brauchen, ist ein Pin mit hoher Impedanz, der fast den gesamten Strom zur Entladung durch den Widerstand zwingen wird, und dies kann durch Konfigurieren des Pins als Eingang erreicht werden. Zuerst setzen Sie den Pin als logisch hohen Ausgang, dann wird die Entladephase eingeleitet, indem der Pin auf einen Eingang gesetzt wird. Die resultierende Spannung wird ungefähr so ​​aussehen:

Wenn jemand den Sensor berührt und dadurch eine zusätzliche Kapazität von 3 pF erzeugt, erhöht sich die Zeitkonstante wie folgt:

Die Entladezeit ist für menschliche Verhältnisse nicht viel anders, aber ein moderner Mikrocontroller könnte diese Änderung sicherlich erkennen. Nehmen wir an, wir haben einen Timer mit 25 MHz getaktet; Wir starten den Timer, wenn wir den Pin in den Eingabemodus schalten. Wir können diesen Timer verwenden, um die Entladezeit zu verfolgen, indem wir den gleichen Pin als einen Trigger konfigurieren, der ein Capture-Ereignis auslöst ("Capturing" bedeutet, dass der Timer-Wert in einem separaten Register gespeichert wird). Das Capture-Ereignis tritt auf, wenn die Entladespannung den niedrigen Logikpegel des Pins, z. B. 0, 6 V, kreuzt. Wie im folgenden Diagramm gezeigt, beträgt die Differenz der Entladungszeit mit einem Schwellenwert von 0, 6 V ΔT = 5, 2 μs.

Mit einer Zeitgeber-Taktquellen-Periode von 1 / (25 MHz) = 40 ns entspricht dieses ΔT 130 Ticks. Selbst wenn die Kapazitätsänderung um den Faktor 10 reduziert würde, hätten wir immer noch 13 Unterschiede zwischen einem unberührten Sensor und einem berührten Sensor.

Die Idee besteht also darin, den Kondensator wiederholt zu laden und zu entladen, während die Entladezeit überwacht wird; Wenn die Entladezeit einen vorbestimmten Schwellenwert überschreitet, nimmt der Mikrocontroller an, dass ein Finger mit dem berührungsempfindlichen Kondensator "in Kontakt" gekommen ist (Ich setze "Kontakt" in Anführungszeichen, weil der Finger den Kondensator niemals tatsächlich berührt - wie oben erwähnt) Artikel, der Kondensator ist von der externen Umgebung durch Lötmaske und das Gehäuse des Geräts getrennt). Das wirkliche Leben ist jedoch ein wenig komplizierter als die idealisierte Diskussion, die hier vorgestellt wird; Fehlerquellen werden im Abschnitt "Umgang mit der Realität" weiter unten besprochen.

Variabler Kondensator, variable Frequenz

In der frequenzverschiebungsbasierten Implementierung wird der kapazitive Sensor als der "C" -Teil eines RC-Oszillators verwendet, so dass eine Änderung der Kapazität eine Frequenzänderung verursacht. Das Ausgangssignal wird als Eingang für ein Zählermodul verwendet, das die Anzahl der steigenden oder fallenden Flanken zählt, die innerhalb einer bestimmten Messperiode auftreten. Wenn ein sich nähernder Finger eine Erhöhung der Kapazität des Sensors verursacht, nimmt die Frequenz des Ausgangssignals des Oszillators ab, und somit nimmt auch die Kantenzahl ab.

Der sogenannte Relaxationsoszillator ist eine übliche Schaltung, die für diesen Zweck verwendet werden kann. Es erfordert einige Widerstände und einen Komparator zusätzlich zu dem berührungsempfindlichen Kondensator; Das scheint viel mehr Ärger als die oben besprochene Lade- / Entlade-Technik, aber wenn Ihr Mikrocontroller ein integriertes Komparator-Modul hat, ist es nicht so schlimm. Ich werde nicht näher auf diese Oszillatorschaltung eingehen, weil 1) es an anderer Stelle diskutiert wird, einschließlich hier und hier, und 2) es unwahrscheinlich erscheint, dass Sie den Oszillatoransatz verwenden würden, wenn es viele Mikrocontroller und diskrete ICs gibt bieten leistungsfähige kapazitive Touch-Sensing-Funktionalität. Wenn Sie keine andere Wahl haben, als Ihre eigene kapazitive Berührungssensorschaltung zu erstellen, denke ich, dass die oben diskutierte Lade- / Entladetechnik einfacher ist. Ansonsten, machen Sie Ihr Leben ein wenig einfacher, indem Sie einen Mikrocontroller mit dedizierter Cap-Sense-Hardware wählen.

Die kapazitive Peripherie in den EFM32-Mikrocontrollern von Silicon Labs ist ein Beispiel für ein integriertes Modul, das auf dem Relaxations-Oszillator-Ansatz basiert:

Der Multiplexer ermöglicht die Steuerung der Oszillationsfrequenz durch acht verschiedene berührungsempfindliche Kondensatoren. Durch schnelles Durchlaufen der Kanäle kann der Chip effektiv acht berührungsempfindliche Tasten gleichzeitig überwachen, da die Betriebsfrequenz des Mikrocontrollers relativ zur Geschwindigkeit, mit der sich ein Finger bewegt, so hoch ist.

Umgang mit der Realität

Ein kapazitives Berührungssensorsystem wird sowohl von hochfrequentem als auch von niederfrequentem Rauschen betroffen sein.

Das hochfrequente Rauschen verursacht geringfügige Variationen von Probe zu Probe in der gemessenen Entladungszeit oder Kantenanzahl. Zum Beispiel könnte der oben diskutierte fingerlose Lade / Entlade-Schaltkreis eine Entladezeit von 675 Ticks, dann 685 Ticks, dann 665 Ticks, dann 670 Ticks und so weiter haben. Die Signifikanz dieses Rauschens hängt von der erwarteten fingerbedingten Änderung der Entladungszeit ab. Wenn die Kapazität um 30% zunimmt, beträgt das ΔT 130 Ticks. Wenn unsere Hochfrequenzschwankung nur etwa ± 10 Ticks beträgt, können wir das Signal leicht vom Rauschen unterscheiden.

Ein Anstieg der Kapazität um 30% ist jedoch wahrscheinlich in der Nähe der maximalen Änderungsmenge, die wir vernünftigerweise erwarten konnten. Wenn wir nur eine Veränderung von 3% erhalten, beträgt das ΔT 13 Ticks, was zu nah am Grundrauschen ist. Eine Möglichkeit, den Effekt von Rauschen zu reduzieren, besteht darin, die Größe des Signals zu erhöhen, und zwar durch Reduzieren der physikalischen Trennung zwischen dem PCB-Kondensator und dem Finger. Oft wird das mechanische Design jedoch durch andere Faktoren eingeschränkt, so dass Sie das Beste aus jeder Signalstärke herausholen müssen. In diesem Fall müssen Sie das Grundrauschen verringern, was durch Mittelwertbildung erreicht werden kann. Zum Beispiel könnte jede neue Entladezeit nicht mit der vorherigen Entladezeit, sondern mit dem Mittelwert der letzten 4 oder 8 oder 32 Entladezeiten verglichen werden. Die Frequenzverschiebungsmethode, die oben diskutiert wurde, enthält automatisch eine Mittelwertbildung, da kleine Variationen um die mittlere Frequenz die Anzahl der Zyklen, die innerhalb einer Messperiode, die relativ zu der Oszillationsperiode lang ist, gezählt werden, nicht signifikant beeinflussen.

Niederfrequentes Rauschen bezieht sich auf langfristige Variationen in der fingerlosen Sensorkapazität; Diese können durch Umweltbedingungen verursacht werden. Diese Art von Rauschen kann nicht ausgemittelt werden, da die Variation für einen sehr langen Zeitraum bestehen bleiben könnte. Daher besteht die einzige Möglichkeit, niederfrequentes Rauschen wirksam zu handhaben, darin, anpassungsfähig zu sein: Der Schwellenwert, der zum Identifizieren der Anwesenheit eines Fingers verwendet wird, kann kein fester Wert sein. Stattdessen sollte es regelmäßig basierend auf Messwerten angepasst werden, die keine signifikanten kurzfristigen Schwankungen aufweisen, wie sie durch die Annäherung eines Fingers verursacht werden.

Fazit

Die Implementierungstechniken, die in diesem Artikel besprochen werden, zeigen, dass kapazitive Berührungsmessung keine komplexe Hardware oder hochentwickelte Firmware erfordert. Es ist dennoch eine vielseitige, robuste Technologie, die wesentliche Leistungsverbesserungen gegenüber mechanischen Alternativen bieten kann.