Arduino Tutorial: How to Make a Calculator
hello, In this tutorial you will learn to make calculator using arduino board based on atmega chip. is cheap and simple to use.
To make this prototype I am using:
To make this prototype I am using:
-
Arduino Pro Mini
-
ir Sensor
-
ir remote control
-
lcd Nokia 5110
-
Jumper wire
-
Breadboard
Nokia 5110 LCD Module
- 1. RST--------- reset.
- 2. CE------------chip selection.
- 3. DC-----------data/commands choice.
- 4. DIN-----------serial data line.
- 5. CLK------------serial Clock Speed.
- 6. VCC----------Power, 3.3V (Positive).
- 7. LIGHT--------- backlight control terminal.
- 8. GND-----------power negative.
Schema
download |
Infrared IR Receiver Module Wireless Remote Control Kit For Arduino
3Pcs 3.3V 8MHz ATmega328P-AU Pro Mini Microcontroller Board For Arduino |
Code
Library
Code
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <IRremote.h>
int contrast=59;
float chiffre1=0;
float chiffre2=0;
float resultat=0;
int operation;
int i = 0;
int mode = 0;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
void setup()
{
pinMode(8,OUTPUT);
digitalWrite(8,LOW); //Turn Backlight ON
display.begin();
display.setContrast(contrast); //Set contrast to 59
display.display();
display.clearDisplay();
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
if (results.value==0x38863BE0){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+1;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=1*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+1;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=1*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BD0){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+2;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=2*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+2;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=2*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BF0){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+3;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=3*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+3;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=3*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BC8){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+4;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=4*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+4;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=4*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BE8){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+5;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=5*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+5;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=5*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BD8){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+6;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=6*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+6;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=6*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BF8){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+7;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=7*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+7;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=7*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BC4){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+8;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=8*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+8;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=8*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BE4){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+9;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=9*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+9;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=9*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BC0){
if (i == 0 && mode == 0) {
chiffre1=chiffre1*10+0;
display.clearDisplay();
display.print(chiffre1);
}
else if (i != 0 && mode == 0) {
chiffre1=0*pow(10,-i)+chiffre1;
i++;
display.clearDisplay();
display.print(chiffre1);
}
else if (i == 0 && mode == 1) {
chiffre2=chiffre2*10+0;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
else if (i != 0 && mode == 1) {
chiffre2=0*pow(10,-i)+chiffre2;
i++;
if (operation == 1) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.print(chiffre2);
}
else if (operation == 2) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.print(chiffre2);
}
else if (operation == 3) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.print(chiffre2);
}
else if (operation == 4) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.print(chiffre2);
}
}
}
else if (results.value==0x38863BD4){
i = 1;
}
else if (results.value==0x38863BD2){
display.clearDisplay();
display.println("0");
resultat = 0;
chiffre1 = 0;
chiffre2 = 0;
operation = 0;
mode = 0;
}
else if (results.value==0x38863BF2){
if (mode == 0) {
display.clearDisplay();
display.println(chiffre1);
display.println("+");
i = 0;
operation = 1;
mode = 1;
}
else if (mode == 1) {
if (operation == 1) {
resultat=chiffre1+chiffre2;
}
else if (operation == 2) {
resultat=chiffre1-chiffre2;
}
else if (operation == 3) {
resultat=chiffre1*chiffre2;
}
else if (operation == 4) {
resultat=chiffre1/chiffre2;
}
display.clearDisplay();
display.println(resultat);
display.println("+");
i = 0;
chiffre1 = resultat;
chiffre2 = 0;
operation = 1;
mode = 1;
}
}
else if (results.value==0x38863BFA){
if (mode == 0) {
display.clearDisplay();
display.println(chiffre1);
display.println("-");
i = 0;
operation = 2;
mode = 1;
}
else if (mode == 1) {
if (operation == 1) {
resultat=chiffre1+chiffre2;
}
else if (operation == 2) {
resultat=chiffre1-chiffre2;
}
else if (operation == 3) {
resultat=chiffre1*chiffre2;
}
else if (operation == 4) {
resultat=chiffre1/chiffre2;
}
display.clearDisplay();
display.println(resultat);
display.println("-");
i = 0;
chiffre1 = resultat;
chiffre2 = 0;
operation = 2;
mode = 1;
}
}
else if (results.value==0x38863BC2){
if (mode == 0) {
display.clearDisplay();
display.println(chiffre1);
display.println("*");
i = 0;
operation = 3;
mode = 1;
}
else if (mode == 1) {
if (operation == 1) {
resultat=chiffre1+chiffre2;
}
else if (operation == 2) {
resultat=chiffre1-chiffre2;
}
else if (operation == 3) {
resultat=chiffre1*chiffre2;
}
else if (operation == 4) {
resultat=chiffre1/chiffre2;
}
display.clearDisplay();
display.println(resultat);
display.println("*");
i = 0;
chiffre1 = resultat;
chiffre2 = 0;
operation = 3;
mode = 1;
}
}
else if (results.value==0x38863BCA){
if (mode == 0) {
display.clearDisplay();
display.println(chiffre1);
display.println("/");
i = 0;
operation = 4;
mode = 1;
}
else if (mode == 1) {
if (operation == 1) {
resultat=chiffre1+chiffre2;
}
else if (operation == 2) {
resultat=chiffre1-chiffre2;
}
else if (operation == 3) {
resultat=chiffre1*chiffre2;
}
else if (operation == 4) {
resultat=chiffre1/chiffre2;
}
display.clearDisplay();
display.println(resultat);
display.println("/");
i = 0;
chiffre1 = resultat;
chiffre2 = 0;
operation = 4;
mode = 1;
}
}
else if (results.value==0x38863BDC){
if (operation == 1) {
resultat=chiffre1+chiffre2;
display.clearDisplay();
display.println(chiffre1);
display.println("+");
display.println(chiffre2);
display.println("=");
display.print(resultat);
}
else if (operation == 2) {
resultat=chiffre1-chiffre2;
display.clearDisplay();
display.println(chiffre1);
display.println("-");
display.println(chiffre2);
display.println("=");
display.print(resultat);
}
else if (operation == 3) {
resultat=chiffre1*chiffre2;
display.clearDisplay();
display.println(chiffre1);
display.println("*");
display.println(chiffre2);
display.println("=");
display.print(resultat);
}
else if (operation == 4) {
resultat=chiffre1/chiffre2;
display.clearDisplay();
display.println(chiffre1);
display.println("/");
display.println(chiffre2);
display.println("=");
display.print(resultat);
}
i = 0;
chiffre1 = 0;
chiffre2 = 0;
operation = 0;
mode = 0;
}
display.display();
irrecv.resume(); // Receive the next value
}
delay(200);
}

mediafire doesn't allow to download calculator codes please copy paste it in this comment section as a reply
ReplyDeleteREPLY