Cara Menggunakan Keypad Pada ESP32

Cara Menggunakan Keypad Pada ESP32

Keypad adalah perangkat input yang terdiri dari kumpulan tombol (biasanya disusun dalam baris dan kolom), digunakan untuk memasukkan angka, huruf, atau perintah ke sistem elektronik, seperti mikrokontroler ESP32, Arduino, dan lain-lain.Berikut adalah cara memprogram nya :

#include <Arduino.h>

#include <Keypad.h>

const byte rows_keypad = 4;
const byte cols_keypad = 4;
 
char keyMap_keypad[rows_keypad][cols_keypad] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins_keypad[rows_keypad] = {9, 8, 7, 6};
byte colPins_keypad[cols_keypad] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keyMap_keypad), rowPins_keypad, colPins_keypad, rows_keypad, cols_keypad);


char baca_keypad() {
char key = keypad.getKey();
return key;
}


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

}
void loop(){
char key_keypad = baca_keypad(); // Memanggil fungsi bacaKeypad()
if (key_keypad != NO_KEY) {
Serial.print("Tombol: ");
Serial.println(key_keypad);
}


}


Berikut ini adalah penjelasan dari kode di atas :

#include <Arduino.h>

  • Mengimpor pustaka dasar Arduino (umumnya otomatis di Arduino IDE).

#include <Keypad.h>

  • Mengimpor pustaka Keypad untuk memudahkan membaca tombol dari keypad.

Deklarasi Ukuran Keypad:

const byte rows_keypad = 4;
const byte cols_keypad = 4;
  • Menyatakan keypad 4 baris × 4 kolom.

Pemetaan Tombol Keypad:

char keyMap_keypad[rows_keypad][cols_keypad] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
  • Menentukan isi tombol dari masing-masing posisi baris dan kolom.

Deklarasi Pin Keypad:

byte rowPins_keypad[rows_keypad] = {9, 8, 7, 6};
byte colPins_keypad[cols_keypad] = {5, 4, 3, 2};
  • Menyatakan pin yang terhubung ke baris dan kolom pada keypad.

Catatan: Pin ini perlu disesuaikan dengan koneksi kamu di ESP32 atau Arduino.


Objek Keypad:

Keypad keypad = Keypad(makeKeymap(keyMap_keypad), rowPins_keypad, colPins_keypad, rows_keypad, cols_keypad);
  • Membuat objek keypad berdasarkan:
    • Keymap (pemetaan karakter)
    • Pin baris dan kolom
    • Ukuran baris dan kolom

Fungsi baca_keypad()

char baca_keypad() {
  char key = keypad.getKey();
  return key;
}
  • Fungsi ini memanggil fungsi keypad.getKey() dari pustaka Keypad, dan mengembalikan karakter tombol yang ditekan.
  • Jika tidak ada tombol ditekan, hasilnya adalah NO_KEY.

setup()

void setup() {
  Serial.begin(9600);
}
  • Memulai komunikasi serial dengan kecepatan 9600 baud.

loop()

void loop() {
  char key_keypad = baca_keypad();
  if (key_keypad != NO_KEY) {
    Serial.print("Tombol: ");
    Serial.println(key_keypad);
  }
}
  • Memanggil fungsi baca_keypad().
  • Jika tombol ditekan (key_keypad tidak sama dengan NO_KEY):
    • Tampilkan tombol yang ditekan ke Serial Monitor.

Contoh Output di Serial Monitor:

Tombol: 1
Tombol: A
Tombol: 9
Tombol: #

Kesimpulan:

Kode ini:

  • Menggunakan pustaka Keypad.h untuk membaca tombol dari keypad 4×4.
  • Mengonversi input tombol menjadi karakter.
  • Menampilkan karakter tombol yang ditekan di Serial Monitor.

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?