/**
Arduino Calculator
Copyright (C) 2020, Uri Shaked.
Released under the MIT License.
*/
#include <Keypad.h>
/* Keypad setup */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'.', '0', '=', '/'}
};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
String number= "";
void setup(){
Serial.begin(9600);
Serial.println("Press A to reset...");
}
void loop(){
char key = keypad.getKey();
if (key){
if(key=='+'){
Serial.println("Resetting...");
number="";
} else if( key >= 48 && key <= 57 && number.length()<3){
Serial.print(key);
number+=key;
if(number.length()==3){
Serial.println("\nNumber Recorded "+number);
}
}
else{
Serial.print(key);
Serial.println("\nInvalid key...\nResetting...");
number="";
}
}
}