Ajuda com calculadora TinkerCad

Boa noite pessoal.
Estou começando a brincar com o arduino agora, e estou tentando fazer uma calculadora simples no Tinkercad. Mas eu não tenho muito conhecimento sobre C e tão pouco com o arduino. Fiz um esboço mas está complicado seguir daqui.

const int SOMA = 13;
const int SUB = 12;
const int MULT = 11;
const int DIV = 10;
const int RESULT = 9;
int n1, n2, R, cont = 0, num1, num2;
int bsoma, bsub, bmult, bdiv, cont_op = 0, auxs = 0, auxsu = 0;
int auxd = 0, auxm = 0, contn1 = 0, contn2 = 0, bresult, auxr = 0;
char soma, sub, mult, divs, op;

void setup()
{
  pinMode (SOMA, INPUT);
  pinMode (SUB, INPUT);
  pinMode (MULT, INPUT);
  pinMode (DIV, INPUT);
  pinMode (RESULT, INPUT);
  
  Serial.begin (9600);
  Serial.println ("Este programa e uma calculadora");
  Serial.println ("As instrucoes sao simples.");
  Serial.println ("Voce deve digitar um numero, logo depois pressionar o");
  Serial.println ("botao referente a operacao que deseja realizar");
  Serial.println ("e logo em seguida, digitar o segundo numero e pressionar o botao de IGUAL!");

  }

void loop()
{
  bsoma = digitalRead (SOMA);
  bsub = digitalRead (SUB);
  bmult = digitalRead (MULT);
  bdiv = digitalRead (DIV);
  bresult = digitalRead (RESULT);
  
  
  if (Serial.available())
  {
    n1 = Serial.parseInt();  
    	if (n1 > 0)
          num1 = n1;
    Serial.println (num1);
  }
  
  if (bsoma == 1 && auxs == 0)
  {
    cont = cont + 1;
    auxs = 1;
    if (cont == 1)
      op = '+';
    Serial.println (op);
  }  
   if (Serial.available())
  {
    n2 = Serial.parseInt();
    	if (n2 != 0)
          num2 = n2;
    Serial.println (num2);
  }
  
  R = num2 + num1;
  
  if (bresult == 1 && auxr == 0)
      {
        auxr = 1;
    	Serial.println (R);
        
  }
  						// operação de soma
  if (bsub == 1 && auxsu == 0)
  {
    cont_op = cont_op + 1;
  	auxsu = 1;
    	if(cont_op)
          op = '-';
  			Serial.println (op);
}
  
  if (digitalRead (MULT) == 1)
    op = '*';
  
  if (digitalRead (DIV) == 1)
    op = '/';
  
  if (digitalRead (RESULT) == 1)
  {
    R = n1 + n2;
    Serial.println (R);
   }  
  if (Serial.available())
  {
   n2 = Serial.parseInt ();
    Serial.println (n2);
  }
  
//  R = n1 ( op ) n2; 	*
}

Fiz tudo de um jeito que funcionaria, dai não funcionou e tentei arrumar só a parte da soma, então é por isso que ela está mais incrementada.

Não tenho muita experiência com Arduino/Thinkerpad/Serial, a não ser que o seria tranque a execução até tu digitar algo, até onde entendi do teu código, um dos problemas é que como TODO o código do loop é executado toda vez, então provavelmente quando tu digita o segundo número ele está setando o "num1" toda vez.

O que tu poderia tentar é inicializar o "num1" e "num2" com -1 por exemplo, e fazer:

if (Serial.available() && num1 == -1) {
...
}

...

if (Serial.available() && num2 == -1) {
...
}

e no result voltar com os valores deles para -1.

Depois seguimos, de resto é dificil te ajudar sem tu dizer os erros que estão dando e deixar mais claro as variáveis para que o povo entenda teu código (seja comentando cada variavel ou renomeando para nomes mais claros)