#include <TM1637Display.h>
#define CLK A0
#define DIO A1
TM1637Display display(CLK, DIO);

void setup() {
  for (int i = 2; i <= 13; ++i) {
    pinMode(i, INPUT);
  }
  pinMode(A5, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);
  display.setBrightness(15);
}

int sinal;
bool sinB = false;
int numb = 0;
int numero = 0;
bool res = false, op = true;
int num1;

void reset() {
  sinal = 0;
  sinB = false;
  numb = 0;
  numero = 0;
  res = false;
  op = true;
  num1 = 0;
}

void capt() {
  int num = -1;  // Inicializa num com um valor inválido

  for (int i = 2; i <= 9; ++i) {
    if (digitalRead(i) == HIGH) {
      num = i;
      numb++;
      break;
    }
    if(digitalRead(A2) == HIGH){
      num = 0;
    }
    if(digitalRead(A3) == HIGH){
      num = 1;
    }
  }

  if (numb <= 3 && num != -1) {
    numero = numero * 10 + num;
  }
  if(digitalRead(A4) == HIGH){
    reset();
  }
  if(digitalRead(A5) == HIGH){
    res = true;
    numb = 0;
  }
  if (digitalRead(10) == HIGH && sinB == false ) {
    sinB = true;
    sinal = 1;
    //+
  }
  if (digitalRead(11) == HIGH && sinB == false) {
    sinB = true;
    sinal = 2;
    //-  
  }
  if (digitalRead(12) == HIGH && sinB == false) {
    sinB = true;
    sinal = 3;
    //*
  }
  if (digitalRead(13) == HIGH && sinB == false) {
    sinB = true;
    sinal = 4;
    ///
  }
  if (sinB && op){
    num1 = numero;
    numero = 0;
    op = false;

  }
  delay(200);
}
void result (){
  if(sinal == 1){
    numero = num1 + numero;
    sinal = 0;
    res = false;
  }
  if(sinal == 2){
    numero = num1 - numero;
    sinal = 0;
    res = false;
  }
  if(sinal == 3){
    numero = num1 * numero;
    sinal = 0;
    res = false;
  }
  if(sinal == 4){
    numero = num1 / numero;
    sinal = 0;
    res = false;
  }
}
void loop() {
  display.showNumberDec(numero, false);
  capt();
  if(res){
    result();
  }
}
$abcdeabcde151015202530354045505560fghijfghij
$abcdeabcde151015202530fghijfghij
4-Digit Display