- Hva er en kapasitiv berøringssensor og hvordan fungerer den?
- Bygg en firveis kapasitiv berøringssensor
- Materialer som kreves for ESP32 berøringsstyrt krets
- Kontrollkrets for vår kapasitive berøringssensor
- PCB-design for kapasitiv berøringssensorkrets
- Arduino-kode for ESP32-basert kapasitiv berøringssensor
- Testing av ESP32-basert berøringssensorkrets
- Ytterligere forbedringer
I mange tilfeller brukes berøringssensorer i stedet for trykknapper. Fordelen er at vi ikke trenger å gi kraft til å trykke på en knapp, og vi kan aktivere en tast uten å berøre den ved hjelp av berøringssensorer. Touch sensing-teknologi blir populær dag for dag. Og i løpet av det siste tiåret har det blitt vanskelig å forestille seg verden uten berøringsfølsom elektronikk. Både resistive og kapasitive berøringsmetoder kan brukes til å utvikle en berøringssensor, og i denne artikkelen vil vi diskutere en grov måte å lage en kapasitiv berøringssensor med ESP32, tidligere har vi også bygget en kapasitiv berøringsknapp med Raspberry pi.
Selv om applikasjonsspesifikke berøringssensorer kan være litt kompliserte, forblir det grunnleggende prinsippet bak denne teknologien det samme, så i denne artikkelen vil vi fokusere på å utvikle vår kapasitive berøringssensor ved hjelp av vår favoritt ESP32 og et stykke kobber- kledd brett.
I den forrige opplæringen har vi gjort Control Home Lights with Touch ved hjelp av TTP223 Touch Sensor og Arduino UNO. Nå i dette prosjektet bygger vi en berøringssensor for ESP32, men det samme kan også brukes til Arduino. Dessuten brukte vi tidligere berøringsbaserte inndatametoder ved bruk av kapasitive berøringsputer med forskjellige mikrokontrollere som Touch Keypad Interfacing med ATmega32 Microcontroller og Capacitive TouchPad med Raspberry Pi, du kan også sjekke dem ut hvis du er interessert.
Hva er en kapasitiv berøringssensor og hvordan fungerer den?
Kondensatorer finnes i mange former. Den vanligste en gang kommer i form av en blyholdig pakke eller en overflatemontert pakke, men for å danne en kapasitans trenger vi ledere atskilt med et dielektrisk materiale. Dermed er det enkelt å lage en. Et godt eksempel er det vi skal utvikle i det følgende eksemplet.
Med tanke på etset PCB som det ledende materialet, fungerer klistremerket som et dielektrisk materiale, så nå gjenstår spørsmålet, hvordan berøring av kobberputen får kapasitansen til å endres på en slik måte at berøringssensorkontrolleren er i stand til å oppdage? En menneskelig finger, selvfølgelig.
Vel, det er hovedsakelig to grunner: Den første inkluderer de dielektriske egenskapene til fingeren vår, den andre er på grunn av fingerens ledende egenskaper. Vi kommer til å bruke en kapasitiv basert berøring. Så vi vil rette fokus mot den kapasitive baserte berøringssensoren. Men før vi diskuterer alt dette, er det viktig å merke seg at det ikke foregår ledning, og fingeren er isolert på grunn av papiret som brukes i klistremerket. Så fingeren klarer ikke å lade ut kondensatoren.
Finger som fungerer som dielektrisk:
Det er kjent at en kondensator har en konstant verdi som kan realiseres av arealet til de to ledende platene, avstanden mellom platene og den dielektriske konstanten. Vi kan ikke endre kondensatorens område bare ved å berøre den, men vi kan sikkert endre kondensatorens dielektriske konstant fordi en menneskelig finger har en annen dielektrisk konstant enn materialet som viser den. I vårt tilfelle er det luft, vi fortrenger luft med fingrene. Hvis du spør hvordan? Det er fordi den dielektriske konstanten til luften 1006 ved romnivå ved havnivå og den dielektriske konstanten til fingeren er mye høyere rundt 80 fordi en menneskelig finger består av stort sett vann. Så interaksjonen av fingeren med kondensatorens elektriske felt forårsaker en økning i dielektrisk konstant, og dermed øker kapasitansen.
Nå som vi har forstått rektoren, la oss gå videre til å lage faktiske PCB.
Bygg en firveis kapasitiv berøringssensor
Den kapasitive berøringssensoren som brukes i dette prosjektet har fire kanaler, og den er enkel å lage. Nedenfor har vi nevnt den detaljerte prosessen for å lage en.
Først laget vi PCB for sensoren ved hjelp av Eagle PCB designverktøyet, som ser ut som bildet nedenfor.
Ved hjelp av dimensjonene og Photoshop laget vi malen og til slutt klistremerket til sensoren, som ser ut som bildet nedenfor,
Nå som vi er ferdige med klistremerket, fortsetter vi med å lage den faktiske kleddbrettmalen som vi skal bruke til å lage PCB med, som ser ut som bildet nedenfor.
Nå kan vi skrive ut denne filen og fortsette prosessene med å lage en hjemmelaget PCB. HVIS du er ny, kan du sjekke ut artikkelen om hvordan du bygger PCB hjemme. Du kan også laste ned de nødvendige PDF- og Gerber-filene fra lenken nedenfor
- GERBER-fil for firekanals kapasitiv berøringssensor
Når det er gjort, ser den faktiske etsede kretskortet ut som bildet nedenfor.
Nå er det på tide å bore noen hull, og vi kobler noen ledninger til PCB. Slik at vi kan koble den til ESP32-kortet. Når det er gjort, ser det ut som bildet nedenfor.
Ettersom vi ikke satte via i PCB, kom loddet over alt mens det loddes, vi rettet opp feilen vår ved å sette et borehull på PCB, som du finner i nedlastingsdelen ovenfor. Til slutt var det på tide å sette klistremerket på og gjøre det endelig. Som ser ut som bildet nedenfor.
Nå er vi ferdige med berøringspanelet, det er på tide å gå videre til å lage kontrollkretsen for berøringspanelet.
Materialer som kreves for ESP32 berøringsstyrt krets
Komponentene som kreves for å bygge kontrolleren med ESP32 er gitt nedenfor. Du bør kunne finne de fleste av dem i den lokale hobbybutikken.
Jeg har også listet opp komponentene i tabellen nedenfor med type og mengde som kreves, siden vi grensesnitt en firekanals berøringssensor og kontrollerer fire vekselstrømbelastninger, vil vi bruke 4 reléer for å bytte vekselstrøm og 4 transistorer for å bygge reléet driverkretser.
Sl.nr |
Deler |
Type |
Mengde |
1 |
Stafett |
Bytte om |
4 |
2 |
BD139 |
Transistor |
4 |
3 |
Skruterminal |
Skruterminal 5mmx2 |
4 |
4 |
1N4007 |
Diode |
5 |
5 |
0,1 uF |
Kondensator |
1 |
6 |
100uF, 25V |
Kondensator |
2 |
7 |
LM7805 |
Spenningsregulator |
1 |
8 |
1K |
Motstand |
4 |
9 |
560R |
Motstand |
4 |
10 |
Gul LED |
LED |
4 |
11 |
Mannlig topptekst |
Kontakt |
4 |
12 |
Kvinnelig topptekst |
Kontakt |
30 |
1. 3 |
Rød LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
ESP32 Board |
1 |
12 |
Kledd brett |
Generisk 50x 50mm |
1 |
1. 3 |
Jumper Wires |
Ledninger |
4 |
14 |
Koble ledninger |
Ledninger |
5 |
Kontrollkrets for vår kapasitive berøringssensor
Bildet nedenfor viser det komplette kretsskjemaet for vår ESP32-baserte berøringssensor.
Som du kan se, er det en veldig enkel krets med svært minimale komponenter som kreves.
Siden det er en enkel berøringssensorkrets, kan den være nyttig på steder der du vil samhandle med en enhet via berøring, for eksempel, i stedet for å bruke en typisk kortmontert bryter, kan du slå på / av apparatene dine med berøring.
I skjemaet brukes en likestrømsjekk som inngang der vi gir den nødvendige strømmen som kreves for å drive kretsen, derfra har vi vår 7805 spenningsregulator som konverterer den uregulerte DC-inngangen til en konstant 5V DC som vi gir strømmen til ESP32-modulen.
Deretter, i skjematisk, har vi berøringskontaktene på pin 25, 26, 27, 28, hvor vi skal koble til styreflaten.
Deretter har vi reléene våre som er byttet via en BD139-transistor, dioden D2, D3, D4, D5 er der for å beskytte kretsen mot transientens spenning som genereres når reléet veksles, diodene i denne konfigurasjonen er kjent som fly-back diode / freewheeling diode. 560R-motstandene ved basen til hver transistor brukes til å begrense strømmen gjennom basen.
PCB-design for kapasitiv berøringssensorkrets
PCB for berøringsfølerkretsen vår var designet for et ensidig kort. Vi har brukt Eagle til å designe PCB-en, men du kan bruke hvilken som helst designprogramvare du ønsker. 2D-bildet av brettdesignet vårt er vist nedenfor.
En tilstrekkelig spordiameter ble brukt til å lage kraftsporene, som brukes til å strømme strømmen gjennom kretskortet. Vi satte skrueterminalen øverst fordi det er mye lettere å koble til lasten din på den måten, og strømkontakten, som er en likestrømsjekk, ble plassert på siden, noe som også gir enkel tilgang. Den komplette designfilen for Eagle sammen med Gerber kan lastes ned fra lenken nedenfor.
- GERBER-fil for ESP32-basert berøringssensorkontrollkrets
Nå som Designet vårt er klart, er det på tide å etse og lodde brettet. Etter at etsingen, boringen og loddeprosessen er ferdig, ser brettet ut som bildet vist nedenfor,
Arduino-kode for ESP32-basert kapasitiv berøringssensor
For dette prosjektet vil vi programmere ESP32 med en tilpasset kode som vi snart vil beskrive. Koden er veldig enkel og enkel å bruke, Vi starter med å definere alle nødvendige pinner, i vårt tilfelle definerer vi pinnene for berøringssensorene og reléene våre.
#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
Deretter starter vi i oppsettdelen med å initialisere UART for feilsøking, neste har vi innført en forsinkelse på 1S som gir oss litt tid til å åpne et Serial Monitor-vindu. Deretter bruker vi Arduinos pinMode- funksjonen til å lage relépinnene som utgang, noe som markerer slutten av delen Oppsett () .
ugyldig oppsett () {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 loop- seksjonen med en if- setning, den innebygde funksjonen touchRead (pin_no) brukes til å bestemme om en pin ble berørt eller ikke. Den touchRead (pin_no) funksjonen returnerer et heltall områder (0 - 100) er verdien forblir nær 100 hele tiden, men hvis vi berører den valgte pinnen, synker verdien til nær null, og med hjelp av den endrede verdi, vi kan avgjøre om den spesielle stiften ble berørt av en finger eller ikke.
I if- setningen sjekker vi for eventuelle endringer i heltallverdiene, og hvis verdien når under 28, kan vi være sikre på at vi har erkjent en berøring. Når if- setningen blir sant, venter vi på 50 ms og sjekker parameteren igjen, dette vil hjelpe oss med å avgjøre om sensorverdien ble utløst feilaktig, etter det inverterer vi statusen til pinnen ved å bruke digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) -metoden, og resten av koden forblir den samme.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Sensor one is touched"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} annet 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)); }} annet 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)); }} annet 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)); }}
Til slutt avslutter vi koden vår med ytterligere 200 ms blokkeringsforsinkelse.
Testing av ESP32-basert berøringssensorkrets
Siden dette er et veldig enkelt prosjekt, er testsettet veldig enkelt, som du ser, har jeg koblet til 4 lysdioder med motstander som fungerer som belastninger, ettersom det er koblet til reléet, kan du enkelt koble til hvilken som helst belastning opp til 3 ampere.
Ytterligere forbedringer
Selv om kretskortet er enkelt, er det fremdeles rom for forbedringer som du kan se fra undersiden av selve kretskortet, jeg har koblet til mange motstander i et forsøk på å koble til fire indikasjonslysdioder, og størrelsen på kretskortet kan også reduseres hvis det blir et krav, Håper du likte artikkelen og lærte noe nyttig. Hvis du har spørsmål, kan du legge dem igjen i kommentarfeltet nedenfor eller bruke forumene våre til å legge ut andre tekniske spørsmål.