#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
  { '1', '2', '3', 'A' },
  { '4', '5', '6', 'B' },
  { '7', '8', '9', 'C' },
  { '*', '0', '#', 'D' }
};

uint8_t colPins[COLS] = { 5, 4, 3, 2 }; // Pins connected to C1, C2, C3, C4
uint8_t rowPins[ROWS] = { 9, 8, 7, 6 }; // Pins connected to R1, R2, R3, R4

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);


#define I2C_ADDR    0x27
#define LCD_COLUMNS 16
#define LCD_LINES   2



Servo myservo;  // create servo object to control a servo
Servo myservo1;  // create servo object to control a servo

//int pos = 10;  

LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
  Serial.begin(9600);
  myservo.attach(10);
  myservo1.write(0);
    myservo1.attach(11);
  myservo.write(0);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(5,0);
  lcd.print("HOME");
  lcd.setCursor(0,1);
  lcd.print("kajit @L@ ");
  // Init
  lcd.init();
  lcd.backlight();


  // Print something
  //lcd.setCursor(3, 0);
  //lcd.print("Hello, world!");
}
void loop() {
  char key = keypad.getKey();
  if (key == 'A')
   {
    myservo.write(90);
    lcd.clear();
    lcd.setCursor(3,0);
    lcd.print("Door Open");
    delay(2000);
    myservo.write(90);
    lcd.clear();
    lcd.setCursor(3,0);
    lcd.print("Door Close");
  }
  else if(key=='1')
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Servo = 180");
    myservo.write(180);
  }
  else if(key=='#')
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Servo = 180");
    myservo.write(180);
  }
  else if(key=='2')
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Servo = 45");
    myservo.write(45);
  }
}