Membránová klávesnice se často využívá pro průmyslové aplikace, kdy je zapotřebí připevnit ovládací prvek bez vrtání. Její velkou výhodou je také její tenký profil. Tato vybraná membránová klávesnice 1x4 obsahuje celkem 4 tlačítka a připojuje se pomocí 5 pinů, kdy pátý pin navíc se připojuje na zem. Ze schématu na obrázku níže vyplývá, že každé tlačítko má vyvedený jeden kontakt ven a zbylý kontakt u všech tlačítek je spojen v jeden vodič.

Membránová klávesnice 1x4

Pro připojení k Arduino desce tedy stačí první kontakt (na konektoru klávesnice je napařený na samostatné vrstvě krycího plastu) připojit na GND a zbylé kontakty tlačítek připojit na zvolené piny, v příkladu níže jsou to piny 2-5.

Schéma zapojení membránové klávesnice

Ukázkový kód pro zapojení a vyzkoušení tlačítek obsahuje na prvním místě inicializaci, kdy zapíšeme čísla pinů tlačítek do číselného pole nazvaného „tlacitka“. Poté si vytvoříme proměnnou „stisk“ pro ukládání stavu tlačítka v hlavní smyčce. Následuje podprogram setup, kde si nejprve nastavíme komunikaci přes sériovou linku s rychlostí 9600 baud a nastavíme si pole tlačítek jako vstupní s připojeným pull-up odporem, který spojí tlačítka přes odpor s napájecím napětím. Jako další je popsána loop smyčka, ve které si vždy načteme stav tlačítka do proměnné „stisk“ a pokud tento stav bude LOW, tedy spojeno se zemí, vytiskneme na sériovou linku zprávu o číslu tlačítka „x“ a počkáme 0,5 s. Pokud vynecháme příkaz „delay“, bude se nám i při krátkém stisku vypisovat několikrát po sobě informace o stisknutí na sériovou linku.

// Membránová klávesnice 1x4

// pole s piny připojených tlačítek
const int tlacitka[] = {3,2,5,4};
// proměnná stavu tlačítka
int stisk = 0;

void setup() {
  // komunikace přes sériovou linku rychlostí 9600 baud
  Serial.begin(9600);  
  // inicializace pole tlačítek
  for(int x=0; x<4; x++)
  {
    // zapojení tlačítek jako vstup s pull-up odporem
    pinMode(tlacitka[x], INPUT_PULLUP);
  }  
}

void loop(){
  // čtení stavu jednotlivých tlačítek ve smyčce
  for(int x=0; x<4; x++)
  {
    //načtení stavu tlačítka a uložení do proměnné stisk
    stisk = digitalRead(tlacitka[x]);

    // pokud je tlačítko stisknuto
    // vykonej následující
    if (stisk == LOW) {    
      // vytiskni pres sériovou linku číslo tlačítka a zprávu
      Serial.print(x);
      Serial.println(" stisknuto");
      // vyčkej 500 ms kvůli zbytečnému množství tisknutých znaků
      delay(500);
    }
  }
}

Po nahrání programu do Arduino desky si můžeme otevřít Sériový monitor a otestovat jednotlivá tlačítka. Určitě jste si povšimli v programu nepravidelné posloupnosti tlačítek 3,2,5,4, která byla zvolena pro správné pořadí při tisknutí na sériovou linku. Pokud totiž odlepíte krycí samolepku membránové klávesnice, zjistíte, že kontakty jsou vyvedeny na konektor právě takto nepravidelně.

Seznam použitých komponent:

http://arduino-shop.cz/arduino/1006-arduino-klavesnice-membranova-1x4-1427823380.html

http://arduino-shop.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

http://arduino-shop.cz/arduino-kabelaz-propoje-rozsireni/1063-arduino-vodice-samec-samec-40-kusu.html

FB gp tw

Další podobné články