- Ce este un senzor tactil capacitiv și cum funcționează?
- Construirea unui senzor tactil capacitiv în patru direcții
- Materiale necesare pentru circuitul controlat prin atingere ESP32
- Circuit de control pentru senzorul nostru tactil capacitiv
- Design PCB pentru circuitul senzorului tactil capacitiv
- Cod Arduino pentru senzor tactil capacitiv bazat pe ESP32
- Testarea circuitului senzorului tactil bazat pe ESP32
- Îmbunătățiri suplimentare
În multe cazuri, în locul butoanelor se utilizează senzori tactili. Avantajul este că nu trebuie să oferim forță pentru a apăsa un buton și putem activa o tastă fără a o atinge folosind senzori tactili. Tehnologia senzorului tactil devine populară zi de zi. Și în ultimul deceniu aproximativ, a devenit dificil să ne imaginăm lumea fără electronice sensibile la atingere. Atât metodele tactile rezistive, cât și cele capacitive pot fi folosite pentru a dezvolta un senzor tactil și, în acest articol, vom discuta despre un mod grosolan de a face un senzor tactil capacitiv cu ESP32, anterior am construit și un buton tactil capacitiv cu Raspberry pi.
Deși senzorii tactili specifici aplicației pot fi puțin complicați, principiul fundamental care stă la baza acestei tehnologii rămâne același, așa că, în acest articol, ne vom concentra pe dezvoltarea senzorului nostru tactil capacitiv cu ajutorul ESP32-ului nostru preferat și a unei bucăți de cupru. scândură îmbrăcată.
În tutorialul anterior, am realizat Control Home Lights cu Touch folosind senzorul tactil TTP223 și Arduino UNO. Acum, în acest proiect, construim un senzor tactil pentru ESP32, dar același lucru poate fi folosit și pentru Arduino. De asemenea, am folosit anterior metode de intrare bazate pe atingere folosind tampoane tactile capacitive cu diferite microcontrolere, cum ar fi interfațarea tastaturii tactile cu microcontrolerul ATmega32 și touchpad-ul capacitiv cu Raspberry Pi, le puteți verifica și dacă sunteți interesat.
Ce este un senzor tactil capacitiv și cum funcționează?
Condensatoarele vin sub mai multe forme. Cea mai comună o dată vine sub forma unui pachet cu plumb sau a unui pachet de montare la suprafață, dar pentru a forma o capacitate, avem nevoie de conductori separați de un material dielectric. Astfel, este ușor să creați unul. Un exemplu bun ar fi cel pe care îl vom dezvolta în exemplul următor.
Având în vedere PCB gravat ca material conductiv, autocolantul acționează ca un material dielectric, așa că acum rămâne întrebarea, cum atingerea plăcii de cupru face ca capacitatea să se schimbe în așa fel încât controlerul senzorului tactil să poată detecta? Un deget uman, desigur.
Ei bine, există în principal două motive: în primul rând, unul include proprietățile dielectrice ale degetului nostru, al doilea se datorează proprietăților conductoare ale degetului nostru. Vom folosi o atingere capacitivă. Deci, ne vom îndrepta atenția către senzorul tactil bazat pe capacitiv. Dar, înainte de a discuta toate acestea, este important să rețineți că nu are loc nicio conducție, iar degetul este izolat, din cauza hârtiei utilizate în autocolant. Deci, degetul nu este capabil să descarce condensatorul.
Degetul care acționează ca dielectric:
Este cunoscut faptul că un condensator are o valoare constantă care poate fi realizată prin aria celor două plăci conductoare, distanța dintre plăci și constanta sa dielectrică. Nu putem schimba aria condensatorului doar prin atingere, dar putem schimba cu siguranță constanta dielectrică a condensatorului, deoarece un deget uman are o constantă dielectrică diferită de materialul care îl afișează. În cazul nostru, este aer, deplasăm aerul cu degetele. Dacă întrebați cum? Acest lucru se datorează faptului că constanta dielectrică a aerului 1006 la temperatura camerei la nivelul mării și constanta dielectrică a degetului este mult mai mare în jur de 80, deoarece un deget uman constă în mare parte din apă. Deci, interacțiunea degetului cu câmpul electric al condensatorului determină o creștere a constantei dielectrice, de aceea capacitatea crește.
Acum, că am înțeles principiul, să trecem la fabricarea PCB-urilor reale.
Construirea unui senzor tactil capacitiv în patru direcții
Senzorul tactil capacitiv utilizat în acest proiect are patru canale, și este ușor de a face. Mai jos am menționat procesul detaliat pentru a face unul.
În primul rând, am realizat PCB-ul pentru senzor cu ajutorul instrumentului de proiectare Eagle PCB, care arată ca imaginea de mai jos.
Cu ajutorul dimensiunilor și Photoshop, am realizat șablonul și, în cele din urmă, autocolantul pentru senzor, care arată ca imaginea de mai jos,
Acum, după ce am terminat cu autocolantul, trecem la realizarea șablonului placat cu care vom folosi pentru realizarea PCB-ului nostru, care arată ca imaginea de mai jos,
Acum putem imprima acest fișier și putem continua procesul de realizare a unui PCB de casă. Dacă sunteți nou, puteți consulta articolul despre cum să construiți PCB acasă. De asemenea, puteți descărca fișierele PDF și Gerber necesare de pe linkul de mai jos
- Fișier GERBER pentru senzor tactil capacitiv cu patru canale
După ce ați terminat, PCB-ul real gravat arată ca imaginea de mai jos.
Acum este timpul să forăm niște găuri și conectăm niște fire cu PCB. Pentru a-l putea conecta cu placa ESP32. Odată terminat, arată ca imaginea de mai jos.
Deoarece nu am introdus via-uri în PCB, lipirea a ajuns peste tot în timpul lipirii, ne-am corectat greșeala punând o gaură pe PCB, pe care o puteți găsi în secțiunea de descărcare de mai sus. În cele din urmă, a venit timpul să punem autocolantul și să-l finalizăm. Care arată ca imaginea de mai jos.
Acum am terminat cu panoul tactil, este timpul să trecem la realizarea circuitului de control pentru panoul tactil.
Materiale necesare pentru circuitul controlat prin atingere ESP32
Componentele necesare pentru a construi secțiunea controlerului folosind ESP32 sunt prezentate mai jos, ar trebui să le puteți găsi în magazinul local de hobby-uri.
De asemenea, am enumerat componentele din tabelul de mai jos cu tipul și cantitatea necesară, deoarece interfațăm un senzor tactil cu patru canale și controlăm patru sarcini de curent alternativ, vom folosi 4 relee pentru a comuta sarcina de curent alternativ și 4 tranzistoare pentru a construi releul circuite driver.
Sl. Nu |
Părți |
Tip |
Cantitate |
1 |
Releu |
Intrerupator |
4 |
2 |
BD139 |
Tranzistor |
4 |
3 |
Terminal cu șurub |
Borna cu șurub 5mmx2 |
4 |
4 |
1N4007 |
Diodă |
5 |
5 |
0,1 uF |
Condensator |
1 |
6 |
100uF, 25V |
Condensator |
2 |
7 |
LM7805 |
Regulator de voltaj |
1 |
8 |
1K |
Rezistor |
4 |
9 |
560R |
Rezistor |
4 |
10 |
LED chihlimbar |
LED |
4 |
11 |
Antet masculin |
Conector |
4 |
12 |
Antet feminin |
Conector |
30 |
13 |
LED roșu |
LED |
1 |
14 |
ESP32 Dev Board V1 |
Placa ESP32 |
1 |
12 |
Placă îmbrăcată |
Generic 50x 50mm |
1 |
13 |
Sârme jumper |
Fire |
4 |
14 |
Conectarea firelor |
Fire |
5 |
Circuit de control pentru senzorul nostru tactil capacitiv
Imaginea de mai jos arată schema completă a circuitului pentru senzorul nostru tactil bazat pe ESP32.
După cum puteți vedea, este un circuit foarte simplu, cu componente minime necesare.
Deoarece este un circuit senzor senzorial simplu, poate fi util în locurile în care doriți să interacționați cu un dispozitiv prin atingere, de exemplu, în loc să utilizați un comutator tipic montat pe placă, puteți porni / opri aparatele cu atingere.
În schemă, se utilizează ca intrare o bară DC ca intrare, unde furnizăm puterea necesară pentru alimentarea circuitului, de acolo avem regulatorul nostru de tensiune 7805, care transformă intrarea CC nereglementată într-o constantă de 5V DC prin care furnizăm alimentarea modulului ESP32.
Apoi, în schemă, avem conectorii noștri tactili pe pinul 25, 26, 27, 28, unde vom conecta touchpad-ul.
Apoi, avem releele noastre care sunt comutate printr-un tranzistor BD139, dioda D2, D3, D4, D5 este acolo pentru a proteja circuitul de tensiunea oricărui tranzitor care este generat atunci când releul comută, diodele din această configurație sunt cunoscute ca diodă fly-back / diodă cu roată liberă. Rezistențele 560R de la baza fiecărui tranzistor sunt utilizate pentru a limita fluxul de curent prin bază.
Design PCB pentru circuitul senzorului tactil capacitiv
PCB-ul pentru circuitul senzorului tactil a fost proiectat pentru o placă cu o singură față. Am folosit Eagle pentru a proiecta PCB-ul meu, dar puteți utiliza orice software de proiectare la alegere. Imaginea 2D a designului plăcii noastre este prezentată mai jos.
S-a folosit un diametru de urmărire suficient pentru realizarea pistelor de putere, care este folosit pentru a curge curentul prin placa de circuit. Am pus borna cu șurub în partea de sus, deoarece este mult mai ușor să vă conectați încărcarea în acest fel, iar conectorul de alimentare, care este o mufă DC, a fost plasat lateral, ceea ce oferă, de asemenea, acces ușor. Fișierul complet de proiectare pentru Eagle împreună cu Gerber poate fi descărcat de pe linkul de mai jos.
- Fișier GERBER pentru circuitul de control al senzorului tactil bazat pe ESP32
Acum că Designul nostru este gata, este timpul să gravăm și să lipim placa. După terminarea procesului de gravare, găurire și lipire, placa arată ca imaginea de mai jos,
Cod Arduino pentru senzor tactil capacitiv bazat pe ESP32
Pentru acest proiect, vom programa ESP32 cu un cod personalizat pe care îl vom descrie în scurt timp. Codul este foarte simplu și ușor de utilizat, Începem prin a defini toți pinii necesari, în cazul nostru, definim pinii pentru senzorii și releele noastre tactile.
#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 TOUCH_SENS
Apoi, în secțiunea de configurare, începem prin inițializarea UART pentru depanare, apoi am introdus o întârziere de 1S, care ne oferă puțin timp pentru deschiderea unei ferestre Serial Monitor. Apoi, folosim funcția Arduinos pinMode pentru a face pinii de releu ca ieșire, care marchează sfârșitul secțiunii Setup () .
void setup () {Serial.begin (115200); întârziere (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }
Începem secțiunea buclă cu o instrucțiune if , funcția încorporată touchRead (pin_no) este utilizată pentru a determina dacă un pin a fost atins sau nu. Funcția touchRead (pin_no) returnează valori întregi (0 - 100), valoarea rămâne aproape 100 tot timpul, dar dacă atingem pinul selectat, valoarea scade la aproape zero și cu ajutorul valorii modificatoare, putem determina dacă știftul a fost atins sau nu de un deget.
În declarația if , verificăm orice modificare a valorilor întregi și, dacă valoarea ajunge sub 28, putem fi siguri că am recunoscut o atingere. Odată ce declarația if devine adevărată, așteptăm 50ms și verificăm din nou parametrul, acest lucru ne va ajuta să stabilim dacă valoarea senzorului a fost declanșată în mod fals, după aceea, inversăm starea pinului utilizând digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) , iar restul codului rămâne același.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Senzorul este atins"); 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 ("Senzorul doi este atins"); 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 ("Senzorul trei este atins"); 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 ("Senzorul patru este atins"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
În cele din urmă, încheiem codul cu încă 200 ms de întârziere de blocare.
Testarea circuitului senzorului tactil bazat pe ESP32
Deoarece acesta este un proiect foarte simplu, setul de testare este foarte simplu, după cum puteți vedea, am conectat 4 LED-uri cu rezistențe care acționează ca sarcini, deoarece este conectat cu releu, puteți conecta cu ușurință orice sarcină de până la 3Amps.
Îmbunătățiri suplimentare
Deși PCB este simplu, există încă loc pentru îmbunătățiri, după cum puteți vedea din partea de jos a PCB-ului real, am conectat multe rezistențe în încercarea de a conecta patru LED-uri de indicație, iar dimensiunea PCB-ului poate fi redusă, de asemenea, dacă devine o cerință, Sper că ți-a plăcut articolul și ai învățat ceva util. Dacă aveți întrebări, le puteți lăsa în secțiunea de comentarii de mai jos sau puteți folosi forumurile noastre pentru a posta alte întrebări tehnice.