Tutorial Arduino Project Akses Keypad dan LCD


Dalam tutorial Arduino Indonesia kali ini akan mengulas tentang bagaimana mengakses keypad matrix sebagai input dan menampilkan output dalam tampilan LCD, liquid crystal display.



Dapat dilihat dalam video tutorial simulasi Arduino dengan Proteus tersebut bahwa memungkinkan untuk akses LCD dan keypad secara bersamaan. Untuk keypad yang digunakan ialah keypad 3 kolom dan 4 baris, sedangkan untuk LCD yang digunakan ialah 16 kolom dan 2 baris. Berikut ini adalah gambar konfigurasi wiring antara board Arduino Uno dengan LCD dan keypad.

<img src="arduino_keypad_lcd.png" alt="arduino_keypad_lcd">


Dari gambar tersebut.
  • Pin RS LCD terhubung dengan pin digital 13
  • Pin Enable LCD terhubung dengan pin digital 12
  • Pin D4 LCD terhubung dengan pin digital 11
  • Pin D5 LCD terhubung dengan pin digital 10
  • Pin D6 LCD terhubung dengan pin digital 9
  • Pin D7 LCD terhubung dengan pin digital 8
  • Pin kolom 1 keypad terhubung dengan pin digital 5
  • Pin kolom 2 keypad terhubung dengan pin digital 6
  • Pin kolom 3 keypad terhubung dengan pin digital 7
  • Pin baris A keypad terhubung dengan pin digital 4
  • Pin baris B keypad terhubung dengan pin digital 3
  • Pin baris C keypad terhubung dengan pin digital 2
  • Pin baris D keypad terhubung dengan pin digital 1
Adapun yang ingin lebih praktis dapat menggunakan module Arduino shield LCD keypad yang dijual murah. Untuk source code yang digunakan ialah sebagai berikut.

/*
Program Akses Keypad dan LCD
Arduino Uno

Loki Lang
*/

#include <Keypad.h>
#include <LiquidCrystal.h>

const byte ROWS = 4;
const byte COLS = 3;
char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};

byte rowPins[ROWS] = {4, 3, 2, 1};
byte colPins[COLS] = {5, 6, 7};

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

void setup()
{
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Arduino Keypad");
  delay(2000);
  lcd.clear();
}

void loop()
{
  lcd.setCursor(0, 0);
  lcd.print("Press any key");
  char customKey = customKeypad.getKey();

  if (customKey)
  {

    lcd.setCursor(0, 1);
    lcd.print(customKey);
    lcd.print(" is pressed");
  }
}