Keypad nedir?
Keypad satır ve sutunlardan oluşan üzerinde rakam ve harflerin bulunduğu bir çeşit klavyedir. Kullanım amacına göre çeşitli modelleri vardır. 1×4, 2×4, 3×4, 4×4 gibi keypad çeşitleri vardır.
Keypadlar matrix yapıda bağlantıya sahiptir. Fleks kablo yöntemi ile preslenmişlerdir. 1×4 yapıdaki keypad’in 5 adet pini bulunur. 3×4 yapıdaki keypad’in 7 adet bağlantı pini bulunur. 4×4 yapıdaki keypad’in 8 adet bağlantı pini bulunur.
Arduino ile keypad kullanarak bir çok proje yapmak mümkür. Özellikle şifreli kilit, şifreli kasa, şifreli kapı vb. Keypad kullanrak menü özelliği olan projeler, robot kol gibi konum gerektiren işlemlerde keypadlerden yararlanılır.
Yukarıda da görüldüğü gibi 1234 nolu pinler Satır pinleri iken 5678 nolu pinler sutun pinleridir. Arduinoya bağladığımızda bunları belirtmemiz gerekir.
Arduino ile keypad kullanırken kütüphaneden faydalanırız. Kütüphaneler işimizi çok kolaylaştırır.
Videoyu izleyerek daha fazla bilgiye ulaşabilirsiniz
Video İzlemek İçin Tıklayınız
//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı butonlar ve buton - kullanımı örnek Kodları
#include <Keypad.h>
const byte satir = 4;
const byte sutun = 4;
char tus_takimi[satir][sutun] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte satir_pinleri[satir] = {10, 9, 8, 7};
byte sutun_pinleri[sutun] = {6, 5, 4, 3};
Keypad kasa = Keypad(makeKeymap(tus_takimi), satir_pinleri, sutun_pinleri, satir, sutun);
String girilen_sifre="";
String sifre="1234#";
#define kirmizi 12
#define yesil 11
#define mavi 13
#define ses 2
void setup()
{
Serial.begin(9600);
pinMode(kirmizi,OUTPUT);
pinMode(yesil,OUTPUT);
pinMode(mavi,OUTPUT);
pinMode(ses,OUTPUT);
}
void loop()
{
char tus = kasa.getKey();
if (tus != NO_KEY)
{
girilen_sifre = girilen_sifre+tus;
Serial.println(girilen_sifre);
digitalWrite(ses,1);
digitalWrite(mavi,1);
delay(100);
digitalWrite(ses,0);
digitalWrite(mavi,0);
delay(100);
}
if(tus == '#')
{
if(girilen_sifre == sifre)
{
Serial.println("TEBRiKLER DOGRU SiFRE");
digitalWrite(yesil,1);
delay(3000);
digitalWrite(yesil,0);
girilen_sifre="";
}
else
{
Serial.print("YANLIS :");
Serial.println(girilen_sifre);
digitalWrite(ses,1);
digitalWrite(kirmizi,1);
delay(1000);
digitalWrite(ses,0);
digitalWrite(kirmizi,0);
girilen_sifre="";
}
}
}