type or paste code here
#include<Keypad.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
char keys[4][4] = {
{'1', '2', '3', '+'},
{'4', '5', '6', 'x'},
{'7', '8', '9', '/'},
{' ', '0', '-', '='}
};
byte a = A0, b = A1, counter = 0, counter1 = 0, counter2 = 0, counter3 = 0, counter4 = 0;
byte ROWS[4] = {8, 9, 10, 11};
byte COLS[4] = {12, 13, a, b};
char x;
String y, o, N;
long num1, num2, num;
Keypad kp(makeKeymap(keys), (ROWS), (COLS), (4), (4));
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
}
void eqal() {
y = y + x;
num1 = y.toInt();
} void eqil_2() {
y = y + x;
num2 = y.toInt();
}
void loop() {
// put your main code here, to run repeatedly:
lcd.clear();
x = kp.getKey();
if (x) {
o = o + x;
if (counter == 0)
{ eqal();
if (x == 'x') {
counter++;
counter1++;
y = "";
} else if (x == '+') {
counter++;
counter2++;
y = "";
} else if (x == '-') {
counter++;
counter3++;
y = "";
} else if (x == '/') {
counter++;
counter4++;
y = "";
}
} else if (counter == 1) {
eqil_2();
if (x == '=') {
if (counter1 == 1) {
num = num1 * num2;
} else if (counter2 == 1) {
num = num1 + num2;
} else if (counter3 == 1) {
num = num1 - num2;
} else if (counter4 == 1) {
num = num1 / num2;
}
N = o;
o = "";
}
}
} if (num != 0) {
lcd.print(N);
lcd.print(num);
} else {
lcd.print(o);
}
if (x == ' ') {
counter = 0;
counter1 = 0;
counter2 = 0;
counter3 = 0;
counter4 = 0;
num = 0;
num1 = 0;
num2 = 0;
y = "";
x="";
}
delay(200);
}