Membránová klávesnice 4x4

Membránová klávesnice 4x4 je vhodná jako ovládací panel pro různé zabezpečovací systémy, kalkulačky či měřící zařízení. Její velkou výhodou je její tenký profil a jednoduché upevnění pomocí oboustranné lepicí pásky, která je již od výroby nalepena na spodku membránové klávesnice.

Pro propojení klávesnice s Arduino deskou slouží 8 pinový konektor. Všechny piny zapojíme do Arduino desky nejlépe do po sobě jdoucích pinů, protože první čtyři piny jsou propojeny s řádky a další čtyři piny se sloupci matice klávesnice 4x4. Já jsem v tomto případě zvolil digitální piny 5-12.

Pro zjednodušení práce s touto membránovou klávesnicí 4x4 jsem využil knihovnu Keypad, návod na práci s knihovnami je zde. Ukázkový kód na začátku obsahuje připojení knihovny Keypad a dále vytvoření proměnných s počtem řádků a sloupců. Poté vytvoříme pole se znaky, které máme na své klávesnici a následně nastavíme čísla pinů do proměnných pinyRadku a pinySloupcu. Jako další vytvoříme instanci klavesnice z knihovny Keypad a v podprogramu setup nastavíme komunikaci po Sériové lince, abychom mohli pohodlně číst výsledky. V nekonečné smyčce loop pak vždy načteme do proměnné klávesa hodnotu stisknuté klávesy a následně pomocí if zkontrolujeme, jestli byla stisknuta nějaká klávesa. V případě, že byla stisknuta klávesa, vypíšeme na sériovou linku její název.

// Membránová klávesnice 4x4

// připojení knihovny
#include <Keypad.h>

// vytvoření proměnných údávajících
// počet řádků a sloupců klávesnice
const byte radky = 4;
const byte sloupce = 4;
// vytvoření pole s rozmístěním kláves
char keys[radky][sloupce] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
// nastavení čísel pinů pro spojení s klávesnicí
byte pinyRadku[radky] = {12, 11, 10, 9};
byte pinySloupcu[sloupce] = {8, 7, 6, 5};

// vytvoření instance klavesnice z knihovny Keypad
Keypad klavesnice = Keypad( makeKeymap(keys), pinyRadku, pinySloupcu, radky, sloupce); 

void setup() {
  // komunikace přes sériovou linku rychlostí 9600 baud
  Serial.begin(9600);
}
  
void loop() {
  // načtení hodnoty stisknuté klávesy do proměnné
  char klavesa = klavesnice.getKey();
  // kontrola obsahu proměnné se stisknutou klávesou
  // pokud bylo cokoli stisknuto, vytiskneme klávesu
  // po Sériové lince
  if (klavesa){
    Serial.print("Stisknuta klavesa: ");
    Serial.println(klavesa);
  }
}

Po nahrání programu do Arduino desky dostaneme například tento výpis:

Stisknuta klavesa: 1
Stisknuta klavesa: 5
Stisknuta klavesa: 9
Stisknuta klavesa: D

Membránová klávesnice 4x4 je v kombinaci s knihovnou Keypad velmi jednoduše použitelná pro každý projekt, kde potřebujeme nějakým způsobem nastavovat číselné hodnoty a obecně komunikovat s dalšími komponentami.

 

Seznam použitých komponent:

http://dratek.cz/arduino-vstupni-periferie/824-arduino-klavesnice-membranova-4x4.html

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

http://dratek.cz/arduino-kabelaz-propoje-rozsireni/827-arduino-vodice-samec-samec-65-kusu.html

Další podobné články