# Make your own Arduino Based Simple Calculator

Hey guys in this tutorial I will tell you that how you can make your own calculator using Arduino its very simple you need few components and some coding. Don’t worry this project Arduino based Calculator is very simple and interesting project you will learn lots of basics things from this project.
Using this project you guys will be able to run and connect Arduino LCD you will also understand how you can perform Arithmetic Operations like (Addition, Multiplication, Division, and Subtractions).

Also, you can modify the project according to your need you can add the options like percentage modulus integration differentiation whatever you want it just depends on your need and on your coding skills.
So Before Starting this Project Let me tell you what you will need to make this Project.

## How to Install Code?

Now you have connected all the components like this if not then Make sure you connect all the connections like this.After connecting all the connections like this click below and download the

LiquidCrystal_I2C.RAR

After downloading these files, extract the RAR files and copy these libraries and paste it to the address C:\users\yourPCname\Documents\Arduino\Libraries for example in my case.

Now Open your Arduino IDE if you don’t have then click here. After download Arduino IDE open it and copy the code from ARDUINO CALCULATOR CODE and paste it into the IDE. Then simply click on UPLOAD.

ARDUINO CALCULATOR CODE:

// Studentsheart.com
// calculator
// Sohail Anwar
#include <LiquidCrystal.h>

LiquidCrystal lcd(0, 1, 2, 3, 4, 5);
const byte ROWS = 4;
const byte COLS = 4;

char keys [ROWS] [COLS] = {
{‘1’, ‘2’, ‘3’, ‘+’},
{‘4’, ‘5’, ‘6’, ‘-‘},
{‘7’, ‘8’, ‘9’, ‘*’},
{‘C’, ‘0’, ‘=’, ‘/’}
};
byte rowPins[ROWS] = {13,12,11,10};
byte colPins[COLS] = {9,8,7,6};

boolean presentValue = false;
boolean next = false;
boolean final = false;
String num1, num2;
char op;

void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(” Studentsheart.com”);
lcd.setCursor(0,1);
lcd.print(” Calculator”);
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(” by “);
lcd.setCursor(0,1);
lcd.print(” Sohail Anwar” );
delay(3000);
lcd.clear();
}

void loop(){

if (key != NO_KEY && (key==’1’||key==’2’||key==’3’||key==’4’||key==’5’||key==’6’||key==’7’||key==’8’||key==’9’||key==’0′))
{
if (presentValue != true)
{
num1 = num1 + key;
int numLength = num1.length();
lcd.setCursor(15 – numLength, 0); //to adjust one whitespace for operator
lcd.print(num1);
}
else
{
num2 = num2 + key;
int numLength = num2.length();
lcd.setCursor(15 – numLength, 1);
lcd.print(num2);
final = true;
}
}

else if (presentValue == false && key != NO_KEY && (key == ‘/’ || key == ‘*’ || key == ‘-‘ || key == ‘+’))
{
if (presentValue == false)
{
presentValue = true;
op = key;
lcd.setCursor(15,0);
lcd.print(op);
}
}

else if (final == true && key != NO_KEY && key == ‘=’){
if (op == ‘+’){
}
else if (op == ‘-‘){
}
else if (op == ‘*’){
}
else if (op == ‘/’){
}
lcd.clear();
lcd.setCursor(15,0);
lcd.autoscroll();
lcd.noAutoscroll();
}
else if (key != NO_KEY && key == ‘C’){
lcd.clear();
presentValue = false;
final = false;
num1 = “”;
num2 = “”;