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