Kapacitní Dotykový Spínač | Tlačítko TTP223

Dotykové tlačítko je vstupní modul pro Arduino, který slouží jako ovládací prvek. Tento modul obsahuje řídící obvod TTP223, který zpracovává informace z dotykové plochy a převádí je na svůj výstup ve formě digitální informace sepnuto/rozepnuto. Jeho výhodou je možnost nastavit různé chování pomocí dvou propojek na zadní straně modulu. Propojka A označuje typ aktivní hrany, kdy při rozpojeném stavu je aktivní log 1 a po spojení propojky bude aktivní log 0. Propojka B označuje typ výstupního signálu, kdy při rozpojeném stavu je výstup aktivní po celou dobu „stisknutí“ tlačítka, zatímco při spojené propojce se na výstupu objeví vždy pouze krátký impulz při každém „stisku“ tlačítka. Rozměry modulu jsou 15 x 11 mm. Napájecí napětí lze připojit v rozmezí 2,5 až 5,5 V a proudový odběr se pohybuje mezi 1,5 až 3 uA. Po 10 sekundách neaktivity totiž modul přechází do stavu nízkého odběru a zde se odběr dostane ke zmíněným 1,5 uA.

Pro úspěšné propojení dotykového tlačítka s Arduino deskou propojíme celkem 3 vodiče. Připojíme VCC na 5V Arduina, I/O na pin D2 a GND na zem Arduina. Pro digitální vstup je nutné vybrat pin, který slouží jako přerušovací. Seznam těchto pinů pro jednotlivé desky si můžete prohlédnout zde.

Ukázkový kód obsahuje na svém začátku nastavení čísel propojovacích pinů a vytvoření proměnné pro uložení stavu tlačítka. V podprogramu setup provedeme inicializaci použitých pinů a poté nastavíme přerušení na propojovací pin tlačítka, přičemž detekce je nastavena na náběžnou hranu a při přerušení je zavolán program prerus. Nekonečná smyčka loop v tomto případě obsahuje detekci stavové proměnné, kdy při její aktivaci rozsvítíme LED diodu po dobu půl sekundy a poté resetujeme stavovou proměnnou pro novou detekci. Zmíněný podprogram prerus pak obsahuje pouze nastavení stavové proměnné do aktivního stavu. Tímto programem jsem chtěl ukázat jak funkci přerušení na Arduino desce, tak i možnost použití detekce stisku jako impulzu bez nutnosti pájení na modulu s tlačítkem.

// Arduino dotykové tlačítko

// nastavení čísel propojovacích pinů
#define pinTlacitko 2
#define pinLED 13
// proměnná pro uložení stavu tlačítka
int stavTlacitka = 0;

void setup() {
  // inicializace použitých pinů
  pinMode(pinLED, OUTPUT);
  pinMode(pinTlacitko, INPUT);
  // nastavení přerušení na vstupní pin,
  // při náběžné hraně (log0->log1) se vykoná program prerus 
  attachInterrupt(digitalPinToInterrupt(pinTlacitko), prerus, RISING);
}

void loop() {
  // pokud je stav tlačítka v logické jedničce,
  // rozsvítíme LED diodu po dobu 500ms
  if (stavTlacitka == HIGH) {
    // turn LED on:
    digitalWrite(pinLED, HIGH);
    delay(500);
    digitalWrite(pinLED, LOW);
    stavTlacitka = LOW;
  } 
}
void prerus() {
  // pokud je aktivován digitální vstup,
  // nastav pokyn pro zapnutí LED diody
  stavTlacitka = HIGH;
}

Po nahrání ukázkového kódu do Arduino desky s připojeným dotykovým tlačítkem můžeme pozorovat blikání LED diody po "stisku" tlačítka.

Dotykové tlačítko je jednoduchý modul, s kterým lze přidat Arduino desce ovládací. Velkou výhodou dotykových tlačítek je dle mého názoru hlavně dlouhá životnost díky absenci mechanických prvků, které u normálních tlačítek nejvíce trpí. Toto tlačítko lze využít v různých projektech jako ovládací prvek, u kterého je žádoucí ovládat zařízení potichu bez cvakání tlačítka či vytvořit hermeticky uzavřené zařízení. Toto tlačítko totiž dokáže snímat lidský dotek i přes tenčí objekty jako jsou například plast či dřevo.

 

Seznam použitých komponent:

https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

https://dratek.cz/arduino/1402-ttp223-kapacitni-dotykovy-spinac-tlacitko-self-lock-modul-pro-arduino-1474446668.html

Další podobné články