Cara Membaca Tombol Keypad dengan Arduino

Keypad adalah kumpulan tombol numerik atau alfanumerik dengan jumlah tombol yang terbatas. Keypad numerik hanya berisi tombol karakter angka, dari 0 – 9, sedangkan keypad alfanumerik sama dengan keypad numeric dengan ditambahi karakter alphabet A – D. Kedua tipe keypad ini dilengkapi dengan spesial karakter ‘*’ dan ‘#’. Dengan demikian, sebuah keypad numerik akan berisi 12 karakter (12 tombol), sedangkan keypad alfanumerik terdiri dari 16 karakter (16 tombol). Inilah yang membedakannya dengan keyboard, yakni sekumpulan tombol dengan karakter alfanumerik (plus spesial karakter) yang lebih banyak variasinya sesuai dengan standar ASCII.

[AdSense-B]

Pembacaan Tombol Keypad dengan Teknik Scanning

Berdasarkan penjelasan di atas, akan dibutuhkan 12 atau 16 pin I/O untuk menangani input dari keypad. Namun dengan teknik scanning, Anda dapat menghemat pembacaan keypad. Caranya adalah dengan membuat matriks keypad berdasarkan kolom dan baris, kemudian membaca ‘koordinat’ kolom dan baris yang ditekan dengan teknik scanning. Berikut ini adalah ilustrasinya

keypad-4x4-pinout-matriks-keypad-teknik-scanning

Berdasarkan gambar di ataslah, kemudian muncul istilah keypad 3×4 (3 kolom x 4 baris) untuk keypad numerik, keypad 4×4 (4 kolom x 4 baris) untuk keypad alfanumerik.

Perhatikan lagi gambar di atas. Perhatikan bahwa keypad numerik hanya akan membutuhkan 7 pin, sedangkan keypad alfanumerik hanya akan membutuhkan 8 pin saja. Cukup menghemat pin I/O, bukan? Ini akan sangat membantu jika Anda menggunakan tipe papan Arduino dengan jumlah pin I/O terbatas seperti Arduino Uno, Nano, Pro Mini, dsb.

Cara Membaca Tombol Keypad dengan Arduino

Untuk membaca keypad dengan Arduino caranya sangat mudah. Bersyurkurlah kita, karena sudah disediakan library khusus untuk menangani keypad dengan Arduino, yakni library ‘keypad.h’. Library ini termasuk library ‘Hardware abstraction’ (HAL = Hardware Abstraction Library), yakni library siap pakai yang ‘menutupi’ fungsi-fungsi penanganan hardware dasar seperti tombol, keypad, LED, dsb sehingga programmer dapat lebih fokus ke tujuan pemrograman bukan lagi membangun program dari awal. Diharapkan dengan adanya HAL ini dapat lebih mempercepat dan memudahkan programmer dalam membangun sebuah sistem.

Alat dan bahan

  1. Arduino Uno
  2. Keypad 4×4
  3. Kabel jumper Male to Male 8 pcs

[AdSense-B]

Gambar Rangkaian Keypad – Arduino

Berikutnya hubungkan keypad Anda (saya menggunakan keypad 4×4) dengan Arduino seperti gambar di bawah. Jangan sampai kebalik pin kolom dan barisnya ya… (lihat gambar di atas)

cara-membaca-tombol-keypad-dengan-arduino

Sketch Keypad – Arduino

Pertama kali, download dan install library ini melalui library manager di menu Sketch-Include Library-Manage Library. Kemudian ketik ‘keypad’ di kotak search dan pilih library ‘KEYPAD’. Installah library tersebut dengan menekan tombol ‘INSTALL’.

library-keypad-arduino-library-manager

Selanjutnya isikan sketch berikut ke Arduino Anda. Yang perlu Anda lakukan adalah penyesuaian pin kolom dan baris jika menggunakan pin I/O yang lain, atau jika menggunakan tipe keypad yang lain (misal keypad 3×4)

/*
 * program keypad 4x4 - Arduino
 * saptaji.com
*/
#include <Keypad.h>

const byte ROWS = 4; //4 baris
const byte COLS = 4; //4 kolom
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte colPins[COLS] = {5, 4, 3, 2}; // pin 2,3,4,5 untuk pin kolom keypad (lihat gambar)
byte rowPins[ROWS] = {9, 8, 7, 6}; // pin 6,7,8,9 untuk pin baris keypad (lihat gambar)

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
}

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  }

}

Udah, gitu doang. Udah jadi kok :). Gimana? Mudah bukan? Untuk mengetahui hasilnya, silahkan buka jendela Serial Monitor Anda melalui menu Tools-Serial Monitor. Kemudian tekan sembarang tombol di keypad Anda, dan perhatikan karakter yang muncul di jendela Serial Monitor.

serial-monitor-keypad-arduino

Demikian sedikit tutorial tentang cara membaca tombol keypad dengan Arduino, semoga bermanfaat unutk Anda. Keypad ini dibutuhkan untuk aplikasi atau sistem yang membutuhkan masukan (input) karakter yang tidak terlalu banyak, seperti tombol ATM, password akses pintu, dll. Kalau menggunakan keyboard malah terlalu ribet, bukan? 🙂

0 0 votes
Article Rating

Leave a Reply

35 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Aattsani

masa, mau tanya kalau mau door lock keypad security dengan lcd 16×2 pengen di tambahin RTC 1307, jika standby tampilannya di jam digital, tapi kalau keypad di tekan langsung masuk ke fungsi keypad.. gimana ya mas setting sketch nya?

Aattsani

itu di taruhnya di void loop ya mas?

septian

mas mau nanya nih,,klo tampilan lcd 6×12 arduino tuh seperti kotak-kotak dan ada tulisan uttdgfsffsgdsdgsgggsapakh lcd nya rusak yah mas ??

Aattsani

udah di coba mas, tapi tampilan Jam nya malah kedip kedip trus pas di tekan keypad jamnya gak hilang malah ketimpa sama jarajter bintang password.. ini sketchnya mas, mohon tolong di periksa :

int detect_Keypad;

void loop(){
keypad.getKey();
jamDigital();
if (detect_keypad){
checkPassword();
}
}

Anto

Mas kalau misalnya menampilkan alphanumerik keypad di lcd bagaimana ya?

mulia atika

mas mau nanya ni,,untuk menampilkan angka 3 digit di lcd gymana program nya?

Uum

Mas saya buat pembatas arus menggunakan arduino uno. Keypad nya sebagai nilai arus yg dibatasi, gimana programnya itu mas. Terimakasih.

yan

mas saya mau tanya, saya mau bikin mengatur suhu dengan inputan kayped mas, jd outputnya kipas, jd pada suhu sekian kita seting dengan kayped maka kipas hidup mas? mohon bantuan progamnya mas….

yono

assalamualaikum mas mau tanya cara mambuat program agar data tidak masuk ke arduino bagaimana ya? ada 1tombol start yang digunakan untuk data masuk setelah di tekan. terima kasih

Kira

Mau nnya mas
Kendala saya saat menampilkan 4 digit input keypad ke lcd, saya set posisi cursor di baris 2 kolom 4, tapi yg muncul cuman 1 digit,,
Kira-kira koding program nya gimana mas biar bisa tampil 4 digit? Mohon bantuannya mas, terima kasih

Kira

Udh bisa mas,,sesuai logika yg mas bilang👍
Terima kasih mas

ahyadi

mas saya ada rencana membuat jam digital pakai arduino, apakah harus menggunakan ic atmega 328 ? atau penggunannya bisa diganti dengan ic atmega 8 ?

haris

Mau tanya mas , kalo menampilkan input keypad pda lcd 20×4 agar 2 digit bagaimana yah coding arduino nya yah ? saya keluarnya 1 digit terus . Lumayan bingung . Makasih sudah membalas pertanyaan ini .

Ridwan

Kak mw tanya, kalo misalkan menambahkan alfhabet di keypad 4×4 bisa gak??? jadi seperti hp nokia keypadnya kak, soalnya saya muter muter gak ketemu di website lain

rizal

mas, saya bingung harus pakai # apalagi, saya pakai #include gabisa ke detect mulu mas. mungkin ada saran pakai yg lain?

Richzeb

mas knpa angkanya saatdi tekan tidak berurutan jika saya tekan 1 s/d A maka muncul 4 s/d Bbgtu jga sebaliknya…tpi untuk angka 7 s/d D sdh sesuai…

makasi

Prasetyo

Sorry gan, ini kalo mau copy dari web ini bisa ga ya untuk tugas saya? saya cantumkan sumber kok

Yeny

Maaf kak kalo mau masukin lebih dari 2 angka sekaligus gimana? Kalo char kan cuma satu angka doang, udah nyoba ganti integer tapi blm bisa

35
0
Would love your thoughts, please comment.x
()
x