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.
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
/*
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");
}
}
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");
}
}