You are on page 1of 4

ARTIKEL KEYPAD

Ada kalanya kita memerlukan sebuah tombol yang dapat digunakan sebagai input bagi Arduino
Microcontroller, sehingga kita bisa memberikan perintah bagi microcontroller tersebut untuk
menjalankan sub-program atau event sesuai yang kita inginkan. Jika tombol-tombol yang kita
perlukan banyak, akan sangat menghabiskan jumlah pin dari microcontroller akibatnya, efisiensi
dari sisi hardware tidak bisa kita capai.

Salah satu alternative yang bisa kita gunakan adalah dengan menyusun tombol-tombol tersebut
secara matrik. Seperti contoh keypad 44 yang akan kita bahas pada artikel saat ini. Keypad 44
memiliki 16buah tombol dengan 8buah pin yang terhubung dengan mincrocontroller.

Gambar 1 Fisik Keypad 44

16 buah tombol ini dirangkai secara matrik (baris x kolom)

Gambar 2 Rangkaian dasar keypad 44

Process pembacaan masing-masing tombol dilakukan dengan mode scanning di setiap baris atau
kolom dengan memberikan nilai high/low pada salah satu kolom-nya. Mode scanning tidak
memungkinkan untuk melakukan check lebih dari 1 tombol diwaktu bersamaan.
Gambar 3 Metode scanning keypad 44

namun karena microcontroller running program dalam hitungan micro detik maka scanning akan
menjadisangat cepat dan dengan tertentu kita bisa membaca 2 tombol sekaligus.

Process Scanning untuk membaca tombol keypad

Proses scaning untuk membaca penekanan tombol pada matrix keypad 44 di mikrokontroler
dilakukan secara bertahap kolom demi kolom. Program untuk scaning matrix keypad 44 dapat
bermacam-macam, tapi dasarnya. Misal kita asumsikan keyapad aktif LOW (semua line kolom
dan baris dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom
adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix keypad 44
diatas dapat dituliskan sebagai berikut :

Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain
kemudian membaca data baris, misal tombol 2 ditekan maka data baris pertama (Row1) akan
LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol 5 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol 8 yang ditekan
sehingga data yang terbaca 1101, atau tombol 0 yang ditekan maka data yang dibaca adalah 1110
dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan
1111.

Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain
kemudian membaca data baris, misal tombol 1 ditekan maka data baris pertama (Row1) akan
LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol 4 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol 7 yang ditekan
sehingga data yang terbaca 1101, atau tombol * yang ditekan maka data yang dibaca adalah 1110
dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan
1111.

Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain
kemudian membaca data baris, misal tombol 3 ditekan maka data baris pertama (Row1) akan
LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol 6 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol 9 yang ditekan
sehingga data yang terbaca 1101, atau tombol # yang ditekan maka data yang dibaca adalah 1110
dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan
1111.

Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain
kemudian membaca data baris, misal tombol A ditekan maka data baris pertama (Row1) akan
LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol B maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol C yang ditekan
sehingga data yang terbaca 1101, atau tombol D yang ditekan maka data yang dibaca adalah
1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111. Data hasil scanning tersebut dibandingkan dengan table yang ada dalam program di
microcontroller, untuk kemudian didapatkan hasil akhir dari pembacaan tombol oleh user dan
menjalankan sub-program atau tidak menjalankan apapun.

Keypad 44 dan Arduino

Pada percobaan kali ini, kita akan menmbuat program untuk membaca tombol keypad dan
menampilkannya pada display seven segment. Program yang sudah pernah kita buat untuk seven
segment, akan menjadi sub-program pada artikel ini. Sehingga tinggal kita tambahkan saja
program utama untuk menampilkan data input tombol oleh user dan sub-program untuk scanning
keypad.

Gambar 4 Konfigurasi keypad 44 dengan pin Arduino


Koneksi Keypad 44 dengan Arduino Microcontroller