#include <LiquidCrystal.h>
#include <Keypad.h>
LiquidCrystal lcd(11,10,9,8,7,6);
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ 'a', '1', '2', '3' },
{ 'b', 'Q', 'W', 'E' },
{ 'c', 'A', 'S', 'D' },
{ 'd', '|', 'Z', 'X' }
};
char keys2[ROWS][COLS] = {
{ '4', '5', '6', '7' },
{ 'R', 'T', 'Y', 'U' },
{ 'F', 'G', 'H', 'J' },
{ 'C', 'V', 'B', 'N' }
};
char keys3[ROWS][COLS] = {
{ '8', '9', '0', 'e' },
{ 'I', 'O', 'P', '/' },
{ 'K', 'L', '|', '/' },
{ 'M', '|', '|', '/' }
};
byte dot[8] = {
B00000,
B00000,
B00100,
B01110,
B01110,
B00100,
B00000,
B00000
};
byte dash[8] = {
B00000,
B00000,
B00000,
B01110,
B01110,
B00000,
B00000,
B00000
};
uint8_t colPins[COLS] = { 31, 33, 35, 37 };
uint8_t rowPins[ROWS] = { 23, 25, 27, 29 };
uint8_t colPins2[COLS] = { 47, 49, 51, 53 };
uint8_t rowPins2[ROWS] = { 39, 41, 43, 45 };
uint8_t colPins3[COLS] = { 44, 42, 40, 38 };
uint8_t rowPins3[ROWS] = { 52, 50, 48, 46 };
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Keypad keypad2 = Keypad(makeKeymap(keys2), rowPins2, colPins2, ROWS, COLS);
Keypad keypad3 = Keypad(makeKeymap(keys3), rowPins3, colPins3, ROWS, COLS);
void setup() {
Serial.begin(9600);
lcd.begin(20,4);
//lcd.blink();
lcd.createChar(1, dot);
lcd.createChar(2, dash);
}
void loop() {
char key = keypad.getKey();
char key2 = keypad2.getKey();
char key3 = keypad3.getKey();
if (key != NO_KEY && key != 'b') {
lcd.print(key);
lcd.write(byte(1));
lcd.noCursor();
}
if (key == 'b') {
lcd.cursor();
lcd.print(" ");
}
if (key3 != NO_KEY && key3 != '/' && key3 != "|" && key3 != "e") {
lcd.print(key3);
lcd.noCursor();
}
if (key3 == 'e') {
lcd.noCursor();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Clearing Please Wait");
lcd.setCursor(0,2);
lcd.print("We can not undo this");
delay(5000);
lcd.clear();
lcd.home();
delay(10);
lcd.clear();
}
if (key2 != NO_KEY) {
lcd.print(key2);
lcd.noCursor();
}
}