#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
const int R1=12, R2=11, R3=10, R4=9;
const int C1=7, C2=6, C3=5, C4=4;
char key;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(R4, OUTPUT);
pinMode(C1, INPUT_PULLUP);
pinMode(C2, INPUT_PULLUP);
pinMode(C3, INPUT_PULLUP);
pinMode(C4, INPUT_PULLUP);
digitalWrite(C1, HIGH);
digitalWrite(C2, HIGH);
digitalWrite(C3, HIGH);
digitalWrite(C4, HIGH);
};
void loop() {
ROW1();
ROW2();
ROW3();
ROW4();
lcd.setCursor(0,0);
lcd.print("Your Pressed : ");
lcd.print(key);
};
void ROW1() {
// ------------- ROW1 ---------------
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
if (digitalRead(C1) == LOW) {
key = '1';
delay(200);
}
else if (digitalRead(C2) == LOW) {
key = '2';
delay(200);
}
else if (digitalRead(C3) == LOW) {
key = '3';
delay(200);
}
else if (digitalRead(C4) == LOW) {
key = 'A';
delay(200);
}
}
void ROW2() {
// ------------- ROW2 ---------------
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
if (digitalRead(C1) == LOW) {
key = '4';
delay(200);
}
else if (digitalRead(C2) == LOW) {
key = '5';
delay(200);
}
else if (digitalRead(C3) == LOW) {
key = '6';
delay(200);
}
else if (digitalRead(C4) == LOW) {
key = 'B';
delay(200);
}
}
void ROW3() {
// ------------- ROW3 ---------------
digitalWrite(R1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
if (digitalRead(C1) == LOW) {
key = '7';
delay(200);
}
else if (digitalRead(C2) == LOW) {
key = '8';
delay(200);
}
else if (digitalRead(C3) == LOW) {
key = '9';
delay(200);
}
else if (digitalRead(C4) == LOW) {
key = 'C';
delay(200);
}
}
void ROW4() {
// ------------- ROW4 ---------------
digitalWrite(R1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
if (digitalRead(C1) == LOW) {
key = '*';
delay(200);
}
else if (digitalRead(C2) == LOW) {
key = '0';
delay(200);
}
else if (digitalRead(C3) == LOW) {
key = '#';
delay(200);
}
else if (digitalRead(C4) == LOW) {
key = 'D';
delay(200);
}
}