Contador de 2 dígitos display 7 segmentos

Buen día

Tengo un contador de 2 dígitos que fabriqué para contabilizar piezas que salen de una maquina, la caja lleva 21, ahora metimos otro producto que lleva 12, el contador está programado para que cuando se cumplan las 21 manda una salida, espera 5 seg y se reinicializa en 0.
Como puedo hacer un programa para poder contabilizar las cajas de paquete de 21y las de 12, usé el pin A3 como entrada con un selector, cuando está en high deberá trabajar con la cuenta de 21 y cuando esta en low debera contar 12 y reiniciarse, ya realize algunas pruebas con if y else pero no me funciona.
Algún consejo? sería bien recibido.
Anexo el código que tengo con el contador de 21 piezas.
Omití los números de 3 al 21 para ahorrar espacio, el contador tambien tiene 2 botones uno para incrementar y otro para decrementar.

/* se declaran las contantes para identificar cada led*/
const int a = 0;
const int b = 1;
const int c = 2;
const int d = 3;
const int e = 4;
const int f = 5;
const int g = 6;
const int a1 = 7;
const int b1 = 8;
const int c1 = 9;
const int d1 = 10;
const int e1 = 11;
const int f1 = 12;
const int g1 = 13;
const int out = A2;
const int BtnIncremento = A0; // boton de incremento conectadoa al pin 9
const int BtnDecremento = A1; // boton de decremento conectadoa al pin 10

const int tiempoAntirebote =50;
int cuenta =0;  //lleva la cuenta
int estadoBtnIncremento;
int estadoBtnIncrementoAnterior;
int estadoBtnDecremento;
int estadoBtnDecrementoAnterior;


       
     

boolean antirebote  (int pin ) {
 int  contador =0;
 boolean estado;               // guarda el estado del boton 
 boolean estadoAnterior;      // guarda el ultimo estado del boton 

 do {  
   estado = digitalRead (pin);
   if (estado != estadoAnterior ){   // comparamos el estado actual 
     contador =0;                    // reiniciamos el contador 
     estadoAnterior= estado;
   }
   else{
     contador = contador +1;          // aumentamos el contador en 1
   }
   delay (1);
 }
 while (contador < tiempoAntirebote);
 return estado;
 if (cuenta != 30){ 
                 
       cuenta = cuenta++; 
  
}        
}
/* Metodo para elegir que numero mostrar en el display*/
void actualizarNumero(){
 switch (cuenta) {
 case 0:
   /*Bloque para mostrar un 0*/
   digitalWrite(a, HIGH);
   digitalWrite(b, HIGH);
   digitalWrite(c, HIGH);
   digitalWrite(d, HIGH);
   digitalWrite(e, HIGH);
   digitalWrite(f, HIGH);
   digitalWrite(g, LOW);
   digitalWrite(a1, LOW);
   digitalWrite(b1, LOW);
   digitalWrite(c1, LOW);
   digitalWrite(d1, LOW);
   digitalWrite(e1, LOW);
   digitalWrite(f1, LOW);
   digitalWrite(g1, LOW);
   digitalWrite(out, LOW);
   break;
 case 1:
   /*Bloque para mostrar un 1*/
   digitalWrite(a, LOW);
   digitalWrite(b, HIGH);
   digitalWrite(c, HIGH);
   digitalWrite(d, LOW);
   digitalWrite(e, LOW);
   digitalWrite(f, LOW);
   digitalWrite(g, LOW);
   digitalWrite(a1, LOW);
   digitalWrite(b1, LOW);
   digitalWrite(c1, LOW);
   digitalWrite(d1, LOW);
   digitalWrite(e1, LOW);
   digitalWrite(f1, LOW);
   digitalWrite(g1, LOW);
   break;
void setup(){
 /*Declaramos los segmetos del display como salidas*/
 pinMode(a, OUTPUT);
 pinMode(b, OUTPUT);
 pinMode(c, OUTPUT);
 pinMode(d, OUTPUT);
 pinMode(e, OUTPUT);
 pinMode(f, OUTPUT);
 pinMode(g, OUTPUT);
 pinMode(a1, OUTPUT);
 pinMode(b1, OUTPUT);
 pinMode(c1, OUTPUT);
 pinMode(d1, OUTPUT);
 pinMode(e1, OUTPUT);
 pinMode(f1, OUTPUT);
 pinMode(g1, OUTPUT);
 pinMode(out, OUTPUT);
 /*Declaramos los botones como entradas*/
 pinMode(BtnIncremento, INPUT);
 pinMode(BtnDecremento, INPUT);

}

void loop() {
 estadoBtnIncremento = digitalRead(BtnIncremento);
 if (estadoBtnIncremento  != estadoBtnIncrementoAnterior) {     // si hay cambio con respeto al estado 
   if (antirebote (BtnIncremento)){      //checamos  si esta preionado y si lo esta 
     cuenta++;                                //aumentamos la cuenta


     
      
     if (cuenta  == 21     )      { 

   digitalWrite(a, LOW);
   digitalWrite(b, HIGH);
   digitalWrite(c, HIGH);
   digitalWrite(d, LOW);
   digitalWrite(e, LOW);
   digitalWrite(f, LOW);
   digitalWrite(g, LOW);
   digitalWrite(a1, HIGH);
   digitalWrite(b1, HIGH);
   digitalWrite(c1, LOW);
   digitalWrite(d1, HIGH);
   digitalWrite(e1, HIGH);
   digitalWrite(f1, LOW);
   digitalWrite(g1, HIGH);
   digitalWrite(out, HIGH);
   
                 
  delay(5000);
       cuenta=0;
       
     }
     }
     
     }
   
 

estadoBtnIncrementoAnterior  =  estadoBtnIncremento;             // guardamos el estado del boton

 estadoBtnDecremento = digitalRead(BtnDecremento);   //leemos el estado del boton
 if (estadoBtnDecremento  != estadoBtnDecrementoAnterior) {     // si hay cambio con respeto al estado anterior
   if (antirebote (BtnDecremento)){  //si el boton esta presionado disminuimos la cuenta
     cuenta--;                              
     if (cuenta<0){

       cuenta = 0;
       
}
     
   }
 }
 estadoBtnDecrementoAnterior = estadoBtnDecremento;  //guardamos el estado del boton 

 actualizarNumero(); //desplegamos la cuenta en el display
}

Hola NyxMexico.
Como verás he editado tu post ya que no usaste los tags de códigos para que tu sketch se lea correctamente.
Lee las normas del foro para aprender como se hace o me consultas por privado si tienes dudas.

El tema en tu código es que supongo no habrá mas pulsador que incremente cuenta no? Si es así lo que buscas es esto

/* se declaran las contantes para identificar cada led*/
/*const int a                 = 0;
const int b                 = 1;
const int c                 = 2;
const int d                 = 3;
const int e                 = 4;
const int f                 = 5;
const int g                 = 6;
const int a1                = 7;
const int b1                = 8;
const int c1                = 9;
const int d1                = 10;
const int e1                = 11;
const int f1                = 12;
const int g1                = 13;
const int out               = A2;
*/
const int BtnIncremento     = A0; // boton de incremento conectadoa al pin 9
const int BtnDecremento     = A1; // boton de decremento conectadoa al pin 10

const byte salida[14] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,A2};
const byte estado[2][14] = {{1,1,1,1,1,1,0,0,0,0,0,0,0,0},
                            {0,1,1,0,0,0,0,0,0,0,0,0,0,0}}; 

const int tiempoAntirebote  = 50;
int cuenta                  = 0;  //lleva la cuenta
int estadoBtnIncremento;
int estadoBtnIncrementoAnterior;
int estadoBtnDecremento;
int estadoBtnDecrementoAnterior;


boolean antirebote  (int pin ) {
  int  contador =0;
  boolean estado;               // guarda el estado del boton 
  boolean estadoAnterior;      // guarda el ultimo estado del boton 

  do {  
     estado = digitalRead (pin);
     if (estado != estadoAnterior ){   // comparamos el estado actual 
         contador =0;                    // reiniciamos el contador 
         estadoAnterior= estado;
     }
     else {
         contador = contador +1;          // aumentamos el contador en 1
     }
     delay (1);
  }
  while (contador < tiempoAntirebote);
         return estado;

  if (cuenta != 30){ 
     cuenta = cuenta++; 
  }        
}

/* Metodo para elegir que numero mostrar en el display*/
void actualizarNumero(byte valor) {
 switch (valor) {
   case 0:
          /*Bloque para mostrar un 0*/
           for (byte i; i<14; i++) {
                digitalWrite(salida[i], estado[0][i]);    
           }
           break;
   case 1:
          /*Bloque para mostrar un 1*/
           for (byte i; i<14; i++) {
                digitalWrite(salida[i], estado[1][i]);    
           }
           break;
  }
}

void setup(){
  /*Declaramos los segmetos del display como salidas*/
  for (byte i; i<14; i++) {
      pinMode(salida[i], OUTPUT);    
  }

  /*Declaramos los botones como entradas*/
  pinMode(BtnIncremento, INPUT);
  pinMode(BtnDecremento, INPUT);
}

void loop() {
 
  estadoBtnIncremento = digitalRead(BtnIncremento);
  if (estadoBtnIncremento  != estadoBtnIncrementoAnterior) {     // si hay cambio con respeto al estado 
      actualizarNumero(estadoBtnIncremento); // Salidas en función de A0
  }
  estadoBtnIncrementoAnterior  =  estadoBtnIncremento;             // guardamos el estado del boton
}