#include <LiquidCrystal_I2C.h>
#include <Wire.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);
}
};