calculadora que sume 4 digitos o mas

hola a todos necesito una ayuda , ya este proyecto me salió bien esto lo hice con Arduino y que me muestre en proteus ahora lo que no puedo es hacerle sumas ,restas , multiplicaciones y divisiones con 4 dígitos
ejemplo : 4+4+8+2

código arduino :

#include <LiquidCrystal.h>
#include <Keypad.h>
boolean valorActual= false;
boolean siguiente=false;
boolean final=false;
String num1;
String num2;
String num3;
int total;
int movimiento;
char op;

const byte filas = 4;
const byte columnas = 4;
char tecla[filas][columnas] = {
{'7','8','9','/'},
{'4','5','6','*'},
{'1','2','3','-'},
{'F','0','=','+'}
};
byte pinFilas[filas] = {7, 6, 5, 4};
byte pinColumnas[columnas] = {3, 2, A4, A5};

Keypad keypad = Keypad( makeKeymap(tecla), pinFilas, pinColumnas, filas, columnas );
LiquidCrystal lcd(13,12,11,10,9,8);

void setup(){
lcd.begin(16,2);
lcd.print("calculadora 1.0");
delay(1000);
lcd.clear();
}

void loop(){

char key = keypad.getKey();
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(valorActual!=true){
num1=num1+key;
int numLength = num1.length();
movimiento=numLength;
lcd.setCursor(0,0);
lcd.print(num1);
}
else
{
num2 = num2+key;
int numLength = num2.length();
lcd.setCursor(movimiento+1,0);
lcd.print(num2);
final = true;
}
}
else if(valorActual == false && key!= NO_KEY && (key=='/' || key=='' || key=='+' || key=='-')){
if(valorActual == false){
valorActual=true;
op=key;
lcd.setCursor(movimiento,0);
lcd.print(op);
}
}
else if(final == true && key != NO_KEY && key =='='){
if(op =='+'){
total = num1.toInt() + num2.toInt();
}
if (op == '-'){
total = num1.toInt() - num2.toInt();
}
if (op == '
'){
total = num1.toInt() * num2.toInt();
}
else if(op =='/'){
if(num2.toInt()==0){
total= ' ';
}
else{
total= num1.toInt() / num2.toInt();
}
}
num3=String(total);
lcd.clear();
lcd.setCursor(15,0);
lcd.autoscroll();
if(total==' '){
lcd.print("Sintax Error");
}
else if(num3.length()>4){
lcd.print("no hay memoria");
}
else{
lcd.print(total);
}
lcd.noAutoscroll();
}
else if(key!= NO_KEY && key=='F'){
lcd.clear();
lcd.print("calculadora 1.0");
delay(250);
lcd.clear();
valorActual=false;
final=false;
num1="";
num2="";
total=0;
op=' ';
}

}

**Moderador:**Hola, bienvenido al foro Arduino.
En la sección proyectos tienes estos dos hilos que debiste haber leído antes de postear

Como tu consulta es para otra sección lo muevo a Software.
Edita el código usando etiquetas.

Normas del foro