Arduino Keypad kullanımı – Şifreli Kapı – Şifreli Kasa – Arduino Örnek Proje -Ders 32-

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.
keypad_cesitleri Kullanacağımız projeye göre keypad seçeriz ve kullanırız.

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.

keypad-pinoutKeypadlerin arduinoya bağlanabilmesi için doğrudan dijital pinler kullanılır. Kullandığınız keypadin pin sayısı kadar pin kullanılmış olur.

arduino-keypa-teknik-yapısı
arduino-keypa-teknik-yapısı

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

KEYPAD KÜTÜPHANESİ İNDİRMEK İÇİN TIKLAYINIZ
keypad şema
keypad şema
//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="";
      
      }
      
      }
  
  }