back to top

Arduino Temelleri 10: Tek Analog Giriş ile Keypad Kontrolü

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:

Son Çıkan Yazılar

2 YORUMLAR

  1. Merhaba, ben 4×4 keypad modülünü PCF8574T I2C modülüyle kullanmak istiyorum ama eklediğim kütüphanelerde sürekli hatalar alıyorum. Aslında amacım I2C LCD ekran modülüyle, PCF8574T modülünü birlikte kullanmak. Yardımcı olursanız çok sevinirim.

    • Selamlar,

      Ne hataları alıyorsunuz acaba? Bize bunlardan bahsederseniz size en kısa sürede dönüş sağlamaya çalışacağız.

      İyi çalışmalar dileriz 🙂

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz