- Hvad er en kapacitiv berøringssensor, og hvordan fungerer den?
- Opbygning af en firevejs kapacitiv berøringssensor
- Nødvendige materialer til ESP32 Touch-styret kredsløb
- Kontrolkredsløb til vores kapacitive berøringssensor
- Printkortdesign til det kapacitive berøringssensorkredsløb
- Arduino-kode til ESP32-baseret kapacitiv berøringssensor
- Test af ESP32-baseret berøringsfølerkreds
- Yderligere forbedringer
I mange tilfælde bruges berøringssensorer i stedet for trykknapper. Fordelen er, at vi ikke behøver at give kraft til at trykke på en knap, og vi kan aktivere en tast uden at røre ved den ved hjælp af berøringssensorer. Touch sensing teknologi bliver populær dag for dag. Og inden for det sidste årti er det blevet svært at forestille sig verden uden berøringsfølsom elektronik. Både resistive og kapacitive berøringsmetoder kan bruges til at udvikle en berøringssensor, og i denne artikel vil vi diskutere en rå måde at fremstille en kapacitiv berøringssensor på med ESP32, tidligere har vi også bygget en kapacitiv berøringsknap med Raspberry pi.
Selvom applikationsspecifikke berøringssensorer kan være lidt komplicerede, forbliver det grundlæggende princip bag denne teknologi det samme, så i denne artikel vil vi fokusere på at udvikle vores kapacitive berøringssensor ved hjælp af vores yndlings ESP32 og et stykke kobber- klædt bord.
I den foregående tutorial har vi foretaget Control Home Lights with Touch ved hjælp af TTP223 Touch Sensor og Arduino UNO. Nu i dette projekt bygger vi en Touch-sensor til ESP32, men det samme kan også bruges til Arduino. Vi har også tidligere brugt berøringsbaserede inputmetoder ved hjælp af kapacitive berøringspads med forskellige mikrokontroller, såsom Touch-tastaturgrænseflade med ATmega32 Microcontroller og Capacitive TouchPad med Raspberry Pi, du kan også tjekke dem ud, hvis du er interesseret.
Hvad er en kapacitiv berøringssensor, og hvordan fungerer den?
Kondensatorer findes i mange former. Den mest almindelige engang kommer i form af en blyholdig pakke eller en overflademonteret pakke, men for at danne en kapacitans har vi brug for ledere adskilt af et dielektrisk materiale. Således er det let at oprette en. Et godt eksempel ville være det, som vi vil udvikle i det følgende eksempel.
I betragtning af det ætsede printkort som det ledende materiale, fungerer klistermærket som et dielektrisk materiale, så nu er spørgsmålet tilbage, hvordan berøring af kobberpuden får kapacitansen til at ændre sig på en sådan måde, at berøringssensorstyringen er i stand til at detektere? En menneskelig finger, selvfølgelig.
Der er hovedsageligt to grunde: For det første inkluderer den ene vores fingers dielektriske egenskaber, den anden skyldes fingerens ledende egenskaber. Vi bruger et kapacitivt baseret touch. Så vi vil vende vores fokus mod den kapacitive baserede berøringssensor. Men før vi diskuterer alt dette, er det vigtigt at bemærke, at der ikke foregår nogen ledning, og at fingeren er isoleret på grund af papiret, der bruges i mærkaten. Så fingeren er ikke i stand til at aflade kondensatoren.
Finger, der fungerer som dielektrisk:
Det er almindeligt kendt, at en kondensator har en konstant værdi, som kan realiseres af arealet af de to ledende plader, afstanden mellem pladerne og dens dielektriske konstant. Vi kan ikke ændre kondensatorens område bare ved at røre ved det, men vi kan helt sikkert ændre kondensatorens dielektriske konstant, fordi en menneskelig finger har en anden dielektrisk konstant end det materiale, der viser den. I vores tilfælde er det luft, vi fortrænger luft med fingrene. Hvis du spørger hvordan? Det skyldes, at den dielektriske konstant i luften 1006 ved havoverfladen stuetemperatur, og den dielektriske konstant i fingeren er meget højere omkring 80, fordi en menneskelig finger består af for det meste vand. Så interaktionen mellem fingeren og kondensatorens elektriske felt forårsager en stigning i dielektrisk konstant, hvorved kapacitansen øges.
Nu hvor vi har forstået rektoren, lad os gå videre til fremstilling af faktiske printkort.
Opbygning af en firevejs kapacitiv berøringssensor
Den kapacitive berøringssensor, der bruges i dette projekt, har fire kanaler, og den er nem at lave. Nedenfor har vi nævnt den detaljerede proces til at lave en.
Først lavede vi printkortet til sensoren ved hjælp af Eagle PCB-designværktøjet, der ligner billedet nedenfor.
Ved hjælp af målene og Photoshop lavede vi skabelonen og endelig mærkaten til sensoren, der ligner billedet nedenfor,
Nu, når vi er færdige med klistermærket, går vi videre til at lave den aktuelle skabelon med klædt kort, som vi skal bruge til at lave vores PCB med, som ligner billedet nedenfor,
Nu kan vi udskrive denne fil og fortsætte med processen med at lave et hjemmelavet printkort. HVIS du er ny, kan du tjekke artiklen om, hvordan man bygger PCB derhjemme. Du kan også downloade de krævede PDF- og Gerber-filer fra nedenstående link
- GERBER-fil til firekanals kapacitiv berøringssensor
Når det er gjort, ser det egentlige ætsede printkort ud som billedet nedenfor.
Nu er det tid til at bore nogle huller, og vi forbinder nogle ledninger med printkortet. Så vi kan forbinde det med ESP32-kortet. Når det er gjort, ser det ud som billedet nedenfor.
Da vi ikke satte via'er i printkortet, kom loddet overalt under lodning, vi afhjælpte vores fejl ved at placere et borehul på printkortet, som du kan finde i ovenstående downloadafsnit. Endelig var det tid til at sætte klistermærket på og gøre det endeligt. Hvilket ligner billedet nedenfor.
Nu er vi færdige med berøringspanelet, det er tid til at gå videre til at lave kontrolkredsen til berøringspanelet.
Nødvendige materialer til ESP32 Touch-styret kredsløb
Komponenterne, der kræves for at opbygge controllersektionen ved hjælp af ESP32, er angivet nedenfor, du skal kunne finde de fleste af dem i den lokale hobbybutik.
Jeg har også anført komponenterne i nedenstående tabel med den krævede type og mængde, da vi grænsefladen til en firekanals berøringssensor og styrer fire vekselstrømsbelastninger, bruger vi 4 relæer til at skifte vekselstrømsbelastningen og 4 transistorer til at bygge relæet driver kredsløb.
Sl. Nr |
Dele |
Type |
Antal |
1 |
Relæ |
Kontakt |
4 |
2 |
BD139 |
Transistor |
4 |
3 |
Skrueterminal |
Skrueterminal 5mmx2 |
4 |
4 |
1N4007 |
Diode |
5 |
5 |
0,1 uF |
Kondensator |
1 |
6 |
100uF, 25V |
Kondensator |
2 |
7 |
LM7805 |
Strøm regulator |
1 |
8 |
1K |
Modstand |
4 |
9 |
560R |
Modstand |
4 |
10 |
Gul lysdiode |
LED |
4 |
11 |
Mandlig header |
Stik |
4 |
12 |
Kvindelig overskrift |
Stik |
30 |
13 |
Rød LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
ESP32-kort |
1 |
12 |
Klædt bord |
Generisk 50x 50mm |
1 |
13 |
Jumper Wires |
Ledninger |
4 |
14 |
Tilslutning af ledninger |
Ledninger |
5 |
Kontrolkredsløb til vores kapacitive berøringssensor
Nedenstående billede viser det komplette kredsløbsdiagram for vores ESP32-baserede berøringssensor.
Som du kan se, er det et meget simpelt kredsløb med meget minimale nødvendige komponenter.
Da det er et simpelt berøringsfølerkredsløb, kan det være nyttigt steder, hvor du vil interagere med en enhed via berøring, for eksempel i stedet for at bruge en typisk kortmonteret kontakt kan du tænde / slukke for dine apparater med berøring.
I skemaet bruges et jævnstrømsstik som en indgang, hvor vi leverer den nødvendige strøm, der kræves for at drive kredsløbet, derfra har vi vores 7805 spændingsregulator, der konverterer den uregulerede jævnstrømsindgang til en konstant 5V jævnstrøm, gennem hvilken vi leverer strømmen til ESP32-modulet.
Dernæst i skematisk har vi vores touch-stik på pin 25, 26, 27, 28, hvor vi skal forbinde touchpad'en.
Dernæst har vi vores relæer, der skiftes via en BD139-transistor, dioden D2, D3, D4, D5 er der for at beskytte kredsløbet mod enhver transients spænding, der genereres, når relæet skifter, dioderne i denne konfiguration er kendt som fly-back-diode / fritgående diode. 560R-modstandene i bunden af hver transistor bruges til at begrænse strømmen gennem strømmen.
Printkortdesign til det kapacitive berøringssensorkredsløb
Printkortet til vores berøringsfølerkreds var designet til et ensidet kort. Vi har brugt Eagle til at designe min PCB, men du kan bruge enhver Design-software efter eget valg. 2D-billedet af vores kortdesign er vist nedenfor.
En tilstrækkelig spordiameter blev brugt til at fremstille el-sporene, som bruges til at strømme strømmen gennem printkortet. Vi sætter skrueterminalen øverst, fordi det er meget lettere at forbinde din belastning på den måde, og strømstikket, som er et jævnstrømsstik, blev placeret i siden, hvilket også giver let adgang. Den komplette designfil til Eagle sammen med Gerber kan downloades fra nedenstående link.
- GERBER-fil til ESP32-baseret berøringssensorkontrolkredsløb
Nu hvor vores design er klar, er det tid til at ætse og lodde tavlen. Efter ætsning, boring og lodning er afsluttet ser kortet ud som billedet vist nedenfor,
Arduino-kode til ESP32-baseret kapacitiv berøringssensor
Til dette projekt programmerer vi ESP32 med en brugerdefineret kode, som vi snart beskriver. Koden er meget enkel og nem at bruge, Vi starter med at definere alle de nødvendige ben, i vores tilfælde definerer vi benene til vores berøringssensorer og relæer.
#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 14 #def
Dernæst i installationsafsnittet starter vi med at initialisere UART til debugging, næste har vi indført en forsinkelse på 1S, som giver os lidt tid til at åbne et Serial Monitor-vindue. Dernæst bruger vi Arduinos pinMode- funktionen til at fremstille relæstifterne som output, hvilket markerer slutningen af sektionen Setup () .
ugyldig opsætning () {Serial.begin (115200); forsinkelse (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }
Vi starter vores loop- sektion med en if- sætning, den indbyggede funktion touchRead (pin_no) bruges til at bestemme, om en pin blev rørt eller ej. Den (pin_no) touchRead -funktionen giver en heltalsværdi intervaller (0 - 100), værdien forbliver nær 100 hele tiden, men hvis vi rører den valgte pin, værdien falder til nær nul, og med hjælp af det skiftende værdi, vi kan afgøre, om den særlige pin blev rørt ved en finger eller ej.
I if- sætningen kontrollerer vi, om der er ændringer i heltalets værdier, og hvis værdien når under 28, kan vi være sikre på, at vi har anerkendt et tryk. Når if- sætningen bliver sand, venter vi på 50 ms og kontrollerer parameteren igen, dette hjælper os med at bestemme, om sensorens værdi blev udløst falsk, derefter inverterer vi status for pin ved hjælp af digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) metode, og resten af koden forbliver den samme.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Sensor en er berørt"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} ellers hvis (touchRead (TOUCH_SENSOR_PIN_2) <28) {if (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println ("Sensor to er berørt"); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} ellers hvis (touchRead (TOUCH_SENSOR_PIN_3) <28) {if (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("Sensor Three er berørt"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} ellers hvis (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println ("Sensor Four er berørt"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Endelig slutter vi vores kode med yderligere 200 ms blokering forsinkelse.
Test af ESP32-baseret berøringsfølerkreds
Da dette er et meget simpelt projekt, er testsættet meget simpelt, som du kan se, har jeg tilsluttet 4 lysdioder med modstande, der fungerer som belastninger, da det er forbundet med relæet, kan du nemt forbinde enhver belastning op til 3 ampere.
Yderligere forbedringer
Selvom printkortet er simpelt, er der stadig plads til forbedringer, som du kan se fra undersiden af det faktiske printkort, jeg har tilsluttet mange modstande i et forsøg på at forbinde fire indikations-lysdioder, og størrelsen på printkortet kan også reduceres, hvis det bliver et krav, Håber du nød artiklen og lærte noget nyttigt. Hvis du har spørgsmål, kan du lade dem være i kommentarfeltet nedenfor eller bruge vores fora til at stille andre tekniske spørgsmål.