- Was ist ein kapazitiver Berührungssensor und wie funktioniert er?
- Aufbau eines kapazitiven Vierwege-Berührungssensors
- Erforderliche Materialien für berührungsgesteuerte ESP32-Schaltung
- Steuerkreis für unseren kapazitiven Berührungssensor
- PCB-Design für den kapazitiven Berührungssensor-Schaltkreis
- Arduino-Code für kapazitiven Berührungssensor auf ESP32-Basis
- Testen der ESP32-basierten Berührungssensorschaltung
- Weitere Verbesserungen
In vielen Fällen werden Berührungssensoren anstelle von Drucktasten verwendet. Der Vorteil ist, dass wir keine Kraft aufwenden müssen, um einen Knopf zu drücken, und wir können eine Taste aktivieren, ohne sie mit Berührungssensoren zu berühren. Die Touch-Sensing-Technologie wird von Tag zu Tag beliebter. Und in den letzten zehn Jahren ist es schwierig geworden, sich die Welt ohne berührungsempfindliche Elektronik vorzustellen. Zur Entwicklung eines Berührungssensors können sowohl resistive als auch kapazitive Berührungsmethoden verwendet werden. In diesem Artikel werden wir einen groben Weg zur Herstellung eines kapazitiven Berührungssensors mit ESP32 diskutieren. Zuvor haben wir auch einen kapazitiven Berührungsknopf mit Raspberry pi gebaut.
Obwohl anwendungsspezifische Berührungssensoren etwas kompliziert sein können, bleibt das dieser Technologie zugrunde liegende Grundprinzip das gleiche. In diesem Artikel konzentrieren wir uns daher auf die Entwicklung unseres kapazitiven Berührungssensors mit Hilfe unseres bevorzugten ESP32 und eines Stücks Kupfer. plattiertes Brett.
Im vorherigen Tutorial haben wir Control Home Lights mit Touch mit TTP223 Touch Sensor und Arduino UNO durchgeführt. In diesem Projekt erstellen wir einen Touch-Sensor für ESP32, der jedoch auch für Arduino verwendet werden kann. Außerdem haben wir zuvor berührungsbasierte Eingabemethoden verwendet, bei denen kapazitive Touchpads mit verschiedenen Mikrocontrollern verwendet wurden, z. B. Touch Keypad Interfacing mit ATmega32 Microcontroller und Capacitive TouchPad mit Raspberry Pi. Sie können diese auch bei Interesse überprüfen.
Was ist ein kapazitiver Berührungssensor und wie funktioniert er?
Kondensatoren gibt es in vielen Formen. Das häufigste kommt einmal in Form eines bleihaltigen Gehäuses oder eines oberflächenmontierten Gehäuses vor. Um jedoch eine Kapazität zu bilden, benötigen wir Leiter, die durch ein dielektrisches Material getrennt sind. Somit ist es einfach, eine zu erstellen. Ein gutes Beispiel wäre das, das wir im folgenden Beispiel entwickeln werden.
Wenn man die geätzte Leiterplatte als leitendes Material betrachtet, wirkt der Aufkleber als dielektrisches Material. Nun bleibt die Frage, wie sich durch Berühren des Kupferkissens die Kapazität so ändert, dass der Berührungssensor-Controller dies erkennen kann. Ein menschlicher Finger natürlich.
Nun, es gibt hauptsächlich zwei Gründe: Erstens umfasst einer die dielektrischen Eigenschaften unseres Fingers, der zweite die leitenden Eigenschaften unseres Fingers. Wir werden eine kapazitive Berührung verwenden. Wir werden uns also auf den kapazitiven Berührungssensor konzentrieren. Bevor wir dies alles besprechen, ist es wichtig zu beachten, dass keine Leitung stattfindet und der Finger aufgrund des im Aufkleber verwendeten Papiers isoliert ist. Der Finger kann den Kondensator also nicht entladen.
Finger als Dielektrikum:
Es ist allgemein bekannt, dass ein Kondensator einen konstanten Wert hat, der durch die Fläche der beiden leitenden Platten, den Abstand zwischen den Platten und seine Dielektrizitätskonstante realisiert werden kann. Wir können den Bereich des Kondensators nicht einfach durch Berühren ändern, aber wir können sicher die Dielektrizitätskonstante des Kondensators ändern, da ein menschlicher Finger eine andere Dielektrizitätskonstante hat als das Material, das ihn anzeigt. In unserem Fall ist es Luft, wir verdrängen Luft mit unseren Fingern. Wenn Sie fragen, wie? Dies liegt daran, dass die Dielektrizitätskonstante der Luft 1006 bei Raumtemperatur auf Meereshöhe und die Dielektrizitätskonstante des Fingers um 80 viel höher ist, da ein menschlicher Finger hauptsächlich aus Wasser besteht. Die Wechselwirkung des Fingers mit dem elektrischen Feld des Kondensators bewirkt also eine Erhöhung der Dielektrizitätskonstante, wodurch die Kapazität zunimmt.
Nachdem wir das Prinzip verstanden haben, gehen wir zur Herstellung der tatsächlichen Leiterplatten über.
Aufbau eines kapazitiven Vierwege-Berührungssensors
Der in diesem Projekt verwendete kapazitive Berührungssensor hat vier Kanäle und ist einfach herzustellen. Im Folgenden haben wir den detaillierten Prozess zur Erstellung eines solchen erwähnt.
Zuerst haben wir die Platine für den Sensor mit Hilfe des Eagle PCB Design Tools hergestellt, das ungefähr so aussieht wie in der Abbildung unten.
Mit Hilfe der Abmessungen und von Photoshop haben wir die Vorlage und schließlich den Aufkleber für den Sensor erstellt, der ungefähr so aussieht wie das Bild unten.
Nachdem wir mit dem Aufkleber fertig sind, erstellen wir die eigentliche Schablonenvorlage, mit der wir unsere Leiterplatte herstellen. Diese sieht ungefähr so aus wie im folgenden Bild.
Jetzt können wir diese Datei drucken und mit der Herstellung einer selbstgemachten Leiterplatte fortfahren. Wenn Sie neu sind, lesen Sie den Artikel über den Bau von Leiterplatten zu Hause. Sie können die erforderlichen PDF- und Gerber-Dateien auch über den folgenden Link herunterladen
- GERBER-Datei für kapazitiven Vierkanal-Berührungssensor
Sobald dies erledigt ist, sieht die eigentliche geätzte Leiterplatte wie im Bild unten aus.
Jetzt ist es Zeit, einige Löcher zu bohren, und wir verbinden einige Drähte mit der Leiterplatte. Damit wir es mit der ESP32-Karte verbinden können. Sobald dies erledigt ist, sieht es wie im Bild unten aus.
Da wir keine Durchkontaktierungen in die Leiterplatte eingebaut haben und das Löten beim Löten überall angekommen ist, haben wir unseren Fehler behoben, indem wir ein Bohrloch in die Leiterplatte eingebracht haben, das Sie im obigen Download-Bereich finden. Schließlich war es Zeit, den Aufkleber anzubringen und endgültig zu machen. Welches sieht ungefähr so aus wie das Bild unten.
Jetzt sind wir mit dem Touchpanel fertig. Es ist Zeit, den Steuerkreis für das Touchpanel zu erstellen.
Erforderliche Materialien für berührungsgesteuerte ESP32-Schaltung
Die Komponenten, die zum Erstellen des Controller-Abschnitts mit ESP32 erforderlich sind, sind unten angegeben. Die meisten davon sollten Sie im örtlichen Hobbyfachgeschäft finden können.
Ich habe auch die Komponenten in der folgenden Tabelle mit dem erforderlichen Typ und der erforderlichen Menge aufgelistet. Da wir einen vierkanaligen Berührungssensor anschließen und vier Wechselstromlasten steuern, werden wir 4 Relais zum Schalten der Wechselstromlast und 4 Transistoren zum Aufbau des Relais verwenden Treiberschaltungen.
Sl. Nein |
Teile |
Art |
Menge |
1 |
Relais |
Schalter |
4 |
2 |
BD139 |
Transistor |
4 |
3 |
Schraubklemme |
Schraubklemme 5mmx2 |
4 |
4 |
1N4007 |
Diode |
5 |
5 |
0,1 uF |
Kondensator |
1 |
6 |
100 uF, 25 V. |
Kondensator |
2 |
7 |
LM7805 |
Spannungsregler |
1 |
8 |
1K |
Widerstand |
4 |
9 |
560R |
Widerstand |
4 |
10 |
Gelbe LED |
LED |
4 |
11 |
Männlicher Header |
Verbinder |
4 |
12 |
Weiblicher Header |
Verbinder |
30 |
13 |
Rote LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
ESP32-Karte |
1 |
12 |
Clad Board |
Generisches 50x 50mm |
1 |
13 |
Überbrückungsdrähte |
Leitungen |
4 |
14 |
Kabel anschließen |
Leitungen |
5 |
Steuerkreis für unseren kapazitiven Berührungssensor
Das folgende Bild zeigt den vollständigen Schaltplan für unseren ESP32-basierten Berührungssensor.
Wie Sie sehen können, handelt es sich um eine sehr einfache Schaltung mit sehr geringen erforderlichen Komponenten.
Da es sich um eine einfache Berührungssensorschaltung handelt, kann sie an Orten nützlich sein, an denen Sie beispielsweise per Berührung mit einem Gerät interagieren möchten. Anstatt einen typischen Schalter an der Platine zu verwenden, können Sie Ihre Geräte mit Berührung ein- und ausschalten.
In der schematischen Darstellung wird eine DC-Barrel-Buchse als Eingang verwendet, an dem wir die für die Stromversorgung der Schaltung erforderliche Leistung bereitstellen. Von dort aus haben wir unseren Spannungsregler 7805, der den ungeregelten DC-Eingang in einen konstanten 5-V-DC umwandelt, über den wir ihn bereitstellen die Stromversorgung des ESP32-Moduls.
Als nächstes haben wir im Schaltplan unsere Touch-Anschlüsse an Pin 25, 26, 27, 28, an denen wir das Touchpad anschließen werden.
Als nächstes haben wir unsere Relais, die über einen BD139-Transistor geschaltet werden. Die Diode D2, D3, D4, D5 schützt die Schaltung vor der Spannung eines Transienten, die beim Umschalten des Relais erzeugt wird. Die Dioden in dieser Konfiguration werden als bezeichnet Fly-Back-Diode / Freilaufdiode. Die 560R-Widerstände an der Basis jedes Transistors werden verwendet, um den Stromfluss durch die Basis zu begrenzen.
PCB-Design für den kapazitiven Berührungssensor-Schaltkreis
Die Platine für unsere Berührungssensorschaltung wurde für eine einseitige Platine entwickelt. Wir haben Eagle zum Entwerfen meiner Leiterplatte verwendet, aber Sie können jede Design-Software Ihrer Wahl verwenden. Das 2D-Bild unseres Board-Designs ist unten dargestellt.
Ein ausreichender Spurdurchmesser wurde verwendet, um die Stromspuren herzustellen, die verwendet werden, um den Strom durch die Leiterplatte zu fließen. Wir haben die Schraubklemme oben angebracht, da es viel einfacher ist, Ihre Last auf diese Weise anzuschließen, und der Stromanschluss, bei dem es sich um eine DC-Zylinderbuchse handelt, wurde an der Seite platziert, wodurch auch ein einfacher Zugang möglich ist. Die vollständige Designdatei für Eagle zusammen mit dem Gerber kann über den unten stehenden Link heruntergeladen werden.
- GERBER-Datei für ESP32-basierte Berührungssensor-Steuerschaltung
Jetzt, da unser Design fertig ist, ist es Zeit, die Platine zu ätzen und zu löten. Nach Abschluss des Ätz-, Bohr- und Lötvorgangs sieht die Platine wie in der Abbildung unten aus.
Arduino-Code für kapazitiven Berührungssensor auf ESP32-Basis
Für dieses Projekt werden wir den ESP32 mit einem benutzerdefinierten Code programmieren, den wir in Kürze beschreiben werden. Der Code ist sehr einfach und leicht zu bedienen, Wir definieren zunächst alle erforderlichen Stifte. In unserem Fall definieren wir die Stifte für unsere Berührungssensoren und Relais.
#define Relay_PIN_1 15 #define Relay_PIN_2 2 #define Relay_PIN_3 4 #define Relay_PIN_4 16 #define TOUCH_SENSOR_PIN_1 13 #define TOUCH_SENSOR_PIN_2 12 #define TOUCH_SENSOR_PIN_3 14_define__
Als Nächstes initialisieren wir im Setup-Abschnitt den UART für das Debuggen. Als Nächstes haben wir eine Verzögerung von 1S eingeführt, die uns etwas Zeit zum Öffnen eines Serial Monitor-Fensters gibt. Als nächstes verwenden wir die PinMode- Funktion von Arduinos , um die Relay-Pins als Ausgabe zu erstellen , was das Ende des Abschnitts Setup () markiert.
void setup () {Serial.begin (115200); Verzögerung (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }}
Wir beginnen unseren Loop- Abschnitt mit einer if- Anweisung. Mit der integrierten Funktion touchRead (pin_no) wird bestimmt, ob ein Pin berührt wurde oder nicht. Die Funktion touchRead (pin_no) gibt einen ganzzahligen Wertebereich (0 - 100) zurück. Der Wert bleibt die ganze Zeit nahe 100, aber wenn wir den ausgewählten Pin berühren, fällt der Wert auf nahe Null und mit Hilfe des sich ändernden Werts. Wir können feststellen, ob der jeweilige Stift von einem Finger berührt wurde oder nicht.
In der if- Anweisung prüfen wir, ob sich die ganzzahligen Werte geändert haben. Wenn der Wert unter 28 liegt, können wir sicher sein, dass wir eine Berührung bestätigt haben. Sobald die if- Anweisung wahr wird, warten wir 50 ms und überprüfen den Parameter erneut. Auf diese Weise können wir feststellen, ob der Sensorwert falsch ausgelöst wurde. Danach invertieren wir den Status des Pins mithilfe von digitalWrite (Relay_PIN_1,! DigitalRead) (Relay_PIN_1)) Methode, und der Rest des Codes bleibt gleich.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Sensor eins wird berührt"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} else if (touchRead (TOUCH_SENSOR_PIN_2) <28) {if (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println ("Sensor Zwei wird berührt"); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} else if (touchRead (TOUCH_SENSOR_PIN_3) <28) {if (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("Sensor drei wird berührt"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} else if (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println ("Sensor 4 wird berührt"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Schließlich beenden wir unseren Code mit einer weiteren Blockierungsverzögerung von 200 ms.
Testen der ESP32-basierten Berührungssensorschaltung
Da dies ein sehr einfaches Projekt ist, ist das Testset sehr einfach, wie Sie sehen können. Ich habe 4 LEDs mit Widerständen verbunden, die als Lasten wirken. Da es mit dem Relais verbunden ist, können Sie problemlos jede Last mit bis zu 3 Ampere anschließen.
Weitere Verbesserungen
Obwohl die Platine einfach ist, gibt es noch Raum für Verbesserungen, wie Sie auf der Unterseite der eigentlichen Platine sehen können. Ich habe viele Widerstände angeschlossen, um vier Anzeige-LEDs anzuschließen, und die Größe der Platine kann auch reduziert werden, wenn dies der Fall ist wird eine Anforderung, Ich hoffe, Ihnen hat der Artikel gefallen und Sie haben etwas Nützliches gelernt. Wenn Sie Fragen haben, können Sie diese im Kommentarbereich unten hinterlassen oder in unseren Foren andere technische Fragen stellen.