- Kas ir ietilpīgs skārienjutīgais sensors un kā tas darbojas?
- Četrvirzienu kapacitatīvā skārienekrāna veidošana
- ESP32 skārienvadāmajai shēmai nepieciešamie materiāli
- Vadības ķēde mūsu ietilpīgajam skārienjutīgajam sensoram
- PCB dizains kapacitatīvā skārienekrāna ķēdei
- Arduino kods ESP32 bāzes kapacitatīvam skārienjutīgam sensoram
- ESP32 bāzes skārienjutīgo shēmas pārbaude
- Turpmākie uzlabojumi
Daudzos gadījumos spiedpogu vietā tiek izmantoti skārienjutīgi sensori. Priekšrocība ir tāda, ka mums nav jānodrošina spēks, lai nospiestu pogu, un mēs varam aktivizēt taustiņu, nepieskaroties tam, izmantojot skārienjutīgos sensorus. Skārienjūtīgā tehnoloģija ar katru dienu kļūst populāra. Apmēram pēdējās desmitgades laikā ir kļuvis grūti iedomāties pasauli bez skārienjutīgas elektronikas. Skārienjutīga sensora izstrādei var izmantot gan rezistīvās, gan kapacitatīvās skārienjutīgās metodes, un šajā rakstā mēs apspriedīsim neapstrādātu veidu, kā ar ESP32 izgatavot kapacitatīvu skārienjutīgo sensoru, iepriekš mēs esam izveidojuši arī kapacitatīvu skārienpogu ar Raspberry pi.
Lai gan lietojumprogrammas skārienjutīgi sensori var būt nedaudz sarežģīti, šīs tehnoloģijas pamatprincips paliek nemainīgs, tāpēc šajā rakstā mēs koncentrēsimies uz kapacitatīvā skārienjutīgā sensora izstrādi, izmantojot mūsu iecienīto ESP32 un vara gabalu. plaķēts dēlis.
Iepriekšējā apmācībā mēs esam veikuši Control Home Lights with Touch, izmantojot TTP223 Touch Sensor un Arduino UNO. Tagad šajā projektā mēs veidojam skārienjutīgo sensoru ESP32, taču to pašu var izmantot arī Arduino. Arī mēs iepriekš izmantojām skārienjutīgas ievades metodes, izmantojot kapacitatīvus skārienpaliktņus ar dažādiem mikrokontrolleriem, piemēram, skārienjutīgās tastatūras saskarni ar mikrokontrolleru ATmega32 un kapacitatīvo skārienpaliktni ar Raspberry Pi, ja vēlaties, varat tos arī pārbaudīt.
Kas ir ietilpīgs skārienjutīgais sensors un kā tas darbojas?
Kondensatori ir dažādi. Visizplatītākais gadījums ir svina vai virsmas stiprinājuma iepakojums, bet, lai izveidotu kapacitāti, mums ir nepieciešami vadītāji, kas atdalīti ar dielektrisko materiālu. Tādējādi to ir viegli izveidot. Labs piemērs būtu tas, kuru mēs izstrādāsim šajā piemērā.
Uzskatot iegravēto PCB kā vadošu materiālu, uzlīme darbojas kā dielektrisks materiāls, tāpēc tagad paliek jautājums, kā pieskaršanās vara spilventiņam izraisa kapacitātes izmaiņas tādā veidā, ka skārienjutīgā sensora kontrolieris spēj noteikt? Cilvēka pirksts, protams.
Nu, galvenokārt, ir divi iemesli: Pirmkārt, viens ietver mūsu pirksta dielektriskās īpašības, otrais - pirksta vadošo īpašību dēļ. Mēs izmantosim kapacitatīvu pieskārienu. Tātad, mēs pievērsīsimies kapacitatīvam skārienjutīgam sensoram. Bet, pirms mēs to visu apspriežam, ir svarīgi atzīmēt, ka notiek neviena vadīšana un pirksts ir izolēts uzlīmes izmantotā papīra dēļ. Tātad, pirksts nespēj izlādēt kondensatoru.
Pirksts, kas darbojas kā dielektrisks:
Ir vispārzināms, ka kondensatoram ir nemainīga vērtība, ko var realizēt ar divu vadošo plākšņu laukumu, attālumu starp plāksnēm un tā dielektrisko konstanti. Mēs nevaram mainīt kondensatora laukumu, tikai pieskaroties tam, bet mēs varam droši mainīt kondensatora dielektrisko konstanti, jo cilvēka pirkstam ir atšķirīga dielektriskā konstante nekā materiālam, kas to parāda. Mūsu gadījumā tas ir gaiss, mēs izstumjam gaisu ar pirkstiem. Ja jūs jautājat, kā? Tas ir tāpēc, ka gaisa 1006 dielektriskā konstante jūras līmeņa istabas temperatūrā un pirksta dielektriskā konstante ir daudz lielāka ap 80, jo cilvēka pirksts galvenokārt sastāv no ūdens. Tātad pirksta mijiedarbība ar kondensatora elektrisko lauku izraisa dielektriskās konstantes palielināšanos, līdz ar to palielinās kapacitāte.
Tagad, kad mēs esam sapratuši galveno, pārejam pie faktisko PCB izgatavošanas.
Četrvirzienu kapacitatīvā skārienekrāna veidošana
Capacitive touch sensors izmantots šajā projektā ir četri kanāli, un tas ir viegli izdarīt. Zemāk mēs esam minējuši detalizētu procesu, lai to izveidotu.
Pirmkārt, mēs izgatavojām sensora PCB ar Eagle PCB dizaina rīka palīdzību, kas izskatās kaut kas līdzīgs attēlam zemāk.
Izmantojot izmērus un Photoshop, mēs izveidojām sensora veidni un visbeidzot uzlīmi, kas izskatās kaut kas līdzīgs attēlam zemāk,
Tagad, kad mēs esam paveikuši ar uzlīmi, mēs pārietam pie faktiskās apšūtās dēļu veidnes izgatavošanas, kuru mēs izmantosim, lai izgatavotu mūsu PCB, kas izskatās kaut kas līdzīgs zemāk redzamajam attēlam,
Tagad mēs varam izdrukāt šo failu un turpināt pašmāju PCB izgatavošanas procesus. JA esat jauns, varat apskatīt rakstu par to, kā veidot PCB mājās. Nepieciešamos PDF un Gerber failus varat arī lejupielādēt no saites zemāk
- GERBER fails četru kanālu ietilpīgajam skārienjutīgajam sensoram
Kad tas izdarīts, faktiskā kodinātā PCB izskatās kā attēlā zemāk.
Tagad ir pienācis laiks urbt dažus caurumus, un mēs savienojam dažus vadus ar PCB. Lai mēs to varētu savienot ar ESP32 dēli. Kad tas ir izdarīts, izskatās kā zemāk redzamajā attēlā.
Tā kā mēs neievietojām via's PCB, lodēšanas laikā lodēšana nokļuva visā vietā, mēs novērsām kļūdu, ievietojot PCB urbšanas atveri, kuru varat atrast iepriekšminētajā lejupielādes sadaļā. Visbeidzot, bija pienācis laiks uzlikt uzlīmi un padarīt to galīgu. Kas izskatās kaut kas līdzīgs attēlam zemāk.
Tagad mēs esam paveikuši ar skārienpaneli, ir pienācis laiks pāriet uz skārienpaneļa vadības ķēdes izveidošanu.
ESP32 skārienvadāmajai shēmai nepieciešamie materiāli
Komponenti, kas nepieciešami, lai izveidotu kontroliera sadaļu, izmantojot ESP32, ir norādīti zemāk, lielāko daļu no tiem jums vajadzētu atrast vietējā hobiju veikalā.
Es arī uzskaitīju zemāk esošās tabulas komponentus ar nepieciešamo tipu un daudzumu, jo mēs savienojam četrkanālu skārienjutīgo sensoru un kontrolējam četras maiņstrāvas slodzes, mēs izmantosim 4 relejus, lai pārslēgtu maiņstrāvas slodzi, un 4 tranzistorus, lai izveidotu releju vadītāja shēmas.
Sl. Nē |
Daļas |
Tips |
Daudzums |
1 |
Relejs |
Slēdzis |
4 |
2 |
BD139 |
Tranzistors |
4 |
3 |
Skrūvju terminālis |
Skrūves spaile 5mmx2 |
4 |
4 |
1N4007 |
Diode |
5 |
5 |
0.1uF |
Kondensators |
1 |
6 |
100uF, 25V |
Kondensators |
2 |
7 |
LM7805 |
Sprieguma regulators |
1 |
8 |
1K |
Rezistors |
4 |
9 |
560R |
Rezistors |
4 |
10 |
Dzintara LED |
LED |
4 |
11 |
Vīriešu galvene |
Savienotājs |
4 |
12 |
Sieviete Header |
Savienotājs |
30 |
13 |
Sarkana LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
ESP32 valde |
1 |
12 |
Apšūts dēlis |
Vispārējs 50x 50mm |
1 |
13 |
Džemperu vadi |
Vadi |
4 |
14 |
Vadu savienošana |
Vadi |
5 |
Vadības ķēde mūsu ietilpīgajam skārienjutīgajam sensoram
Zemāk redzamajā attēlā parādīta visa mūsu ESP32 balstītā skārienjutīgā shēmas shēma .
Kā redzat, tā ir ļoti vienkārša shēma ar minimāli nepieciešamajiem komponentiem.
Tā kā tā ir vienkārša pieskārienu sensoru shēma, tā var būt noderīga vietās, kur vēlaties mijiedarboties ar ierīci, izmantojot pieskārienu, piemēram, tā vietā, lai izmantotu tipisku panelī uzstādītu slēdzi, jūs varat ieslēgt / izslēgt ierīces ar pieskārienu.
Shematikā līdzstrāvas mucas ligzda tiek izmantota kā ieeja, kur mēs nodrošinām nepieciešamo jaudu ķēdes darbināšanai, no turienes mums ir mūsu 7805 sprieguma regulators, kas neregulēto līdzstrāvas ieeju pārveido par pastāvīgu 5 V līdzstrāvu, caur kuru mēs nodrošinām barošana ESP32 modulim.
Tālāk shematiski mums ir mūsu pieskārienu savienotāji 25., 26., 27., 28. tapā, kur mēs savienosim skārienpaliktni.
Pēc tam mums ir mūsu releji, kas tiek pārslēgti caur BD139 tranzistoru, tur ir diodes D2, D3, D4, D5, lai aizsargātu ķēdi no jebkura pārejoša sprieguma, kas rodas, kad relejs pārslēdzas, šīs konfigurācijas diodes ir pazīstamas kā atpakaļgaitas diode / brīvgaitas diode. 560R rezistori katra tranzistora pamatnē tiek izmantoti, lai ierobežotu strāvas plūsmu caur pamatni.
PCB dizains kapacitatīvā skārienekrāna ķēdei
Mūsu skārienjūtīgo shēmu PCB bija paredzēta vienpusējai plāksnei. Mēs izmantojām Eagle, lai izstrādātu manu PCB, taču jūs varat izmantot jebkuru izvēlēto dizaina programmatūru. Mūsu dēļu dizaina 2D attēls ir parādīts zemāk.
Lai izveidotu barošanas sliedes, tika izmantots pietiekams pēdas diametrs, ko izmanto strāvas plūsmai caur shēmas plates. Mēs ievietojam skrūves spaili augšpusē, jo šādā veidā ir daudz vieglāk savienot savu kravu, un sānos tika ievietots strāvas savienotājs, kas ir līdzstrāvas mucas domkrats, kas arī nodrošina ērtu piekļuvi. Pilnu dizaina failu Eagle kopā ar Gerber var lejupielādēt no saites zemāk.
- GERBER fails ESP32 bāzētajam skārienjutīgā vadības ķēdei
Tagad, kad mūsu dizains ir gatavs, ir pienācis laiks iekodēt un pielodēt dēli. Pēc kodināšanas, urbšanas un lodēšanas procesa pabeigšanas dēlis izskatās kā parādīts zemāk,
Arduino kods ESP32 bāzes kapacitatīvam skārienjutīgam sensoram
Šim projektam mēs ieprogrammēsim ESP32 ar pielāgotu kodu, kuru mēs drīz aprakstīsim. Kods ir ļoti vienkāršs un viegli lietojams, Mēs vispirms definējam visus nepieciešamos tapas, mūsu gadījumā mēs definējam tapas mūsu skārienjutīgajiem sensoriem un relejiem.
#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
Tālāk iestatīšanas sadaļā mēs sākam ar UART inicializēšanu atkļūdošanai, pēc tam mēs esam ieviesuši 1S aizkavi, kas dod mums nedaudz laika sērijveida monitora loga atvēršanai. Pēc tam mēs izmantojam funkciju Arduinos pinMode, lai padarītu releja tapas kā izvadi, kas iezīmē sadaļas Iestatīšana () beigas.
void setup () {Serial.begin (115200); kavēšanās (1000); pinMode (Relejs_PIN_1, OUTPUT); pinMode (relejs_PIN_2, OUTPUT); pinMode (relejs_PIN_3, OUTPUT); pinMode (relejs_PIN_4, OUTPUT); }
Sākam mūsu cilpas sadaļu ar , ja paziņojumu, tad Iebūvēts funkcija touchRead (pin_no) tiek izmantots, lai noteiktu, vai pin aizkustināja vai ne. Funkcija touchRead (pin_no) atgriež veselu skaitļu vērtību diapazonus (0 - 100), vērtība visu laiku paliek tuvu 100, bet, ja mēs pieskaramies izvēlētajai tapai, vērtība nokrītas gandrīz līdz nullei, un ar mainīgās vērtības palīdzību mēs varam noteikt, vai konkrētajai tapai pieskārās pirksts, vai nē.
Jo , ja paziņojumā, mēs pārbaudot jebkādām izmaiņām vesels vērtības, un ja vērtība sasniedz zem 28, mēs varam būt pārliecināti, ka mums ir atzinusi pieskārienu. Kad apgalvojums if kļūs patiess, mēs gaidām 50 ms un vēlreiz pārbaudām parametru. Tas mums palīdzēs noteikt, vai sensora vērtība ir kļūdaini iedarbojusies, pēc tam mēs invertējam tapas statusu, izmantojot digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) metodi, un pārējais kods paliek nemainīgs.
ja (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Viens sensors ir pieskāries"); 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 ("Pieskaras diviem sensoriem"); 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 ("Pieskaries trim sensoram"); 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 ("Pieskaras četriem sensoriem"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Visbeidzot, mēs beidzam savu kodu ar vēl 200 ms bloķēšanas aizkavi.
ESP32 bāzes skārienjutīgo shēmas pārbaude
Tā kā tas ir ļoti vienkāršs projekts, testa komplekts ir ļoti vienkāršs, kā redzat, es esmu savienojis 4 gaismas diodes ar rezistoriem, kas darbojas kā slodzes, jo tas ir savienots ar releju, jūs varat viegli savienot jebkuru slodzi līdz 3A amp.
Turpmākie uzlabojumi
Lai gan PCB ir vienkārša, joprojām ir iespējas uzlabot, kā redzat no faktiskās PCB apakšējās puses, es esmu savienojis daudzus rezistorus, mēģinot savienot četrus indikācijas gaismas diodes, un PCB izmēru var arī samazināt, ja tas kļūst par prasību, Ceru, ka jums patika raksts un uzzinājāt kaut ko noderīgu. Ja jums ir kādi jautājumi, varat tos atstāt komentāru sadaļā zemāk vai izmantot mūsu forumus citu tehnisku jautājumu izlikšanai.