Arduino – Obsługa klawiatury membranowej 4×4

Tym razem opisze podstawowy program AVR / Arduino do obsługi klawiatury membranowej. Klawiatura która dziś używam posiada cztery wiersze i cztery kolumny, zawiera dzięki temu cyfry od 0 do 9 oraz litery: A, B, C, D jak i znaki *,#.

Potrzebne elementy:

Arduino Nano lub odpowiednik,
–biblioteka Keypad
– klawiatura membranowa 4×4, przykład poniżej.

klawiatura membranowa 4 na 4

Kod programu:

#include „Keypad.h”
const byte ROWS = 4; //liczba wierszy
const byte COLS = 4; //liczba kolumn
//uklad klawiszy
char keys[ROWS][COLS] = {
{‚1′,’2′,’3’ , ‚A’},
{‚4′,’5′,’6’ , ‚B’},
{‚7′,’8′,’9’ , ‚C’},
{‚*’,’0′,’#’ , ‚D’}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //Piny, do których podłączamy wyprowadzenia od rzędów
byte colPins[COLS] = {6, 7, 8 , 9}; //Piny, do których podłączamy wyprowadzenia kolumn

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
Serial.begin(9600);
}

void loop(){
char key = keypad.getKey();

if (key){
Serial.print(key);
Serial.print(„, „);
}

if(key == ‚1’)
{
Serial.println(„Wpisano 1”);
}
if(key == ‚2’)
{
Serial.println(„Wpisano 2”);
}
if(key == ‚3’)
{
Serial.println(„Wpisano 3”);
}
if(key == ‚4’)
{
Serial.println(„Wpisano 4”);
}
if(key == ‚5’)
{
Serial.println(„Wpisano 5”);
}
if(key == ‚6’)
{
Serial.println(„Wpisano 6”);
}
if(key == ‚7’)
{
Serial.println(„Wpisano 7”);
}
if(key == ‚8’)
{
Serial.println(„Wpisano 8”);
}
if(key == ‚9’)
{
Serial.println(„Wpisano 9”);
}
if(key == ‚0’)
{
Serial.println(„Wpisano 0”);
}
if(key == ‚*’)
{
Serial.println(„Wpisano *”);
}
if(key == ‚#’)
{
Serial.println(„Wpisano #”);
}
if(key == ‚A’)
{
Serial.println(„Wpisano A”);
}
if(key == ‚B’)
{
Serial.println(„Wpisano B”);
}
if(key == ‚C’)
{
Serial.println(„Wpisano C”);
}
if(key == ‚D’)
{
Serial.println(„Wpisano D”);
}
}

Złożony układ:

klawiatura membranowa arduino

Post Author: swistak

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Potwierdz, że nie jesteś botem. *