#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define pwm 3
void display(char key);
const char number_of_rows = 4;
const char number_of_columns = 4;
char row_pins[number_of_rows] = {4,5,6,7};
char column_pins[number_of_columns] = {8,9,10,11};
char key_array[number_of_rows][number_of_columns] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
Servo servo;
Keypad key = Keypad(makeKeymap(key_array),row_pins , column_pins, number_of_rows, number_of_columns);
int i=0,a=0,b=1;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
servo.attach(pwm);
servo.write(0);
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("angle:");
char key_pressed = key.getKey();
display(key_pressed);
if(key_pressed=='#')
{
delay(250);
lcd.clear();
}
}
void display(char key)
{
if(key)
{
Serial.println(key);
if(key=='#')
{
servo.write(a);
//a=0;
}
lcd.setCursor(0,0);
lcd.print("angle:");
lcd.setCursor(i,8);
lcd.print(key);
if(key!='#')
{
i=i+1;
}
if(key=='#')
{
i=0;
}
a=a*b+(key-48);
b=10;
Serial.println(a);
// a=0;
if(a>180)
{
a=0;
}
}
}