- Čo je kapacitný dotykový senzor a ako funguje?
- Budovanie štvorpásmového kapacitného dotykového senzora
- Materiály požadované pre dotykový riadený obvod ESP32
- Ovládací obvod pre náš kapacitný dotykový snímač
- Dizajn DPS pre obvod kapacitného dotykového senzora
- Arduino kód pre kapacitný dotykový senzor založený na ESP32
- Testovanie obvodu dotykového snímača založeného na ESP32
- Ďalšie vylepšenia
V mnohých prípadoch sa namiesto tlačidiel používajú dotykové senzory. Výhodou je, že nemusíme vyvíjať silu na stlačenie tlačidla a kláves môžeme aktivovať bez dotyku pomocou dotykových senzorov. Technológia dotykového snímania sa stáva populárnou každý deň. A za posledné zhruba desaťročie je ťažké si predstaviť svet bez elektroniky citlivej na dotyk. Obe odporové a kapacitné dotykové metódy môžu byť použité na vytvorenie senzor dotykové, av tomto článku sa budeme diskutovať o surový spôsob výroby kapacitný dotykový senzor s ESP32, skôr sme tiež vybudovať kapacitný dotykový tlačidlá s Raspberry Pi.
Aj keď dotykové senzory špecifické pre danú aplikáciu môžu byť trochu komplikované, základný princíp tejto technológie zostáva rovnaký, preto sa v tomto článku zameriame na vývoj nášho kapacitného dotykového senzora pomocou nášho obľúbeného ESP32 a kúska medi plátovaná doska.
V predchádzajúcom tutoriáli sme vykonali Control Home Lights s dotykom pomocou dotykového senzora TTP223 a Arduino UNO. Teraz v tomto projekte budujeme dotykový senzor pre ESP32, ale to isté sa dá použiť aj pre Arduino. Predtým sme tiež používali metódy vstupu založené na dotyku pomocou kapacitných dotykových plôch s rôznymi mikrokontrolérmi, ako je napríklad vzájomné prepojenie dotykovej klávesnice s mikrokontrolérom ATmega32 a kapacitné dotykové podložky s Raspberry Pi, v prípade záujmu si ich môžete tiež skontrolovať.
Čo je kapacitný dotykový senzor a ako funguje?
Kondenzátory majú veľa podôb. Najbežnejšie raz prichádzajú vo forme vývodového obalu alebo balenia na povrchovú montáž, ale na vytvorenie kapacity potrebujeme vodiče oddelené dielektrickým materiálom. Je teda ľahké ho vytvoriť. Dobrým príkladom bude príklad, ktorý si ukážeme v nasledujúcom príklade.
Vzhľadom na vyleptanú DPS ako vodivý materiál funguje samolepka ako dielektrický materiál, takže teraz zostáva otázkou, ako dotyk medenej podložky spôsobí zmenu kapacity takým spôsobom, že je schopný detekovať ovládač dotykového snímača? Ľudský prst, samozrejme.
Existujú hlavne dva dôvody: Prvý obsahuje dielektrické vlastnosti nášho prsta, druhý vodivé vlastnosti prsta. Budeme používať kapacitný dotyk. Zameriame sa teda na kapacitný dotykový senzor. Ale predtým, ako o tom všetkom diskutujeme, je dôležité si uvedomiť, že nedochádza k žiadnemu vedeniu a prst je izolovaný kvôli papieru použitému na štítku. Takže prst nie je schopný vybiť kondenzátor.
Prst pôsobiaci ako dielektrikum:
Je všeobecne známe, že kondenzátor má konštantnú hodnotu, ktorú je možné dosiahnuť oblasťou dvoch vodivých dosiek, vzdialenosťou medzi doskami a jej dielektrickou konštantou. Nemôžeme zmeniť plochu kondenzátora iba dotykom, ale môžeme určite zmeniť dielektrickú konštantu kondenzátora, pretože ľudský prst má inú dielektrickú konštantu ako materiál, ktorý ju zobrazuje. V našom prípade je to vzduch, vzduch premiestňujeme prstami. Ak sa pýtate ako? Je to preto, že dielektrická konštanta vzduchu 1006 pri izbovej teplote hladiny mora a dielektrická konštanta prsta je oveľa vyššia okolo 80, pretože ľudský prst sa skladá väčšinou z vody. Interakcia prsta s elektrickým poľom kondenzátora teda spôsobuje zvýšenie dielektrickej konštanty, a preto sa zvyšuje kapacita.
Teraz, keď sme pochopili princíp, prejdime k výrobe skutočných PCB.
Budovanie štvorpásmového kapacitného dotykového senzora
Kapacitný dotykový senzor použitý v tomto projekte má štyri kanály, a to je jednoduché. Ďalej sme uviedli podrobný postup výroby.
Najskôr sme vyrobili DPS pre snímač pomocou návrhového nástroja DPS Eagle, ktorý vyzerá asi ako na obrázku nižšie.
Pomocou rozmerov a Photoshopu sme vyrobili šablónu a nakoniec nálepku pre snímač, ktorá vyzerá asi ako na obrázku nižšie,
Teraz, keď sme s nálepkou hotoví, pokračujeme k vytváraniu skutočnej šablóny plátovanej dosky, ktorú budeme používať na výrobu našej dosky plošných spojov, ktorá vyzerá ako na obrázku nižšie,
Teraz môžeme tento súbor vytlačiť a pokračovať v procesoch výroby domáceho PCB. AK ste nový, môžete si prečítať článok o tom, ako si doma vyrobiť PCB. Môžete si tiež stiahnuť požadované súbory PDF a Gerber z nasledujúceho odkazu
- Súbor GERBER pre štvorkanálový kapacitný dotykový snímač
Po dokončení bude skutočná leptaná PCB vyzerať ako na obrázku nižšie.
Teraz je čas vyvŕtať nejaké otvory a niektoré drôty spojíme s PCB. Aby sme to mohli spojiť s doskou ESP32. Po dokončení to vyzerá ako na obrázku nižšie.
Pretože sme do PCB nevkladali priechodky, spájka sa pri spájkovaní dostala všade, napravili sme chybu tak, že sme do PCB vložili vrták, ktorý nájdete vo vyššie uvedenej sekcii na stiahnutie. Nakoniec bol čas nalepiť nálepku a urobiť ju konečnou. Čo vyzerá asi ako na obrázku nižšie.
Teraz sme s dotykovým panelom hotoví, je čas prejsť k vytvoreniu ovládacieho obvodu pre dotykový panel.
Materiály požadované pre dotykový riadený obvod ESP32
Ďalej sú uvedené komponenty potrebné na zostavenie sekcie ovládača pomocou ESP32, väčšinu z nich by ste mali nájsť v miestnom hobby obchode.
Ďalej som uviedol zoznam komponentov v tabuľke nižšie s požadovaným typom a množstvom, pretože prepájame štvorkanálový dotykový snímač a riadime štyri striedavé záťaže, na prepínanie striedavej záťaže použijeme 4 relé a na zostavenie relé 4 tranzistory. budiace obvody.
Č |
Diely |
Typ |
Množstvo |
1 |
Relé |
Prepnúť |
4 |
2 |
BD139 |
Tranzistor |
4 |
3 |
Skrutkový terminál |
Skrutkovacia svorka 5mmx2 |
4 |
4 |
1N4007 |
Dióda |
5 |
5 |
0,1 uF |
Kondenzátor |
1 |
6 |
100uF, 25V |
Kondenzátor |
2 |
7 |
LM7805 |
Regulátor napätia |
1 |
8 |
1 tis |
Rezistor |
4 |
9 |
560R |
Rezistor |
4 |
10 |
Jantárová LED |
LED |
4 |
11 |
Mužská hlavička |
Konektor |
4 |
12 |
Ženská hlavička |
Konektor |
30 |
13 |
Červená LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
Doska ESP32 |
1 |
12 |
Plátovaná doska |
Generické 50x 50mm |
1 |
13 |
Prepojovacie drôty |
Drôty |
4 |
14 |
Pripojenie drôtov |
Drôty |
5 |
Ovládací obvod pre náš kapacitný dotykový snímač
Nasledujúci obrázok zobrazuje kompletnú schému zapojenia nášho dotykového senzora založeného na ESP32.
Ako vidíte, jedná sa o veľmi jednoduchý obvod s minimálnymi požiadavkami na komponenty.
Pretože ide o jednoduchý obvod dotykového senzora, môže byť užitočný na miestach, kde chcete komunikovať so zariadením pomocou dotyku, napríklad namiesto typického spínača namontovaného na doske môžete svoje spotrebiče zapnúť / vypnúť dotykom.
V schéme sa ako vstup používa konektor DC DC, kde poskytujeme potrebný výkon potrebný na napájanie obvodu. Odtiaľ máme náš regulátor napätia 7805, ktorý prevádza neregulovaný vstup DC na konštantný 5 V DC, cez ktorý poskytujeme napájanie modulu ESP32.
Ďalej v schéme máme dotykové konektory na pinoch 25, 26, 27, 28, kam sa chystáme pripojiť touchpad.
Ďalej tu máme naše relé, ktoré sú spínané cez tranzistor BD139, dióda D2, D3, D4, D5 je tu na to, aby chránila obvod pred akýmkoľvek prechodným napätím, ktoré sa generuje pri prepnutí relé, diódy v tejto konfigurácii sú známe ako fly-back dióda / voľnobežná dióda. Rezistory 560R v základni každého tranzistora sa používajú na obmedzenie prietoku prúdu cez základňu.
Dizajn DPS pre obvod kapacitného dotykového senzora
DPS pre náš obvod dotykového snímača bol navrhnutý pre jednostrannú dosku. Na návrh mojej dosky plošných spojov sme použili program Eagle, ale môžete použiť akýkoľvek návrhový softvér podľa vášho výberu. 2D obrázok nášho dizajnu dosky je zobrazený nižšie.
Na výrobu výkonových stôp sa použil dostatočný stopový priemer, pomocou ktorého sa vedie prúd cez dosku plošných spojov. Skrutkovaciu svorku sme umiestnili hore, pretože je tak oveľa jednoduchšie pripojiť vašu záťaž, a napájací konektor, ktorý je jednosmerným prúdom, bol umiestnený na boku, čo tiež umožňuje ľahký prístup. Celý návrhový súbor pre Eagle spolu s Gerberom si môžete stiahnuť z odkazu nižšie.
- Súbor GERBER pre ovládací obvod dotykového senzora založený na ESP32
Teraz, keď je náš Dizajn pripravený, je čas leptať a spájkovať dosku. Po dokončení procesu leptania, vŕtania a spájkovania vyzerá doska ako na obrázku nižšie,
Arduino kód pre kapacitný dotykový senzor založený na ESP32
Pre tento projekt naprogramujeme ESP32 pomocou vlastného kódu, ktorý čoskoro popíšeme. Tento kód je veľmi jednoduchý a ľahko použiteľný, Začneme definovaním všetkých požadovaných pinov, v našom prípade definujeme piny pre naše dotykové senzory a relé.
#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_SENSOR_PIN
Ďalej v sekcii nastavenia začneme inicializáciou UART na ladenie, ďalej sme zaviedli oneskorenie 1S, čo nám dáva trochu času na otvorenie okna Serial Monitor. Ďalej pomocou funkcie Arduinos pinMode vytvoríme ako výstup kolíky relé, ktoré označujú koniec sekcie Setup () .
void setup () {Serial.begin (115200); oneskorenie (1 000); pinMode (Relay_PIN_1, VÝSTUP); pinMode (Relay_PIN_2, VÝSTUP); pinMode (Relay_PIN_3, VÝSTUP); pinMode (Relay_PIN_4, OUTPUT); }
Začneme naše slučky sekciu s pokiaľ vyhlásenie, funkcia vstavaný touchRead (pin_no) sa používa na určenie, či je kolík sa dotkla alebo nie. Funkcia touchRead (pin_no) vracia rozsahy celočíselných hodnôt (0 - 100), hodnota zostáva stále okolo 100, ale ak sa dotkneme vybraného špendlíka, hodnota klesne na takmer nulu a pomocou meniacej sa hodnoty môžeme určiť, či sa konkrétneho špendlíka dotkol prst alebo nie.
Vo výroku if kontrolujeme akékoľvek zmeny v celočíselných hodnotách a ak hodnota dosiahne menej ako 28, môžeme si byť istí, že sme potvrdili dotyk. Akonáhle je -Li výrok stáva pravdou, čakáme na 50ms a skontrolujte parameter znovu, bude to nám pomáha určiť, či bola hodnota senzor spúšť falošne, po ktorej sme invertný stavu čapu pomocou digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) a zvyšok kódu zostáva rovnaký.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Dotkne sa senzora jeden"); 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 ("Dotknutý je senzor dva"); 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 ("Dotkne sa senzoru tri"); 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 ("Dotkne sa snímača Four"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Nakoniec náš kód ukončíme ďalším 200 ms blokovacím oneskorením.
Testovanie obvodu dotykového snímača založeného na ESP32
Pretože sa jedná o veľmi jednoduchý projekt, testovacia sada je veľmi jednoduchá, ako vidíte, pripojil som 4 LED diódy s odpormi, ktoré fungujú ako záťaže, pretože sú spojené s relé, môžete k nim ľahko pripojiť ľubovoľnú záťaž do 3 A.
Ďalšie vylepšenia
Aj keď je doska s plošnými spojmi jednoduchá, stále existuje priestor na vylepšenia, ako vidíte zo spodnej strany skutočnej dosky s plošnými spojmi, pripojil som veľa rezistorov v snahe pripojiť štyri indikačné LED diódy a veľkosť dosky plošných spojov sa dá tiež zmenšiť, ak je to tak stáva sa požiadavkou, Dúfam, že sa vám článok páčil a dozvedeli ste sa niečo užitočné. Ak máte akékoľvek otázky, môžete ich zanechať v sekcii komentárov nižšie alebo použiť naše fóra na zverejnenie ďalších technických otázok.