Merhaba arkadaşlar, bu projemizde normalde en az 7 pinimizi feda ederek kontrol edebileceğimiz keypad (tuş takımı) modülünü sadece 1 analog girişle kontrol etmeyi öğreneceğiz. Bu projede kullanılacak malzemelere bir göz atalım:

Eğer keypad’i breadboard üzerinde kendiniz yapacaksanız;

Pertinaksa lehimlemek istiyorsanız;

Ben bunlarla uğraşmak istemiyorum, hazır kartı zaten var diyorsanız;

Aşağıdaki şekilde görüldüğü gibi keypad’de herhangi bir butona basıldığında satır ve sütun bağlantılarından biri kısa devre olur. Bu kısa devreyi takip ederseniz her tuşa basıldığında yoldaki eşdeğer direncin farklılık gösterdiğini göreceksiniz. Böylelikle analog girişten okuyacağımız değer bastığımız butonegöre değişiklik gösterir.

4x3_KeypadLayout

Kod kısmında OneWireKeyPad adında bir kütüphane mevcut, ama kendiniz de analog değer okuyarak kendi kodunuzu yazabiliriz. Kütüphanenin tercih edilmesinin sebebi, direnç değerlerini girince okunacak analog değerleri kendi kendine tahmin etmesidir.

#include <OnewireKeypad.h>

#define Rows 4 //satır sayısı
#define Cols 3 //sütun sayısı
#define Pin A0 //değer okunan analog pini
#define Row_Res 4700 //satır direnç değeri
#define Col_Res 1000 //sütun direnç değeri

char KEYS[]= {
  '1','2','3',
  '4','5','6',
  '7','8','9',
  '*','0','#'
};

OnewireKeypad <Print, 12> KeyPad(Serial, KEYS, Rows, Cols, Pin, Row_Res, Col_Res );

 

I2C lcd ve analog keypad kullanan bir başka örnek:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OnewireKeypad.h>

#define Rows 4 //sütun sayısı
#define Cols 3 //satır sayısı
#define Pin A0 //değer okunan analog pini
#define Row_Res 4700 //satır direnc değeri
#define Col_Res 1000 //sütun direnç değeri

char KEYS[]= {
  '1','2','3',
  '4','5','6',
  '7','8','9',
  '*','0','#'
};

LiquidCrystal_I2C Lcd(0x20,20,4); //I2C lcdnin adres ve karakter bilgisi
OnewireKeypad <LiquidCrystal_I2C, 12> KeyPad(Lcd,  KEYS, Rows, Cols, Pin, Row_Res, Col_Res )

Not: Bu kod hazır devre kartında çalışmaz, çünkü kartın çalışma prensibi biraz daha farklıdır. Bu örneği anladıysanız, kartın devre şemasına baktığınızda kartın nasıl çalıştığını anlayacaksınız. Hazır devre kartının örnek kodları linkte mevcuttur.

Gerekli Kütüphaneler:

 

CEVAP VER

Please enter your comment!
Please enter your name here