- Kaj je kapacitivni senzor na dotik in kako deluje?
- Izdelava štirismernega kapacitivnega senzorja na dotik
- Potrebni materiali za vezje z dotikom ESP32
- Krmilno vezje za naš kapacitivni senzor na dotik
- Zasnova PCB za vezje kapacitivnega senzorja na dotik
- Koda Arduino za kapacitivni senzor na dotik na osnovi ESP32
- Testiranje vezja senzorja na dotik na osnovi ESP32
- Nadaljnje izboljšave
V mnogih primerih se namesto tipk uporabljajo senzorji na dotik. Prednost je v tem, da nam ni treba prisiliti pritiska na gumb, ključ pa lahko aktiviramo, ne da bi se ga dotaknili s senzorji na dotik. Tehnologija zaznavanja dotika postaja iz dneva v dan priljubljena. In v zadnjem desetletju ali tako si je težko predstavljati svet brez elektronike, občutljive na dotik. Za razvoj senzorja na dotik lahko uporabimo tako uporovne kot kapacitivne metode dotika, v tem članku pa bomo razpravljali o surovem načinu izdelave kapacitivnega senzorja na dotik z ESP32, prej pa smo z Raspberry pi izdelali tudi kapacitivni gumb na dotik.
Čeprav so senzorji za dotik, specifični za posamezne aplikacije, lahko nekoliko zapleteni, temeljno načelo, na katerem temelji ta tehnologija, ostaja enako, zato se bomo v tem članku osredotočili na razvoj našega kapacitivnega senzorja na dotik s pomočjo našega najljubšega ESP32 in kosa bakra. oblečena deska.
V prejšnji vadnici smo izvedli nadzor domačih luči z dotikom s pomočjo TTP223 Touch Sensor in Arduino UNO. Zdaj v tem projektu gradimo senzor na dotik za ESP32, vendar lahko isto uporabimo tudi za Arduino. Prav tako smo prej uporabljali vhodne metode, ki temeljijo na dotik, z uporabo kapacitivnih ploščic na dotik z različnimi mikrokrmilniki, kot so vmesniki tipkovnice na dotik z mikrokrmilnikom ATmega32 in kapacitivne sledilne ploščice z Raspberry Pi, če jih želite, lahko tudi preverite.
Kaj je kapacitivni senzor na dotik in kako deluje?
Kondenzatorji so v različnih oblikah. Najpogostejši je enkrat v obliki svinčenega paketa ali embalaže za površinsko montažo, toda za oblikovanje kapacitivnosti potrebujemo vodnike, ločene z dielektričnim materialom. Tako ga je enostavno ustvariti. Dober primer bi bil primer, ki ga bomo razvili v naslednjem primeru.
Če upoštevamo jedkan PCB kot prevodni material, nalepka deluje kot dielektrični material, zato zdaj ostaja vprašanje, kako dotik bakrene blazinice povzroči, da se kapacitivnost spremeni tako, da lahko krmilnik senzorja na dotik zazna? Človeški prst, seveda.
No, razloga sta predvsem dva: prvi, eden vključuje dielektrične lastnosti našega prsta, drugi pa zaradi prevodnih lastnosti našega prsta. Uporabili bomo kapacitivni dotik. Torej se bomo osredotočili na kapacitivni senzor na dotik. Toda preden se pogovorimo o vsem tem, je pomembno omeniti, da zaradi papirja, uporabljenega v nalepki, prst ni voden in je prst izoliran. Torej, prst ne more izprazniti kondenzatorja.
Prst, ki deluje kot dielektrik:
Splošno znano je, da ima kondenzator konstantno vrednost, ki jo lahko zaznamo s površino dveh prevodnih plošč, razdaljo med ploščama in njeno dielektrično konstanto. Ne moremo spremeniti površine kondenzatorja samo z dotikom, lahko pa spremenimo dielektrično konstanto kondenzatorja, ker ima človeški prst drugačno dielektrično konstanto kot material, ki ga prikazuje. V našem primeru je to zrak, zrak izpodrivamo s prsti. Če sprašujete kako? To je zato, ker je dielektrična konstanta zraka 1006 pri sobni temperaturi na morski gladini in dielektrična konstanta prsta precej višja okoli 80, ker človeški prst večinoma sestavlja voda. Torej, interakcija prsta z električnim poljem kondenzatorja povzroči povečanje dielektrične konstante, zato se kapacitivnost poveča.
Zdaj, ko smo razumeli glavno, pojdimo na izdelavo dejanskih PCB-jev.
Izdelava štirismernega kapacitivnega senzorja na dotik
Senzor kapacitivni dotik uporablja v tem projektu, ima štiri kanale, in to je enostavno narediti. Spodaj smo omenili podroben postopek za njegovo izdelavo.
Najprej smo tiskano vezje za senzor izdelali s pomočjo orodja za oblikovanje tiskanih vezij Eagle, ki je videti podobno kot na spodnji sliki.
S pomočjo dimenzij in Photoshopa smo izdelali predlogo in na koncu nalepko za senzor, ki je videti podobno kot spodnja slika,
Zdaj, ko smo končali z nalepko, nadaljujemo z izdelavo dejanske predloge oblečene plošče, ki jo bomo uporabili za izdelavo našega tiskanega vezja, ki je videti podobno spodnji sliki,
Zdaj lahko to datoteko natisnemo in nadaljujemo s postopki izdelave domačega PCB-ja. ČE ste novi, si lahko ogledate članek o tem, kako zgraditi PCB doma. Zahtevane datoteke PDF in Gerber lahko prenesete tudi s spodnje povezave
- Datoteka GERBER za štirikanalni kapacitivni senzor na dotik
Ko končate, je dejanski jedkani PCB videti kot na spodnji sliki.
Zdaj je čas, da izvrtamo nekaj lukenj in nekaj žic povežemo s tiskanim vezjem. Tako da ga lahko povežemo s ploščo ESP32. Ko končate, je videti kot spodnja slika.
Ker v PCB nismo dali vtičnic, je spajkanje pri spajkanju prišlo povsod, napako smo odpravili tako, da smo na PCB vrtali luknjo, ki jo najdete v zgornjem razdelku za prenos. Končno je prišel čas, da nalepko nadenemo in naredimo dokončno. Kar je videti podobno spodnji sliki.
Zdaj smo končali s ploščo na dotik, čas je, da nadaljujemo z izdelavo krmilnega vezja za ploščo na dotik.
Potrebni materiali za vezje z dotikom ESP32
Sestavni deli, potrebni za izdelavo odseka krmilnika z uporabo ESP32, so navedeni spodaj, večino bi jih morali najti v lokalni trgovini s hobiji.
V spodnji tabeli sem navedel tudi komponente in zahtevano vrsto in količino, ker povezujemo štirikanalni senzor na dotik in nadzorujemo štiri izmenične obremenitve, bomo uporabili 4 releje za preklapljanje izmenične obremenitve in 4 tranzistorje za izdelavo releja vezja gonilnikov.
Sl.Št. |
Deli |
Tip |
Količina |
1. |
Rele |
Preklopi |
4. |
2. |
BD139 |
Tranzistor |
4. |
3. |
Vijačni priključek |
Vijačni priključek 5mmx2 |
4. |
4. |
1N4007 |
Dioda |
5. |
5. |
0,1uF |
Kondenzator |
1. |
6. |
100uF, 25V |
Kondenzator |
2. |
7. |
LM7805 |
Regulator napetosti |
1. |
8. |
1K |
Upor |
4. |
9. |
560R |
Upor |
4. |
10. |
Oranžna LED |
LED |
4. |
11. |
Moška glava |
Konektor |
4. |
12. |
Ženska glava |
Konektor |
30. |
13. |
Rdeča LED |
LED |
1. |
14. |
ESP32 Dev Board V1 |
Plošča ESP32 |
1. |
12. |
Oblečena deska |
Splošno 50x 50mm |
1. |
13. |
Jumper žice |
Žice |
4. |
14. |
Povezovanje žic |
Žice |
5. |
Krmilno vezje za naš kapacitivni senzor na dotik
Spodnja slika prikazuje celoten diagram vezja za naš senzor na dotik, ki temelji na ESP32.
Kot lahko vidite, gre za zelo preprosto vezje z zelo minimalnimi zahtevanimi komponentami.
Ker gre za preprosto vezje senzorja na dotik, je lahko koristno na mestih, kjer želite z dotikom komunicirati z napravo, na primer, namesto da bi uporabili tipično stikalo, nameščeno na plošči, lahko svoje naprave vklopite / izklopite z dotikom.
V shemi se kot vhod uporablja DC enojna vtičnica, kjer zagotavljamo potrebno moč, potrebno za napajanje vezja, od tam imamo svoj regulator napetosti 7805, ki pretvori nereguliran enosmerni vhod v konstantni 5V DC, skozi katerega zagotavljamo napajanje modula ESP32.
Nato imamo v shemi priključke na dotik na nožicah 25, 26, 27, 28, kamor bomo priključili sledilno ploščico.
Nato imamo svoje releje, ki jih preklopimo prek tranzistorja BD139, dioda D2, D3, D4, D5 je tam, da zaščiti vezje pred kakršno koli prehodno napetostjo, ki nastane, ko se rele preklopi, diode v tej konfiguraciji pa so znane kot leteča dioda / dioda s prostim tekom. Upori 560R na dnu vsakega tranzistorja se uporabljajo za omejevanje pretoka toka skozi dno.
Zasnova PCB za vezje kapacitivnega senzorja na dotik
PCB za naše vezje senzorja na dotik je bil zasnovan za enostransko ploščo. Za oblikovanje mojega tiskanega vezja smo uporabili Eagle, vendar lahko uporabite katero koli programsko opremo za oblikovanje po vaši izbiri. 2D slika naše zasnove plošče je prikazana spodaj.
Za izdelavo pogonskih stez je bil uporabljen zadosten premer sledi, ki se uporablja za tok toka skozi vezje. Vijačni priključek smo postavili na vrh, ker je na ta način veliko lažje povezati tovor, ob strani pa je bil nameščen napajalni konektor, ki je enosmerna cevna vtičnica, kar omogoča tudi enostaven dostop. Celotno oblikovalsko datoteko za Eagle skupaj z Gerberjem lahko prenesete s spodnje povezave.
- Datoteka GERBER za krmilno vezje senzorja na dotik na osnovi ESP32
Zdaj, ko je naš dizajn pripravljen, je čas za jedkanje in spajkanje plošče. Po končanem jedkanju, vrtanju in spajkanju je plošča videti kot spodnja slika,
Koda Arduino za kapacitivni senzor na dotik na osnovi ESP32
Za ta projekt bomo ESP32 programirali s kodo po meri, ki jo bomo v kratkem opisali. Koda je zelo preprosta in enostavna za uporabo, Najprej določimo vse zahtevane nožice, v našem primeru določimo nožice za senzorje in releje na dotik.
#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 14PIN_DIN_PIN_3
Nato v razdelku za nastavitev začnemo z inicializacijo UART za odpravljanje napak, nato pa smo uvedli zamik 1S, ki nam daje malo časa za odpiranje okna serijskega monitorja. Nato s funkcijo Arduinos pinMode naredimo relejske zatiče kot izhod, kar označuje konec razdelka Setup () .
void setup () {Serial.begin (115200); zamuda (1000); pinMode (rele_PIN_1, IZHOD); pinMode (rele_PIN_2, IZHOD); pinMode (rele_PIN_3, IZHOD); pinMode (rele_PIN_4, IZHOD); }
Naš odsek zanke začnemo z stavkom if , vgrajena funkcija touchRead (pin_no) se uporablja za ugotavljanje, ali se je pin dotaknil ali ne. Funkcija touchRead (pin_no) vrne celoštevilska območja vrednosti (0 - 100), vrednost ostane ves čas blizu 100, če pa se dotaknemo izbranega zatiča, vrednost pade na skoraj nič in s pomočjo spreminjajoče se vrednosti lahko ugotovimo, ali se je določene žebljičke dotaknil prst ali ne.
V stavku if preverjamo morebitne spremembe v številskih vrednostih in če vrednost doseže pod 28, smo lahko prepričani, da smo prepoznali dotik. Ko izjava if postane resnična, počakamo 50 ms in ponovno preverimo parameter, kar nam bo pomagalo ugotoviti, ali je bila vrednost senzorja napačno sprožena, nato pa s pomočjo digitalWrite (Relay_PIN_1,! DigitalRead) obrnemo status zatiča (Relay_PIN_1)) , preostala koda pa ostane enaka.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Senzor se je dotaknil"); 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 ("Senzor dva je dotaknjen"); 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 ("Senzor tri je dotaknjen"); 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 ("Sensor Four is touch"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Na koncu našo kodo zaključimo še z 200 ms zakasnitve blokiranja.
Testiranje vezja senzorja na dotik na osnovi ESP32
Ker je to zelo preprost projekt, je testni komplet zelo preprost, kot vidite, sem priklopil 4 LED z upori, ki delujejo kot obremenitve, saj je povezan z relejem, lahko enostavno priključite katero koli obremenitev do 3Amp.
Nadaljnje izboljšave
Čeprav je PCB preprost, še vedno obstaja prostor za izboljšave, kot lahko vidite na spodnji strani dejanskega PCB-ja, povezal sem veliko uporov v poskusu priključitve štirih indikacijskih LED-diod in tudi velikost PCB-ja se lahko zmanjša, če to postane zahteva, Upam, da ste članek uživali in se naučili kaj koristnega. Če imate kakršna koli vprašanja, jih lahko pustite v spodnjem oddelku za komentarje ali uporabite naše forume za objavo drugih tehničnih vprašanj.