Nastaviteľné dotykové tlačidlo

Nastaviteľné dotykové tlačidlo 
Dumitru Autor  Dumitru
  414 zobrazení
2
 0
Zaujímavé...
 Fórum

Dotykové tlačidlá sú čoraz populárnejšie a ich úlohou je plnohodnotná náhrada za mechanické tlačidlá. Vyžívajú sa skoro v každom elektronickom zariadení a svoje uplatnenie si pomaly nachádzajú aj vo svete rádioamatérov. Jednak z pohľadu dizajnu, údržby pripadne vodotesnosti. Na trhu je možne nájsť niekoľko druhov tlačidiel a zvyčajne ide o kapacitne dotykové tlačidlá, avšak bežne dostupné modely majú niektoré nevyhody:

  • sťažená montáž, 
  • chýbajúce podsvietenie, 
  • obťiažne pripojenie, 
  • chýbajúce nastavenie citlivosti na dotyk.

No a to ma inšpirovalo k vytvoreniu vlastného tlačidla. Jedná sa o tlačidlo s nastaviteľným podsvietením, komunikujúce cez I2C ako slave zariadenie. Môže byť s minimálnym úsilím integrovane do rôznych projektov ako náhrada za klasické mechanické tlačidlo, kde môže ovládať osvetlenie, ventilátory, relé pripadne iné spotrebiče ... jednoduchým dotykom.

Technické parametre

  • Napájacie napätie a prúd: +5VDC max. 60mA
  • I2C komunikácia: rýchlosť max. 100Khz, dĺžka zbernice max.1 meter
  • Maximálny prúd SCL/SDA: 20mA 
  • Maximálny prúd INT1/2: 20mA
  • Maximálna hrúbka panelu : 8mm (testovaný materiál sklo, plexisklo)
  • Svietivosť: Červena – max. 550mcd, Zelena – max 1100mcd, Modra – max 200mcd
  • Rozmery: 22mmx18mm

Typy dotykových tlačidiel

Existujú niekoľko typov dotykových tlačidiel a medzi najrozšírenejšie patria  :

Rezistívne dotykové tlačidlá

Ako už z názvu vyplýva, pri dotyku sa zmení odpor tlačidla, čím sa zaznamená stlačenie. Princíp je znázornený na obr. č. 1 a keďže je pomerne jednoduchý, nebudeme ho ďalej podrobne rozpisovať.

DUSH Co. Ltd.

Obr.č.1 Rezistívny dotykový display [1]

Piezoelektrické dotykové tlačidlá

Piezoelektrické dotykové tlačidlá využívajú piezoelektrický jav. Ide o snímače, ktoré pri mechanickom pôsobení (tlaku) generujú elektrický náboj, ktorý je následne vyhodnotený ako signál stlačenia.

Obr.č.2 Piezoelektrické dotykové tlačidlo

Pri dotyku na tlačidlo pôsobí používateľ mechanickým tlakom, ktorým sa vygeneruje elektrický náboj, ktorý je následne zmeraný elektronikou, čím sa zaznamená stlačenie. Výhodou týchto tlačidiel je možnosť ich umiestnenia pod rôzne materiály, vrátane kovových panelov, čo zvyšuje ich odolnosť a životnosť.

Kapacitne dotykové tlačidlá

Daný typ tlačidla je použitý aj v tomto projekte. Tlačidlo sa skladá z dvoch elektród medzi ktoré je vložený dielektricky materiál (plast, sklo ... ) čim sa vytvorí jednoduchý kondenzátor. Prvá elektróda je väčšinou tvorená meďou na samotnom plošnom spoji a druha elektróda je samotný prst. Senzor reaguje na zmenu kapacity, ktorá nastáva pri dotyku prsta s dielektrickým materiálom viď obrázok nižšie 

Azoteq

Obr.č.3 Kapacitné dotykové tlačidlo [2]

Meranie zmení kapacity tlačidla prebieha nasledovne :

Ako prvé je potrebne zmerať kapacitu samotného tlačidla keď nie je priložení prst, daná kapacita sa skladá z parazitnej kapacity Cp, kapacity senzora Cs a kapacitou medzi samotnou DPS a uzemnením Cg.

Microchip

Obr.č.4 Kapacita tlačidla v nestlačenom stave [3]

Kapacita tlačidla sa zmeria tak že kondenzátor Cx (parazitné kapacity zanedbáme) sa nechá nabiť konštantným prúdom I počas niektorého časového intervalu t ktorý je konštantný a následne sa zmeria (pomocou napríklad ADC prevodníka) hodnota napätia na ktorú sa kondenzátor Cx nabil. Prípadne je možne merať časový interval za ktorý sa kondenzátor nabije na zvolenú hodnotu napätia, ktorá bude v danom prípadne konštantná. Kapacita sa meria pri zopnutí senzora (kalibrácia) a je použitá ako referenčná hodnota kedy tlačidlo nie je stlačene. Keďže daná kapacita sa môže sa v čase meniť vplyvom vonkajších faktorov, tlačidlo si zvyčajne danú kapacitu periodicky prekalibruje.
Pri dotyku sa kapacita tlačidla zvýši o kapacitu prsta Ct ktorá je zvyčajne medzi 1pf až 10pf, čo nám spôsobí pri meraní pokles napätia na ADC prevodníku, prípadne predĺženie časového intervalu za ktorý sa kondenzátor nabije.

Microchip

Obr.č.5 Kapacita tlačidla v stlačenom stave [3]

Kapacita Ct sa vypočíta pomocou vzťahu :

C t = ε0 εr A d

Kde : 

  • ԑ0 – je permitivita vákua 8.85*10^(-12) F/m 
  • ԑr – je relatívna permitivita a je závislá od materiálu viď tabuľka nižšie 
  • A - je plocha dotyku 20 – 110 mm2, zvyčajne sa vôli priemer tlačidla vzhľadom k veľkosti prsta medzi 5mm až 12mm 
  • d – je hrúbka dielektrika, záleží od materiálu ale pre spoľahlivú detekciu stlačenia je odporúčane nepresahovať hodnotu 10mm.
Materiál Relatívna permitivita εr
Vzduch 1,00
Sklo 7,0 – 10,0
Plexisklo 2,6 – 3,5
FR-4 4,0 – 5,0
Nylon 3,0 – 5,0
Papier 3,80
Voda 80,00

Tab.č.1 Relatívna permitivita rôznych materiálov

Popis činnosti

Popis tlačidla

Ako už bolo spomenuté v tomto projekte je použite kapacitne dotykové tlačidlo. Schéma zapojenia je zobrazená na obr.č.12. Srdcom celého zariadenia je 32bitovy mikrokontrolér CH32X035F8U6 od firmy WCH ktorý zabezpečuje snímanie a vyhodnocovanie stavu tlačidla, komunikáciu cez I2C, riadenie podsvietenia tlačidla a nastavenie jeho citlivosti. Pre snímanie dotyku bol použitý špecializovaný obvod SB8223 [5] od firmy SHOUDING, ktorý je pinovo kompatibilný s veľmi rozšírením čipom TTP223 [6], ale má oveľa vyššiu citlivosť. 

Návrh mal kompenzovať niektoré nedostatky a tu sú hlavne vyhody:

  1. Jednoduchá montáž tlačidiel, čo umožňuje 6pinovy vstupný konektor typu micromatch ktorý je možne jednoducho nakrimpovať na plochy kábel s roztečou žil 1.27mm. 
  2. Vďaka zbernici I2C je možne zapájať tlačidla paralelne za sebou (reťazovo) na ten istý kábel, teoreticky maximum takto zapojených tlačidiel je 127ks. Prakticky sme obmedzený prúdovo nakoľko plochy kábel zvládne okolo 1A prúdu, teda pri plnom jase a bielej farbe je možne mať takto zapojene 16 tlačidiel. 
  3. Pre dosiahnutie čo najvyššej citlivosti na dotyk je nutne zabezpečiť čo najlepší kontakt medzi snímacou elektródou tlačidla a dielektrickým materiálom (panelom zariadenia). S tohto dôvodu bola použitá pružinka viď obr.č.6 ktorá kompenzuje niektoré nerovnosti pri montáži a umožňuje tlačidlo namontovať v niektorej vzdialenosti od samotného panelu.
  4. Zmena citlivosti tlačidla umožni flexibilne prispôsobovať sa rôznym hrúbkam panelu bez nutnosti zásahu do hardvéru. Citlivosť je možne meniť príkazmi cez I2C a ma 4 úrovne. 
  5. O podsvietenie tlačidla sa stará inteligentná led dióda WS2812B ktorej je možne nastaviť ľubovoľnú farbu a intenzitu. Farba a intenzita sa nastavuje zvlášť pre stlačene tlačidlo a nestlačene tlačidlo čo umožňuje pri stlačení mať spätnú väzbu či tlačidlo reaguje na dotyk.

Obr.č.6 Pružinka

Popis vstupného konektora

Schému zapojenia vstupného konektora je možne vidieť na obr.č.7

Dumitru Novitchi

Obr.č.7 Schéma konektora

  1. INT1 – Výstup s otvoreným kolektorom, aktivuje sa pri zatlačení tlačidla a uvoľni sa ak tlačidlo uvoľníme.
  2. SCL – I2C hodinový signál, výstup s otvoreným kolektorom 
  3. GND - Zem
  4. SDA – I2C dátová linka , vstup/výstup s otvoreným kolektorom
  5. +5VDC – Napájanie, chránene 500mA poistkou 
  6. INT2 – výstup s otvoreným kolektorom, aktivuje sa pri stlačení tlačidla, uvoľná sa až po prečítaní stavu tlačidla cez I2C zbernicu. 

I2C komunikácia

I2C komunikácia prebieha na rýchlosti do 100Khz a umožňuje snímať stav tlačidla (stlačené/nestlačené) tak aj samotné tlačidlo konfigurovať. Po naprogramovaní tlačidlo má I2C adresu 0x13, ktorú je možné zmeniť pomocou príkazu 0xC4. I2C komunikačný protokol ma jednoduchý formát definovaný nasledovne: Ako prvé do tlačidla zašleme príkaz počkáme 5ms a následne prečítame odpoveď.

a) Ak chceme do tlačidla zapisovať musíme poslať Start bit + Address + Write bit následne pošleme 8bitovy príkaz ktorý nám definuje čo konkrétne budeme zapisovať nakoniec zašleme Data(n) (kde n – je počet 8bitovych dát (byte) ktorý je závislí od príkazu viď Tab.2) a ukončime prenos Stop bitom viď obrázok č.8.

Dumitru Novitchi

Obr.č.8 Ukážka zápisu 

b) Ak chceme s tlačidla čítať musíme poslať Start bit + Address + Read bit a následne prečítať Data(n) (kde n – je počet 8bitovych dát (byte)  ktorý je závislí od príkazu viď Tab.2), prenos ukončime Stop bitom viď obrázok č.9. 

Dumitru Novitchi

Obr.č.9 Ukážka čítania

Medzi zápisom bod a) a čítaním bod b) je nutné počkať minimálne 5ms čo ke čas potrebný pre vykonanie zápisu dát do flash pamäte mikrokontroléra. To neplatí pre príkaz na čítanie stavu tlačidla, nakoľko tam nie je potrebné čakať a dáta je možne čítať ihneď po odoslaní príkazu. Taktiež po odoslaní príkazu o zmene citlivosti (čakáme 5ms), a po prečítaní odpovede, ďalší príkaz je možne zaslať až po 1100ms čo je čas potrebný pre kalibráciu SB8223. 

Command Value Data(n) Command Name Receive String
  R Value G Value B Value Intensity Value "OK\r" "UNK\r" "ERR\r" "OVF\r"
0xC1 0-255 0-255 0-255 0-100 SET TOUCH COLOR "OK\r" "UNK\r" "ERR\r" "OVF\r"
0xC2 0-255 0-255 0-255 0-100 SET NOTOUCH COLOR
Command Value Sensitivity Level Value not send Command Name Receive String
0xC3 1-4 not send Sensitivity "OK\r" "UNK\r" "ERR\r" "OVF\r"
Command Value I2C Address not send Command Name Receive String
0xC4 1-127 not send Change I2C Address "OK\r" "UNK\r" "ERR\r" "OVF\r"
Command Value INT12 ENABLE Value not send Command Name Receive String
0xC5 1 - Disable
2 - Enable
not send Enable Interrupt Pin "OK\r" "UNK\r" "ERR\r" "OVF\r"
Command Value Data(n) Command Name Receive Value Receive String
0xC6 not send BTN Status 0xAA - press
0xBB - no press
"UNK\r" "ERR\r" "OVF\r"

Tab. č.2 Zoznam I2C príkazov

Čítanie stavu tlačidla

Stav tlačidla je možné priebežne monitorovať cez zbernicu I2C pomocou príkazu 0xC6. Ak zariadenie vráti hodnotu 0xAA, znamená to, že tlačidlo je stlačené; v prípade hodnoty 0xBB je tlačidlo uvoľnené. Aby sa predišlo neustálemu dotazovaniu (pollingu) cez zbernicu I2C, ktoré by mohlo zbytočne zaťažovať komunikáciu, tlačidlo disponuje výstupmi INT1 a INT2, ktoré slúžia ako prerušenia:

  • INT1 – aktívny počas celej doby stlačenia tlačidla; po uvoľnení tlačidla sa okamžite vráti do neaktívneho stavu, čo umožňuje určiť dĺžku stlačenia.
  • INT2 – aktívny iba pri vzniku stlačenia; po vykonaní príkazu 0xC6 sa automaticky uvoľní, čím umožňuje identifikovať konkrétne tlačidlá, ktoré vyvolali prerušenie.

Pin INT1 je možné použiť aj samostatne ako jednoduchý vstup pre detekciu stlačenia, bez potreby použitia zbernice I2C. Výstupy INT1 a INT2 sú po inicializácii aktívne, avšak v prípade, že nie sú potrebné, je možné ich deaktivovať príkazom 0xC5.

Dumitru Novitchi

Obr.č.10 Čítanie stavu tlačidla

Nastavenie podsvietenia

Príkazmi 0xC1 a 0xC2 je možne nastaviť farbu podsvietenia. Údaj o farbe je nutné zaslať vo formáte RGBI kde RGB sú zložky farieb 0 - 255 a I je intenzita 0 – 100% , kde pri 50% je intenzita farby pravé taká aká je nastavená zložkami RGB, nad 50% sa intenzita zvyšuje, pod 50% sa intenzita znižuje. Ak bol príkaz odoslaný správne odpoveďou bude „OK\r“ kde ‘\r’ – je ukončovací znak.

Dumitru Novitchi

Obr.č.11 Nastavenie podsvietenia

Ostatné nastavenia sa realizujú rovnakým spôsobom. Zoznam dostupných príkazov a ich odpovedí je uvedený v tabuľke č. 2. Všetky nastavenia sa ukladajú do flash pamäte mikrokontroléra, takže ich nie je potrebné vykonávať opakovane po každom zapnutí zariadenia.

Popis chýb

  • „UNK\r“ – Unknown: Neznámy príkaz, zariadenie nerozpoznalo odoslaný príkaz.
  • „ERR\r“ – Error: Chybná hodnota, odoslané dáta sú mimo povoleného rozsahu.
  • „OVF\r“ – Overflow: Prekročenie kapacity, bolo odoslaných viac dát, než je tlačidlo schopné prijať.
  • „WAI\r“ – Wait: Aktuálne odoslaný príkaz bol ignorovaný, pretože predchádzajúci príkaz ešte nebol spracovaný.

Schéma zapojenia

Obr.č.12 Schéma tlačidla

Zoznam komponentov

Reference Value Footprint Qty
B1 Spring F10-12-0.5-1.3UU 1
C1, C3, C6 10u Capacitor_SMD:C_0603 3
C2 100n Capacitor_SMD:C_0603 1
C4 5p Capacitor_SMD:C_0603 1
C5 10p Capacitor_SMD:C_0603 1
D1 WS2812B LED_SMD:LED_5.0x5.0mm 1
F1 500mA Resistor_SMD:R_0603 1
J1 I2C Connector:TE Connectivity 215079-6 1
JP1, JP2 J1 Jumper:J_0402 2
R1, R2, R3, R4 4k7 Resistor_SMD:R_0603 4
R5-R7 1k Resistor_SMD:R_0603 3
R8 330 Resistor_SMD:R_0402 1
U1 CH32X035 Package_QFN:QFN-20 1
U2 SD8223B Package_SOT:SOT-23-6 1

Tab.č.3 Zoznam komponentov

Realizácia

Dumitru Novitchi

Obr.č.13 Zapojenie tlačidiel

Dumitru Novitchi

Obr.č.14 Osadená PCB pohľad zospodu

Dumitru Novitchi

Obr.č.15 Osadená PCB pohľad zvrchu

Záver

Tlačidlo bolo navrhnuté tak, aby bolo čo najkompaktnejšie, univerzálne a jednoducho nastaviteľné pre rôzne hrúbky a materiály panelov. Ako vyplýva zo schémy na obr. č. 12, predpokladá sa, že zbernica I2C sa využije primárne iba na konfiguráciu zariadenia, pričom následná prevádzka tlačidla je nezávislá.

V prípade zapojenia viacerých tlačidiel na spoločnú zbernicu I2C je potrebné dbať na celkovú impedanciu zbernice (> 1 kΩ). Odporúčané je osadiť pull-up rezistory R1, R2, R3 a R4 buď len na strane Master zariadenia, alebo iba na prvom tlačidle. Na ostatných tlačidlách je možné namiesto týchto rezistorov osadiť ochranné diódy typu 1N4148 v puzdre Micromelf, ako je znázornené na obr. č. 14. Na programovanie mikrokontroléra CH32x035 slúžia piny 1 – DIO (INT1) a 2 – DCK (SCL) konektora Micromatch. Pre tento účel je potrebné použiť programátor WCH-LinkE. Na záver dokumentácie sú uvedené obrázky osadeného tlačidla, schéma zapojenia a zoznam použitých komponentov.

Zdroje

Na stiahnutie

Súbory Gerber

Máte aj vy zaujímavú konštrukciu, alebo článok?

Máte aj vy zaujímavú konštrukciu, alebo článok a chceli by ste sa o to podeliť s viac ako 360.000 čitateľmi? Tak neváhajte a dajte nám vedieť, radi ju uverejníme a to vrátane obrazových a video príloh. Rovnako uvítame aj autorov teoretických článkov, či autorov zaujímavých videí z oblasti elektroniky / elektrotechniky.

Kontaktujte nás!

ElektroLab potrebuje aj vašu pomoc / ElektroLab also needs your help
Podpor nás!   Support us!


Páčil sa Vám článok? Pridajte k nemu hodnotenie, alebo podporte jeho autora.
 

       

Komentáre k článku



Komentár môžete adresovať buď diskutujúcemu priamo pomocou tlačidla „Odpovedať“, alebo ho môžete adresovať všeobecne do poľa nižšie.

Zatiaľ nebol pridaný žiadny komentár k článku. Pridáte prvý? Berte prosím na vedomie, že za obsah komentára je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.
Pre komentovanie sa musíte prihlásiť.

Vaša reklama na tomto mieste



Vyhľadajte niečo na našom blogu

Máte záujem o reklamu?

PCBWay Promo

Máte záujem o reklamu?

PCBWay Promo

Máte záujem o reklamu?

PCBWay Promo

🎨 Rezistor
Pásiky: 4
Výsledok: 0.00 Ω ±1%
🔗 Zdieľať widget

💡 Vedeli ste, že…


Webwiki Button