- Ano ang isang Capacitive Touch Sensor at Paano Ito Gumagana?
- Pagbuo ng isang Four-Way Capacitive Touch Sensor
- Mga Kagamitan na Kinakailangan para sa ESP32 Touch Controlled Circuit
- Kontrolin ang Circuit para sa aming Capacitive Touch Sensor
- Disenyo ng PCB para sa Capacitive Touch Sensor Circuit
- Arduino Code para sa ESP32 Batay sa Capacitive Touch Sensor
- Pagsubok sa ESP32 Batay sa Touch Sensor Circuit
- Karagdagang Mga Pagpapahusay
Sa maraming mga kaso, ang mga touch sensor ay ginagamit sa halip na mga push button. Ang kalamangan ay hindi namin kailangang magbigay ng puwersa upang pindutin ang isang pindutan, at maaari naming buhayin ang isang key nang hindi ito hinahawakan gamit ang mga touch sensor. Ang teknolohiyang touch sensing ay nagiging popular araw-araw. At sa loob ng huling dekada o higit pa, naging mahirap na isipin ang mundo nang walang mga electronics na sensitibo sa ugnayan. Ang parehong mga resistive at capacitive touch na pamamaraan ay maaaring gamitin upang makabuo ng isang touch sensor, at sa artikulong ito, tatalakayin namin ang isang krudo na paraan ng paggawa ng isang capacitive touch sensor na may ESP32, dati ay nakabuo din kami ng isang Capacitive touch button na may Raspberry pi.
Kahit na ang mga sensor ng touch na tukoy sa application ay maaaring maging isang kumplikado, ang pangunahing prinsipyo na pinagbabatayan ng teknolohiyang ito ay mananatiling pareho, kaya sa artikulong ito, magtutuon kami sa pagbuo ng aming capacitive touch sensor sa tulong ng aming paboritong ESP32 at isang piraso ng tanso- clad board.
Sa nakaraang tutorial, nagawa na namin ang Control Home Lights na may Touch gamit ang TTP223 Touch Sensor at Arduino UNO, Ngayon sa proyektong ito, nagtatayo kami ng isang sensor ng Touch para sa ESP32 ngunit ang pareho ay maaari ding magamit para sa Arduino. Gayundin, ginamit namin dati ang mga pamamaraan ng pag-input na batay sa ugnayan na gumagamit ng capacitive touch pad na may iba't ibang mga microcontroller tulad ng Touch Keypad Interfacing sa ATmega32 Microcontroller at Capacitive TouchPad na may Raspberry Pi, maaari mo ring suriin ang mga ito kung interesado.
Ano ang isang Capacitive Touch Sensor at Paano Ito Gumagana?
Ang mga capacitor ay may iba't ibang anyo. Ang pinaka-karaniwang minsan ay dumating sa anyo ng isang leaded package o isang ibabaw na mount packag e ngunit upang bumuo ng isang capacitance, kailangan namin ng mga conductor na pinaghihiwalay ng isang materyal na dielectric. Kaya, madaling lumikha ng isa. Ang isang mabuting halimbawa ay ang isa na pagbuo natin sa sumusunod na halimbawa.
Isinasaalang-alang ang nakaukit na PCB bilang kondaktibo na materyal, ang sticker ay kumikilos bilang isang materyal na dielectric, kaya't nananatili ang tanong, kung paano ang paghawak sa tanso na pad ay nagiging sanhi ng pagbabago ng capacitance sa isang paraan na maaaring makita ng touch-sensor controller? Isang daliri ng tao, syempre.
Sa gayon, may pangunahing dalawang kadahilanan: Una, isinasama ng isa ang mga dielectric na katangian ng aming daliri, ang pangalawa ay dahil sa mga mapag-uugatang katangian ng aming daliri. Gagamitin namin ang isang capacitive based touch. Kaya, ibabaling namin ang aming pagtuon patungo sa capacitive based touch sensor. Ngunit bago namin talakayin ang lahat ng ito, mahalagang tandaan na walang anumang konduction na nagaganap, at ang daliri ay insulated, dahil sa papel na ginamit sa sticker. Kaya, hindi maalis ng daliri ang capacitor.
Kumikilos sa Daliri bilang Dielectric:
Karaniwang kaalaman na ang isang kapasitor ay may isang pare-pareho na halaga na maaaring mapagtanto ng lugar ng dalawang nagsasagawa ng mga plato, ang distansya sa pagitan ng mga plato, at ito ay dielectric pare-pareho. Hindi namin mababago ang lugar ng capacitor sa pamamagitan lamang ng pagpindot dito ngunit maaari naming tiyakin na baguhin ang dielectric pare-pareho ng capacitor dahil ang isang daliri ng tao ay may iba't ibang pare-pareho na dielectric kaysa sa materyal na nagpapakita nito. Sa aming kaso, ito ay hangin, inililipat natin ang hangin sa aming mga daliri. Kung tinatanong mo kung paano? Ito ay sapagkat ang dielectric na pare-pareho ng hangin na 1006 sa temperatura sa antas ng dagat at ang dielectric na pare-pareho ng daliri ay mas mataas sa paligid ng 80 dahil ang isang daliri ng tao ay binubuo ng karamihan sa tubig. Kaya, ang pakikipag-ugnay ng daliri sa larangan ng elektrisidad ng capacitor ay nagdudulot ng pagtaas ng pare-pareho ng dielectric samakatuwid ay tumataas ang capacitance.
Ngayon na naintindihan natin ang punong-guro, magpatuloy tayo sa paggawa ng mga tunay na PCB.
Pagbuo ng isang Four-Way Capacitive Touch Sensor
Ang capacitive touch sensor na ginamit sa proyektong ito ay may apat na mga channel, at madaling gawin ito. Sa ibaba nabanggit namin ang detalyadong proseso upang makagawa ng isa.
Una, ginawa namin ang PCB para sa sensor sa tulong ng tool ng disenyo ng Eagle PCB, na kamukha ng imahe sa ibaba.
Sa tulong ng mga sukat at Photoshop, ginawa namin ang template at sa wakas ang sticker para sa sensor, na kamukha ng imahe sa ibaba,
Ngayon, habang tapos na kami sa sticker, nagpapatuloy kami sa paggawa ng aktwal na template ng clad board na gagamitin namin para sa paggawa ng aming PCB, na kamukha ng imahe sa ibaba,
Ngayon ay maaari naming mai-print ang file na ito at magpatuloy sa mga proseso ng paggawa ng isang homemade PCB. KUNG bago ka, maaari mong suriin ang artikulo kung paano bumuo ng PCB sa bahay. Maaari mo ring i-download ang kinakailangang mga file ng PDF at Gerber mula sa ibaba na link
- GERBER file para sa Four Channel Capacitive Touch Sensor
Kapag tapos na, ang aktwal na Etched PCB ay mukhang imahe sa ibaba.
Ngayon ay oras na upang mag-drill ng ilang mga butas, at kumokonekta kami ng ilang mga wires sa PCB. Upang maikonekta namin ito sa board ng ESP32. Kapag tapos na, mukhang ang imahe sa ibaba.
Tulad ng hindi namin inilagay sa pamamagitan ng sa PCB, nakuha ng solder ang buong lugar habang naghihinang, naayos namin ang aming pagkakamali sa pamamagitan ng paglalagay ng isang butas ng drill sa PCB, na maaari mong makita sa seksyon ng pag-download sa itaas. Sa wakas, oras na upang ilagay ang sticker at gawin itong pangwakas. Alin ang hitsura ng isang imahe tulad ng sa ibaba.
Tapos na kami sa Touch panel, oras na upang magpatuloy sa paggawa ng Control Circuit para sa touch panel.
Mga Kagamitan na Kinakailangan para sa ESP32 Touch Controlled Circuit
Ang mga sangkap na kinakailangan upang buuin ang seksyon ng controller gamit ang ESP32 ay ibinigay sa ibaba, dapat mong matagpuan ang karamihan sa mga ito sa lokal na tindahan ng libangan.
Inilista ko rin ang mga sangkap sa talahanayan sa ibaba na may uri at dami na kinakailangan, dahil nakikipag-interfaces kami ng isang apat na channel na touch sensor at pagkontrol sa apat na AC load, gagamit kami ng 4 na relay upang ilipat ang AC load at 4 transistors upang maitayo ang relay mga circuit ng driver.
Sl. Hindi |
Mga Bahagi |
Uri |
Dami |
1 |
Relay |
Lumipat |
4 |
2 |
BD139 |
Transistor |
4 |
3 |
Screw Terminal |
Screw Terminal 5mmx2 |
4 |
4 |
1N4007 |
Diode |
5 |
5 |
0.1uF |
Kapasitor |
1 |
6 |
100uF, 25V |
Kapasitor |
2 |
7 |
LM7805 |
Regulator ng Boltahe |
1 |
8 |
1K |
Resistor |
4 |
9 |
560R |
Resistor |
4 |
10 |
Amber LED |
LED |
4 |
11 |
Lalake Header |
Konektor |
4 |
12 |
Babae Header |
Konektor |
30 |
13 |
Pulang LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
Lupon ng ESP32 |
1 |
12 |
Clad Board |
Generic na 50x 50mm |
1 |
13 |
Jumper Wires |
Mga wire |
4 |
14 |
Mga Koneksyon sa Mga Wires |
Mga wire |
5 |
Kontrolin ang Circuit para sa aming Capacitive Touch Sensor
Ipinapakita ng imahe sa ibaba ang kumpletong diagram ng circuit para sa aming touch sensor na nakabatay sa ESP32.
Tulad ng nakikita mo, ito ay isang napaka-simpleng circuit na may pinakamaliit na mga sangkap na kinakailangan.
Dahil ito ay isang simpleng circuit ng touch sensor, maaari itong maging kapaki-pakinabang sa mga lugar kung saan mo nais makipag-ugnay sa isang aparato sa pamamagitan ng pag-ugnay, halimbawa, sa halip na gumamit ng isang tipikal na switch na naka-mount sa board, maaari mong i-on / i-off ang iyong mga appliances gamit ang pagpindot.
Sa eskematiko, ang isang DC barong jack ay ginagamit bilang isang input kung saan nagbibigay kami ng kinakailangang lakas na kinakailangan upang mapagana ang circuit, mula doon mayroon kaming aming 7805 Boltahe na regulator na nagko-convert ng hindi reguladong DC input sa isang pare-pareho na 5V DC kung saan nagbibigay kami ang lakas sa module na ESP32.
Susunod, sa eskematiko, mayroon kaming mga touch konektor sa pin 25, 26, 27, 28, kung saan ikokonekta namin ang touchpad.
Susunod, mayroon kaming aming mga relay na kung saan ay lumipat sa pamamagitan ng isang BD139 transistor, ang diode D2, D3, D4, D5 ay naroroon upang protektahan ang circuit mula sa anumang boltahe ng lumilipas na nabuo kapag ang mga relay na toggle, ang mga diode sa pagsasaayos na ito ay kilala bilang fly-back diode / freewheeling diode. Ang 560R resistors sa base ng bawat transistor ay ginagamit upang limitahan ang daloy ng kasalukuyang sa pamamagitan ng base.
Disenyo ng PCB para sa Capacitive Touch Sensor Circuit
Ang PCB para sa aming touch sensor circuit ay idinisenyo para sa isang solong panig na board. Ginamit namin ang Eagle upang idisenyo ang aking PCB, ngunit maaari mong gamitin ang anumang Disenyo ng software na iyong pinili. Ang imahe ng 2D ng aming disenyo ng board ay ipinapakita sa ibaba.
Ang isang sapat na diameter ng pagsubaybay ay ginamit upang gawin ang mga track ng kuryente, na ginagamit upang daloy ang kasalukuyang sa pamamagitan ng circuit board. Inilalagay namin ang terminal ng tornilyo sa tuktok sapagkat mas madaling ikonekta ang iyong pag-load sa ganoong paraan, at ang power konektor, na isang DC barong jack ay inilagay sa gilid, na nagbibigay din ng madaling pag-access. Ang kumpletong file ng Disenyo para sa Eagle kasama ang Gerber ay maaaring ma-download mula sa link sa ibaba.
- GERBER file para sa ESP32 Batay sa Touch Sensor Control Circuit
Ngayon na handa na ang aming Disenyo, oras na upang mag- ukit at maghinang ng board. Matapos ang proseso ng pag-ukit, pagbabarena, at paghihinang, ang board ay mukhang imahe na ipinakita sa ibaba,
Arduino Code para sa ESP32 Batay sa Capacitive Touch Sensor
Para sa proyektong ito, ipo-program namin ang ESP32 na may isang pasadyang code na ilalarawan namin sa ilang sandali. Ang code ay napaka-simple at madaling gamitin, Nagsisimula kami sa pamamagitan ng pagtukoy sa lahat ng kinakailangang mga pin, sa aming kaso, tinutukoy namin ang mga pin para sa aming mga touch sensor at relay.
#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 #dOR
Susunod, sa seksyon ng pag-set up, nagsisimula kami sa pamamagitan ng pagsisimula ng UART para sa pag-debug, susunod na ipinakilala namin ang isang pagkaantala ng 1S na nagbibigay sa amin ng kaunting oras para sa pagbubukas ng isang window ng Serial Monitor. Susunod, ginagamit namin ang pagpapaandar ng Arduinos pinMode upang gawin ang mga Relay pin bilang output, na nagmamarka sa pagtatapos ng seksyon ng Pag - setup () .
void setup () {Serial.begin (115200); pagkaantala (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }
Sinisimula namin ang aming seksyon ng loop na may isang pahayag kung , ang builtin function na touchRead (pin_no) ay ginagamit upang matukoy kung ang isang pin ay hinawakan o hindi. Ang function na touchRead (pin_no) ay nagbabalik ng mga saklaw ng halaga ng integer (0 - 100), mananatili ang halaga na malapit sa 100 sa lahat ng oras, ngunit kung hawakan namin ang napiling pin, ang halaga ay bumaba hanggang sa zero, at sa tulong ng nagbabagong halaga, matutukoy natin kung ang partikular na pin ay hinawakan ng isang daliri o hindi.
Sa pahayag na kung , sinusuri namin ang anumang pagbabago sa mga halaga ng integer, at kung ang halaga ay umabot sa ibaba 28, makasisiguro kaming nakilala namin ang isang ugnayan. Sa sandaling ang kung pahayag nagiging totoo, kami ay maghintay para sa 50ms at suriin ang mga parameter muli, ito ay makakatulong sa amin upang matukoy kung ang sensor halaga ay trigger nanganghuhula ng kasinungalingan, matapos iyon, kami ay saliwain ang katayuan ng mga pin pamamagitan ng paggamit ng digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) na paraan, at ang natitirang code ay mananatiling pareho.
kung (touchRead (TOUCH_SENSOR_PIN_1) <28) {kung (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Ang isang sensor ay hinipo"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} iba pa kung (touchRead (TOUCH_SENSOR_PIN_2) <28) {kung (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println ("Ang Dalawang Sensor ay hinawakan"); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} iba pa kung (touchRead (TOUCH_SENSOR_PIN_3) <28) {kung (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("Sensor Tatlo ang hinawakan"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} iba pa kung (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println ("Sensor Apat ang hinawakan"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Sa wakas, tinatapos namin ang aming code sa isa pang 200 ms ng pagkaantala sa pag-block.
Pagsubok sa ESP32 Batay sa Touch Sensor Circuit
Dahil ito ay isang napaka-simpleng proyekto, ang hanay ng pagsubok ay napaka-simple, tulad ng nakikita mo, nakakonekta ako sa 4 na mga LED na may mga resistor na kumikilos bilang mga pag-load, dahil konektado ito sa relay, madali mong makakonekta ang anumang pag-load hanggang sa 3Amps.
Karagdagang Mga Pagpapahusay
Kahit na ang PCB ay simple, may puwang pa rin para sa mga pagpapabuti tulad ng nakikita mo mula sa ibabang bahagi ng aktwal na PCB, nakakonekta ako sa maraming mga resistor sa pagtatangka na ikonekta ang apat na indication LEDs, at ang laki ng PCB ay maaari ring mabawasan kung iyon nagiging kinakailangan, Inaasahan kong nasiyahan ka sa artikulo at natutunan ang isang bagay na kapaki-pakinabang. Kung mayroon kang anumang mga katanungan, maaari mong iwanan ang mga ito sa seksyon ng komento sa ibaba o gamitin ang aming mga forum upang mag-post ng iba pang mga teknikal na katanungan.