11
Oca
2020

Arduino ile keypad kullanımı

Keypad; Türkçe’ de tuş takımı veya klavye olarak adlandırılır ve kullanıcının mikrodenetleyiciye veri girmesini sağlar. Arduino uygulamalarında kullanılan keypadler genellikle 4×1 (4 satır 1 sütun),  4×3 (4 satır 3 sütun) ve 4×4 (4 satır 4 sütun) boyutlardadır.

Bir keypadin toplam satır ve sütun sayısı kadar pin sayısı bulunur. Örneğin 4×3 keypad, 4 satır+3 sütun=7 pine sahiptir.

Keypadin çalışma prensini adım adım ifade edilirse;

  1. Mikrodenetleyici tüm sütun pinlerini Giriş (INPUT) pini, tüm satır pinlerini Çıkış (OUTPUT) pini olarak ayarlar.
  2. Bir satırı seçip o satıra HIGH sinyali gönderir.
  3. Tüm sütun pinlerini tarar.
  4. Tüm sütun pinleri LOW durumunda ise o satırdaki hiçbir tuşa basılmamıştır.
  5. Eğer bir sütun pini HIGH konumda ise o sütun ile HIGH verilen satırın kesiştiği tuşa basılmıştır. Örneğin 3. satıra HIGH sinyali gönderildiğinde 2. sütundan HIGH sinyali okunduysa 8 numaralı tuşa basılmıştır.
  6. Sıradaki satıra geçilip 2.adımdan itibaren tüm adımlar sürekli tekrarlanır.

Malzemeler

  • 1 adet Arduino
  • 1 adet keypad

Bağlantı şeması

Bu çalışmada 4×3 ve 4×4 keypad uygumaları gösterilmiştir. Aşağıdaki bağlantı şeması 4×3 keypad içindir.

Aşağıdaki bağlantı şeması 4×4 keypad içindir.

Kaynak kod

Arduino ile keypad kullanmak için programa Keypad.h kütüphanesi eklenmiştir. Kütüphane dosyasını buraya tıklayarak indirebilirsiniz. Aşağıda sırasıyla 4×3 ve 4×4 keypad için kaynak kodlar verilmiştir.

// 4x3 KEYPAD KULLANIMI 
#include "Keypad.h"
 
const byte SatirSayisi = 4; // Satır sayısını gösteren sabiti tanımla
const byte SutunSayisi = 3; // Sütun sayısını gösteren sabiti tanımla
// Tuşları gösteren karakter matrisini tanımla
char keys[SatirSayisi][SutunSayisi] = { 
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'#','0','*'}
};

byte SatirPinleri[SatirSayisi] = {8, 7, 6, 5}; // Sırasıyla keypad satır pinlerinin bağlandığı Arduino pinleri
byte SutunPinleri[SutunSayisi] = {4, 3, 2};    // Sırasıyla keypad sütun pinlerinin bağlandığı Arduino pinleri

// keypad1 adında bir keypad nesnesi tanımla
Keypad keypad1 = Keypad(makeKeymap(keys), SatirPinleri, SutunPinleri, SatirSayisi, SutunSayisi);
 
void setup()
{
  Serial.begin(9600); 
}
 
void loop()
{
  char key = keypad1.getKey(); 
  if (key != NO_KEY)
    Serial.println(key);
}

 

// 4x4 KEYPAD KULLANIMI 
#include "Keypad.h"
 
const byte SatirSayisi = 4; // Satır sayısını gösteren sabiti tanımla
const byte SutunSayisi = 4; // Sütun sayısını gösteren sabiti tanımla
// Tuşları gösteren karakter matrisini tanımla
char keys[SatirSayisi][SutunSayisi] = { 
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'#','0','*','D'}
};

byte SatirPinleri[SatirSayisi] = {8, 7, 6, 5}; // Sırasıyla keypad satır pinlerinin bağlandığı Arduino pinleri
byte SutunPinleri[SutunSayisi] = {4, 3, 2, 1};    // Sırasıyla keypad sütun pinlerinin bağlandığı Arduino pinleri

// keypad1 adında bir keypad nesnesi tanımla
Keypad keypad1 = Keypad(makeKeymap(keys), SatirPinleri, SutunPinleri, SatirSayisi, SutunSayisi);
 
void setup()
{
  Serial.begin(9600); 
}
 
void loop()
{
  char key = keypad1.getKey(); 
  if (key != NO_KEY)
    Serial.println(key);
}

Kaynak kod Arduino’ ya yüklenip çalıştırıldığında seri port ekranında keypad üzerinde basılan tuşlar aşağıdaki gibi listelenecektir.