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.