- Kas yra talpinis jutiklinis jutiklis ir kaip jis veikia?
- Keturių krypčių talpinio jutiklio jutiklio sukūrimas
- Medžiagos, reikalingos ESP32 lietimui valdomoms grandinėms
- Mūsų talpinio jutiklio jutiklio valdymo grandinė
- Talpinio lietimo jutiklio grandinės PCB dizainas
- ESP32 talpinio jutiklinio jutiklio „Arduino“ kodas
- ESP32 pagrindu veikiančio jutiklinio jutiklio grandinės testavimas
- Kiti patobulinimai
Daugeliu atvejų jutikliniai jutikliai naudojami vietoj mygtukų. Privalumas yra tas, kad neturime jėgos paspausti mygtuką, o raktą galime suaktyvinti neliesdami jo naudodami jutiklinius jutiklius. Jutimo jutimo technologija tampa populiari kiekvieną dieną. Maždaug per pastarąjį dešimtmetį tapo sunku įsivaizduoti pasaulį be lietimui jautrios elektronikos. Kuriant jutiklinį jutiklį, gali būti naudojami tiek varžiniai, tiek talpiniai jutikliniai metodai, o šiame straipsnyje aptarsime neapdorotą talpinio jutiklio jutiklio su ESP32 gamybos būdą. Anksčiau mes taip pat sukūrėme talpinį jutiklinį mygtuką su „Raspberry pi“.
Nors konkrečios programos jutikliniai jutikliai gali būti šiek tiek sudėtingi, pagrindinis šios technologijos principas išlieka tas pats, todėl šiame straipsnyje mes sutelksime dėmesį į savo talpinio jutiklinio jutiklio kūrimą, naudodami mūsų mėgstamą ESP32 ir vario gabalėlį. apkalta lenta.
Ankstesnėje pamokoje mes atlikome „Control Home Lights with Touch“ naudodami „TTP223 Touch Sensor“ ir „Arduino UNO“. Dabar šiame projekte mes kuriame jutiklinį jutiklį, skirtą ESP32, tačiau tą patį galima naudoti ir „Arduino“. Be to, mes anksčiau naudojome jutiklinius įvesties metodus, naudodami talpinius jutiklinius kilimėlius su skirtingais mikrovaldikliais, pvz., „Touch Keypad Interfacing“ su „ATmega32“ mikrovaldikliu ir „Capacitive TouchPad“ su „Raspberry Pi“, taip pat galite juos patikrinti, jei susidomėjote.
Kas yra talpinis jutiklinis jutiklis ir kaip jis veikia?
Kondensatorių būna įvairių. Dažniausiai tai būna švino pakuotė arba ant paviršiaus pritvirtinta pakuotė, tačiau norint suformuoti talpą, mums reikia laidininkų, atskirtų dielektrine medžiaga. Taigi, ją lengva sukurti. Geras pavyzdys būtų tas, kurį mes plėtosime šiame pavyzdyje.
Laikant išgraviruotą PCB kaip laidžią medžiagą, lipdukas veikia kaip dielektrinė medžiaga, todėl dabar lieka klausimas, kaip prisilietus prie vario padėklo, talpa keičiasi taip, kad jutiklinio jutiklio valdiklis galėtų aptikti? Žinoma, žmogaus pirštas.
Na, daugiausia yra dvi priežastys: pirma, viena apima dielektrines mūsų piršto savybes, antroji - dėl mūsų piršto laidžių savybių. Mes naudosime talpinį jutiklį. Taigi, mes sutelksime dėmesį į talpinį jutiklinį jutiklį. Tačiau prieš aptariant visa tai, svarbu pažymėti, kad nevyksta laidumas, o pirštas yra izoliuotas dėl lipduke naudojamo popieriaus. Taigi, pirštas negali iškrauti kondensatoriaus.
Pirštas, veikiantis kaip dielektrikas:
Visuotinai žinoma, kad kondensatorius turi pastovią vertę, kurią galima realizuoti pagal dviejų laidžių plokščių plotą, atstumą tarp plokščių ir jo dielektrinę konstantą. Mes negalime pakeisti kondensatoriaus ploto tik palietę, bet galime įsitikinti, kad pakeisime kondensatoriaus dielektrinę konstantą, nes žmogaus piršto dielektrinė konstanta yra kitokia nei ją demonstruojančios medžiagos. Mūsų atveju tai yra oras, mes išstumiame orą pirštais. Jei klausiate, kaip? Taip yra todėl, kad oro 1006 dielektrinė konstanta kambario temperatūroje jūros lygyje ir piršto dielektrinė konstanta yra daug didesnė apie 80, nes žmogaus pirštas susideda daugiausia iš vandens. Taigi, piršto sąveika su kondensatoriaus elektriniu lauku padidina dielektrinę konstantą, taigi talpa padidėja.
Dabar, kai supratome pagrindinį principą, pereikime prie faktinių PCB gaminimo.
Keturių krypčių talpinio jutiklio jutiklio sukūrimas
Talpinė jutikliniu jutiklis naudojamas šiame projekte turi keturis kanalus, ir tai lengva padaryti. Žemiau mes paminėjome išsamų procesą.
Pirmiausia mes padarėme jutiklio PCB naudodami „ Eagle“ PCB dizaino įrankį, kuris atrodo panašiai kaip paveikslėlyje žemiau.
Naudodami matmenis ir „Photoshop“, mes sukūrėme jutiklio šabloną ir galiausiai lipduką, kuris atrodo panašus į žemiau esantį paveikslėlį,
Dabar, kai baigsime lipduką, pereisime prie faktinio plakiruoto lentos šablono, kurį naudosime gamindami savo PCB, kuris atrodo panašiai kaip žemiau pateiktame paveikslėlyje.
Dabar mes galime atsispausdinti šį failą ir tęsti namų PCB kūrimo procesus. JEI esate naujas, galite perskaityti straipsnį apie tai, kaip statyti PCB namuose. Taip pat galite atsisiųsti reikiamus PDF ir „Gerber“ failus iš toliau pateiktos nuorodos
- GERBER failas keturių kanalų talpiniam jutikliniam jutikliui
Kai tai bus padaryta, tikroji išgraviruota PCB atrodo kaip paveikslėlyje žemiau.
Dabar atėjo laikas išgręžti keletą skylių, o kai kuriuos laidus sujungiame su PCB. Kad galėtume jį prijungti prie ESP32 plokštės. Kai tai bus padaryta, atrodo, kaip paveikslėlyje žemiau.
Kadangi mes nepadėjome „PC's“ į „PCS“, lituodami patekome į visą vietą, mes ištaisėme savo klaidą, įdėdami gręžimo angą ant PCB, kurią galite rasti aukščiau esančiame atsisiuntimo skyriuje. Galiausiai atėjo laikas uždėti lipduką ir padaryti jį galutinį. Kuris atrodo panašus į paveikslėlį žemiau.
Dabar mes baigėme darbą su jutikliniu skydeliu, atėjo laikas pereiti prie jutiklinio skydelio valdymo grandinės kūrimo.
Medžiagos, reikalingos ESP32 lietimui valdomoms grandinėms
Komponentai, reikalingi valdiklio skyriui sukurti naudojant ESP32, pateikti žemiau, daugumą jų turėtumėte rasti vietinėje pomėgių parduotuvėje.
Toliau pateiktoje lentelėje taip pat išvardijau komponentus, nurodydamas reikalingą tipą ir kiekį, nes mes sujungiame keturių kanalų jutiklinį jutiklį ir valdome keturias kintamosios srovės apkrovas, mes naudosime 4 reles kintamosios srovės apkrovai perjungti ir 4 tranzistorius relės sukūrimui. vairuotojo grandinės.
Sl. Nr |
Dalys |
Tipas |
Kiekis |
1 |
Estafetė |
Perjungti |
4 |
2 |
BD139 |
Tranzistorius |
4 |
3 |
Sraigtinis terminalas |
Sraigtinis gnybtas 5mmx2 |
4 |
4 |
1N4007 |
Diodas |
5 |
5 |
0,1 uF |
Kondensatorius |
1 |
6 |
100uF, 25V |
Kondensatorius |
2 |
7 |
LM7805 |
Įtampos reguliatorius |
1 |
8 |
1 tūkst |
Rezistorius |
4 |
9 |
560R |
Rezistorius |
4 |
10 |
Gintaro šviesos diodas |
LED |
4 |
11 |
Vyro antraštė |
Jungtis |
4 |
12 |
Moteris antraštė |
Jungtis |
30 |
13 |
Raudonas šviesos diodas |
LED |
1 |
14 |
„ESP32 Dev“ plokštė V1 |
ESP32 valdyba |
1 |
12 |
Dengta lenta |
Bendras 50x50mm |
1 |
13 |
Šuolių laidai |
Laidai |
4 |
14 |
Laidų sujungimas |
Laidai |
5 |
Mūsų talpinio jutiklio jutiklio valdymo grandinė
Žemiau pateiktame paveikslėlyje parodyta visa mūsų ESP32 pagrindu veikiančio jutiklinio jutiklio grandinės schema .
Kaip matote, tai yra labai paprasta grandinė su labai minimaliais komponentais.
Kadangi tai paprasta jutiklinio jutiklio grandinė, ji gali būti naudinga tose vietose, kur norite sąveikauti su įrenginiu paliesdami, pavyzdžiui, užuot naudoję įprastą lentoje sumontuotą jungiklį, galite įjungti / išjungti savo prietaisus paliesdami.
Schemoje nuolatinės srovės lizdo lizdas naudojamas kaip įvestis, kur mes suteikiame reikiamą energiją, reikalingą grandinei maitinti, iš ten turime savo 7805 įtampos reguliatorių, kuris nereguliuojamos nuolatinės įvesties paverčia pastovia 5 V nuolatine įtampa, per kurią mes teikiame ESP32 modulio maitinimas.
Toliau schemoje mes turime savo jutiklines jungtis 25, 26, 27, 28 kaiščiuose, kur mes sujungsime jutiklinę dalį.
Toliau mes turime savo reles, kurios yra perjungiamos per BD139 tranzistorių. Diodai D2, D3, D4, D5 yra tam, kad apsaugotų grandinę nuo bet kokios pereinamosios įtampos, kuri atsiranda, kai relė perjungiama, šios konfigūracijos diodai yra žinomi kaip atgalinis diodas / laisvos eigos diodas. Kiekvieno tranzistoriaus pagrinde esantys 560R rezistoriai naudojami ribojant srovės srautą per pagrindą.
Talpinio lietimo jutiklio grandinės PCB dizainas
Mūsų jutiklinio jutiklio grandinės PCB buvo sukurta vienpusiai lentai. Mes panaudojome „Eagle“ kurdami mano PCB, tačiau galite naudoti bet kurią pasirinktą dizaino programinę įrangą. 2D mūsų plokštės dizaino vaizdas parodytas žemiau.
Elektros takeliams pagaminti buvo naudojamas pakankamas pėdsakų skersmuo, kuris naudojamas srovei tekėti per grandinės plokštę. Mes įdėjome varžto gnybtą viršuje, nes tokiu būdu daug lengviau prijungti savo apkrovą, o šone buvo įdėta maitinimo jungtis, kuri yra nuolatinės srovės vamzdžio lizdas, kuris taip pat suteikia lengvą prieigą. Išsamų „Eagle“ dizaino failą kartu su „Gerber“ galite atsisiųsti iš toliau pateiktos nuorodos.
- GERBER failas, skirtas jutiklinio jutiklio valdymo grandinei ESP32
Dabar, kai mūsų dizainas yra paruoštas, laikas išgraviruoti ir lituoti lentą. Baigus ėsdinimo, gręžimo ir litavimo procesą, lenta atrodo taip, kaip parodyta žemiau,
ESP32 talpinio jutiklinio jutiklio „Arduino“ kodas
Šiam projektui užprogramuosime ESP32 su pritaikytu kodu, kurį netrukus aprašysime. Kodas yra labai paprastas ir patogus naudoti, Mes pradedame apibrėždami visus reikalingus kaiščius, mūsų atveju, mes nustatome kontaktinius jutiklius ir reles.
#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
Toliau, sąrankos skyriuje, mes pradedame inicijuodami UART derinimui, tada mes įdiegėme 1S vėlavimą, kuris suteikia mums šiek tiek laiko atidaryti Serial Monitor langą. Tada mes naudojame „ Arduinos pinMode“ funkciją, kad „Relay“ kaiščiai būtų pagaminti kaip išvestis, o tai žymi skyriaus „ Setup“ () pabaigą.
negaliojanti sąranka () {Serial.begin (115200); vėlavimas (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }
Mes pradedame savo ciklo skyrių su sakiniu „ if“ , integruota funkcija „ touchRead“ (pin_no) naudojama nustatyti, ar kaištis buvo paliestas, ar ne. Funkcija „ touchRead“ („pin_no“) grąžina sveiko skaičiaus diapazonus (0–100), vertė visą laiką lieka šalia 100, tačiau jei paliesime pasirinktą kaištį, reikšmė nukris iki beveik nulio ir kintančios vertės pagalba galime nustatyti, ar konkretus kaištis buvo paliestas pirštu, ar ne.
„ If“ sakinyje tikriname, ar nėra sveikojo skaičiaus verčių pokyčių, o jei vertė pasiekia žemesnę nei 28, galime būti tikri, kad patvirtinome palietimą. Kai jei teiginys tampa tiesa, mes laukiame 50ms ir vėl patikrinti parametrą, tai padės mums nustatyti, jei jutiklis vertė buvo sukelti klaidingai, po to mes invertuotąjį kaiščio statuso naudojant digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) metodas, o likusi kodo dalis lieka ta pati.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Paliečiamas vienas jutiklis"); 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 ("Du jutikliai paliesti"); 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 ("Trys jutikliai paliesti"); 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 ("Paliečiamas keturi jutiklis"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Galiausiai, mes baigiame savo kodą dar 200 ms blokavimo vėlavimo.
ESP32 pagrindu veikiančio jutiklinio jutiklio grandinės testavimas
Kadangi tai yra labai paprastas projektas, bandymų rinkinys yra labai paprastas, kaip matote, aš prijungiau 4 šviesos diodus su rezistoriais, kurie veikia kaip apkrovos, nes jis prijungtas prie relės, galite lengvai prijungti bet kokią apkrovą iki 3A.
Kiti patobulinimai
Nors PCB yra paprastas, dar yra kur tobulėti, kaip matote iš apatinės faktinės PCB pusės, bandydamas prijungti keturis indikacinius šviesos diodus, aš prijungiau daug rezistorių, o PCB dydį taip pat galima sumažinti, jei tai tampa reikalavimu, Tikiuosi, kad jums patiko straipsnis ir sužinojote ką nors naudingo. Jei turite klausimų, galite juos palikti komentarų skiltyje žemiau arba naudoti mūsų forumus kitiems techniniams klausimams skelbti.