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;
- Mikrodenetleyici tüm sütun pinlerini Giriş (INPUT) pini, tüm satır pinlerini Çıkış (OUTPUT) pini olarak ayarlar.
- Bir satırı seçip o satıra HIGH sinyali gönderir.
- Tüm sütun pinlerini tarar.
- Tüm sütun pinleri LOW durumunda ise o satırdaki hiçbir tuşa basılmamıştır.
- 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.
- 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.

