Tutorial : Membaca Keypad Matrik 4x4 Menggunakan Arduino Uno
Keypad banyak digunakan di banyak perangkat seperti kunci pintu, ATM, kalkulator...
Pada artikel ini kita akan mempelajari bagamana menggunakan keypad 4x4 dengan arduino
Modul yang dibutuhkan
- Arduino Uno + usb kabel
- Keypad Matrix 4x4
- Kabel Jumper Dupont Male - Male
Pinout
Pin pada keypad dibagi mebjadi 2 grup yaitu Baris (row) dan Kolom (column). Keypad 4x4 memiliki 8 pin. 4 baris (R1, R2, R3, R4) dan 4 kolom (C1, C2, C3, C4).
Proses pendeteksian penekanan tombol ini disebut dengan scanning keypad. Ini disebut "scanning" karena memeriksa satu demi satu kunci tombol. Pin Baris dihubungkan ke pin ouput arduino, sedangkan pin Kolom dihubungkan ke pin input arduno secara PULL UP. Sehingga pada kondisi ini nilai input adalah selalu HIGH pada kondisi tidak ditekan.
Proses scanning:
- Set semua pin Baris HIGH saat inisialisasi
- Set satu pin Baris menjadi LOW
- Periksa setiap pin Kolom : Jika pin bernilai HIGH berarti tombol tidak ditekan, tapi jika pin Kolom bernilai LOW berarti tombol ditekan
Diagram
Pemograman
Pemograman bisa denga cepat dan mudah dengan menggunakan Library Keypad. Downloan library tersebut dan install pada aplikasi Arduino IDE. Cara lain menginstal library adalah dengan menggunakan Library Manager pada aplikasi Ardiuno IDE.
- Copy code berikut dan buka menggunakan Arduino IDE
- Klik tombol Upload untuk mengupload code pada Arduino UNO
- Buka Serial Monitor
- Tekan Semparang kunci pada keppad
- LIhat hasilnya pada serial monitor
CODE
#include <Keypad.h>
const int ROW_NUM = 4; //four rows
const int COLUMN_NUM = 4; //four columns
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
}
Hasil