Kali ini kita akan membahas penggunaan Keypad Matrix 4×4. Perangkat ini sangat umum digunakan dengan ESP32 untuk input data seperti PIN, password, atau menu navigasi.
Berikut adalah penjelasan teknis dan cara menghubungkannya:
1. Memahami Pinout Keypad
Keypad 4×4 memiliki 8 pin yang terbagi menjadi:
- 4 Pin Baris (Rows): Mengontrol baris 1, 2, 3, dan 4.
- 4 Pin Kolom (Columns): Mengontrol kolom 1, 2, 3, dan 4.
2. Skema Koneksi ke ESP32
ESP32 memiliki banyak pin GPIO, sehingga Anda bisa langsung menghubungkan 8 pin keypad tersebut ke GPIO ESP32 tanpa memerlukan komponen tambahan (seperti resistor) karena kita akan menggunakan fitur Internal Pull-up pada ESP32.
Saran Pemetaan Pin:
| Pin Keypad (dari kiri ke kanan) | Pin GPIO ESP32 | Keterangan |
| Pin 1 | GPIO 13 | Baris 1 (R1) |
| Pin 2 | GPIO 12 | Baris 2 (R2) |
| Pin 3 | GPIO 14 | Baris 3 (R3) |
| Pin 4 | GPIO 27 | Baris 4 (R4) |
| Pin 5 | GPIO 26 | Kolom 1 (C1) |
| Pin 6 | GPIO 25 | Kolom 2 (C2) |
| Pin 7 | GPIO 33 | Kolom 3 (C3) |
| Pin 8 | GPIO 32 | Kolom 4 (C4) |
Catatan: Hindari menggunakan GPIO 0, 2, atau 15 jika memungkinkan, karena pin tersebut mempengaruhi proses booting ESP32.
3. Library yang Dibutuhkan
Untuk memudahkan pemrograman, Anda disarankan menggunakan library Keypad oleh Mark Stanley dan Alexander Brevig. Library ini menangani pemindaian (scanning) baris dan kolom secara otomatis.
4. Contoh Kode Dasar (Arduino IDE)
Berikut adalah contoh kode singkat untuk menguji keypad Anda:
C++
#include <Keypad.h>
const byte ROWS = 4; // empat baris
const byte COLS = 4; // empat kolom
// Definisikan simbol pada tombol
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Hubungkan pin keypad ke GPIO ESP32
byte rowPins[ROWS] = {13, 12, 14, 27};
byte colPins[COLS] = {26, 25, 33, 32};
// Inisialisasi keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(115200);
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.print("Tombol ditekan: ");
Serial.println(key);
}
}
Beberapa Tips Penting:
- Tipe Keypad: Jika keypad Anda tipe membran (tipis/stiker), urutan pin biasanya berurutan dari Baris 1-4 lalu Kolom 1-4.
- Voltase: ESP32 bekerja pada level logika 3.3V. Keypad matriks adalah komponen pasif (hanya saklar), jadi ia aman digunakan langsung dengan ESP32.
- Debouncing: Library
Keypad.hsudah menangani debouncing secara internal, sehingga Anda tidak akan mendapatkan input ganda saat menekan tombol satu kali.
