#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;
void setup() {
Serial.begin(115200);
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); //Cทำงานรอจิกโล เลยให้เป็นไฮ
digitalWrite(C2, HIGH);
digitalWrite(C3, HIGH);
digitalWrite(C4, HIGH);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
}
void loop() {
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
if (digitalRead(C1)==LOW) //แสดงว่ากด1 ถ้า1เป้น0 แสดงว่ากด1
{
lcd.print("1");
delay(100);}
else if (digitalRead(C2)==LOW) {
lcd.print("2");
delay(100);}
else if (digitalRead(C3)==LOW)
{lcd.print("3");
delay(100);}
else if(digitalRead(C4)==LOW) {
lcd.print("4");
delay(100);
}
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
if (digitalRead(C1)==LOW) //แสดงว่ากด1 ถ้า1เป้น0 แสดงว่ากด1
{
lcd.print("4");
delay(100);}
else if (digitalRead(C2)==LOW) {
lcd.print("5");
delay(100);}
else if (digitalRead(C3)==LOW)
{lcd.print("6");
delay(100);}
else if(digitalRead(C4)==LOW) {
lcd.print("b");
delay(100);
}
digitalWrite(R1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
if (digitalRead(C1)==LOW) //แสดงว่ากด1 ถ้า1เป้น0 แสดงว่ากด1
{
lcd.print("7");
delay(100);}
else if (digitalRead(C2)==LOW) {
lcd.print("8");
delay(100);}
else if (digitalRead(C3)==LOW)
{lcd.print("9");
delay(100);}
else if(digitalRead(C4)==LOW) {
lcd.print("C");
delay(100);
}
digitalWrite(R1,HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
if (digitalRead(C1)==LOW) //แสดงว่ากด1 ถ้า1เป้น0 แสดงว่ากด1
{
lcd.print("*");
delay(100);}
else if (digitalRead(C2)==LOW) {
lcd.print("0");
delay(100);}
else if (digitalRead(C3)==LOW)
{lcd.print("#");
delay(100);}
else if(digitalRead(C4)==LOW) {
lcd.print("D");
delay(100);
}
}