#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#define ROW_NUM 4 // four rows
#define COLUMN_NUM 4 // four columns
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
byte pin_rows[ROW_NUM] = {19, 18, 5, 17};
byte pin_column[COLUMN_NUM] = {16, 4, 2, 15};
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
LiquidCrystal_I2C lcd(0x27, 20, 4); // I2C address 0x27, 16 column and 2 rows
int cursorColumn = 0;
int direct = 27;
int step = 12;
void setup(){
lcd.init(); // initialize the lcd
lcd.backlight();
pinMode(step ,OUTPUT);
pinMode(direct ,OUTPUT);
}
void loop(){
char key = keypad.getKey();
switch (key) {
case '1':
lcd.clear();
lcd.setCursor(0, 0); // move cursor to (cursorColumn, 0)
lcd.print("keypad = ");
lcd.print(key);
lcd.setCursor(0, 2); // move cursor to (cursorColumn, 0)
lcd.print("Kruncharoen");
digitalWrite(direct, HIGH);
digitalWrite(step, HIGH);
delay(100);
digitalWrite(step, LOW);
break;
case '2':
lcd.clear();
lcd.setCursor(0, 0); // move cursor to (cursorColumn, 0)
lcd.print("keypad = ");
lcd.print(key);
lcd.setCursor(0, 2); // move cursor to (cursorColumn, 0)
lcd.print("Electronic");
digitalWrite(direct, LOW);
digitalWrite(step, HIGH);
delay(100);
digitalWrite(step, LOW);
break;
case '3':
lcd.clear();
lcd.setCursor(0, 0); // move cursor to (cursorColumn, 0)
lcd.print("keypad = ");
lcd.print(key);
lcd.setCursor(0, 2); // move cursor to (cursorColumn, 0)
lcd.print("Electronic");
for (int i = 1; i <= 100; i++) {
digitalWrite(direct, HIGH);
digitalWrite(step, HIGH);
delay(10);
digitalWrite(step, LOW);
}
break;
case 'A':
lcd.clear();
lcd.setCursor(0, 0); // move cursor to (cursorColumn, 0)
lcd.print("keypad = ");
lcd.print(key);
lcd.setCursor(0, 2); // move cursor to (cursorColumn, 0)
lcd.print("Oh No");
for (int i = 1; i <= 200; i++) {
digitalWrite(direct, HIGH);
digitalWrite(step, HIGH);
delay(10);
digitalWrite(step, LOW);
}
break;
case 'C':
lcd.clear();
lcd.setCursor(0, 0); // move cursor to (cursorColumn, 0)
lcd.print("keypad = ");
lcd.print(key);
lcd.setCursor(0, 2); // move cursor to (cursorColumn, 0)
lcd.print("Electronic");
for (int i = 1; i <= 200; i++) {
digitalWrite(direct, LOW);
digitalWrite(step, HIGH);
delay(10);
digitalWrite(step, LOW);
}
break;
}
}