Proyecto de pulsadores

Buenos tardes: Soy nuevo en Arduino y trato de aprender, busco informacion, hago pruebas y vengo teniendo muy buenos resultados, pero en este proyecto se me complico y no encuentro solucion, por eso acudo a uds a ver si me pueden generar una idea.
El proyecto lo estoy haciendo en este caso con Arduino UNO y pulsadores varios.
La idea es generar puestos de trabajo con dos pulsadores en cada puesto para atencion.
Un pulsador incrementa el contador y el segundo pulsador regresa al contador anterior.
Pero lo que me pidieron ahora es discriminar el puesto de atencion y para ello necesito que por puerto serial me envie la incrementacion del contador pero discriminado que pulsador es el que se esta poniendo en HIGH, para poder tomar la Info del Serial y manejarlo con el Soft que ya tengo funcionando.
Este es el codigo del proyecto con el que vengo practicando con 3 simples pulsadores que estan incrementado el contador.
Desde ya muchas gracias por su tiempo

int numero = 0; 
int estadoBoton1 = 0; 
int estadoBoton2 = 0; 
int estadoBoton3 = 0;

void setup() {                 

  pinMode(2, INPUT); 
  pinMode(3, INPUT); 
  pinMode(4, INPUT); 
  
Serial.begin(9600);
} 


void loop() { 
   
  estadoBoton1 = digitalRead(2); 
  estadoBoton2 = digitalRead(3); 
  estadoBoton3 = digitalRead(4);

  if (estadoBoton1 == LOW and numero < 999) { //Resta contador.
    numero = numero + 1; 

  } 

  if (estadoBoton2 == LOW and numero > 0&& estadoBoton3 == LOW and numero > 0) { //Suma al contador.
    numero = numero - 1; 
  } 


     switch (numero) { 
    case 0:  
      cero();    
      break; 
    case 1: 
       
      uno();  
      break; 
    case 2: 
      
      dos();  
      break; 
    case 3: 
      
      tres();  
      break; 
    case 4: 
     
      cuatro();  
      break; 
    case 5: 
      
      cinco();  
      break; 
    case 6: 
       
      seis();  
      break; 
    case 7: 
    
      siete();  
      break; 
    case 8: 
     
      ocho();  
      break; 
    case 9: 
     
      nueve();  
      break; 

    case 10: 
     
      diez();  
      break; 
 
    case 11: 
    
      once();  
      break; 
      
    case 12: 
     
      doce();  
      break; 
    case 13: 
      
      trece();  
      break;
     case 14: 
       
      catorce();  
      break;
    case 15: 
    
      quince();  
      break;
  } 

  delay(500); 
   


} 

void cero(){ 
  Serial.println("0");
  delay(1000);

} 

void uno(){ 
  Serial.println("1");
  delay (500);
} 
void dos(){ 
  Serial.println("2");
  delay (500);
 } 
void tres(){ 
  Serial.println("3");
  delay (500);
} 
void cuatro(){ 
  Serial.println("4");
  delay (500);
} 
void cinco(){ 
  Serial.println("5");
  delay (500);
} 
void seis(){ 
  Serial.println("6");
  delay (500);
} 
void siete(){ 
  Serial.println("7");
  delay (500);
} 
void ocho(){ 
  Serial.println("8");
  delay (500);
} 
void nueve(){ 
Serial.println("9");
delay (500);
} 
void diez(){
  Serial.println("10");
delay (500);
}
void once(){
  Serial.println("11");
delay (500);
}
void doce(){
  Serial.println("12");
delay (500);
}

void trece(){
  Serial.println("13");
delay (500);
}
void catorce(){
  Serial.println("14");
delay (500);
}
void quince(){
  Serial.println("15");
delay (500);
}

La verdad la explicación que diste es demasiado confusa, pero si entendí bien lo que necesitas es sólo saber qué pulsador se encuentra en high para así "discriminar" (como tu dices) ciertas pulsaciones?, en pocas palabras saber el estado anterior del pulsador?

Pero lo que me pidieron ahora es discriminar el puesto de atencion y para ello necesito que por puerto serial me envie la incrementacion del contador pero discriminado que pulsador es el que se esta poniendo en HIGH, para poder tomar la Info del Serial y manejarlo con el Soft que ya tengo funcionando.

Luce como tarea de un curso o escuela.

Deberías haber planteado cómo crees tu que podrías resolverlo? Asi en el proceso aprendes.

Si tienes que mostrar que pulsador fue presionado y tienes 3 pulsadores.
No le veo sentido a que dos pulsadores deben pulsarse para una acción. Hablo de pulsador2 y 3, que deben estar en LOW para decrementar el contador numero.

Bien… casi no haría nada como tu lo has hecho.

Pregunto: Según este criterio

void quince(){ y si tu sistema permite llegar a 999, entonces pretenden tener 999 void ?
habra entonces un

void cien() y otro void doscientos y asi?

Si tu respuesta es SI, te aconsejo que vuelvas a revisar los libros porque eso no es programar.

Tu puedes simplemente imprimir numero con su valor como variable y no tener un procedimiento por número como has hecho en tu ejemplo.

No debería presentarte esto pero… espero te sirva y también que leas un poco más.
Por supuesto LEE las Normas del foro y observa otros hilos para tener claro como se presentan códigos, imágenes y enlaces.

int numero = 0; 
bool estadoBoton1 = 0; 
bool estadoBoton2 = 0; 
bool estadoBoton3 = 0;

void setup() {                 

  pinMode(2, INPUT); 
  pinMode(3, INPUT); 
  pinMode(4, INPUT); 
  
  Serial.begin(9600);
} 


void loop() { 
   
  estadoBoton1 = digitalRead(2); 
  estadoBoton2 = digitalRead(3); 
  estadoBoton3 = digitalRead(4);

  Serial.print("Pulsador ");
  if (estadoBoton1 == LOW) { // Suma contador
    numero = numero + 1; 
    if (numero > 999)
       numero = 999;
    Serial.print("1   ");
  } 

  if (estadoBoton2 == LOW && estadoBoton3 == LOW) { //Resta contador
      numero = numero - 1; 
      if (numero < 0)
          numero = 0;
      Serial.print("2y3 ");
  } 
  Serial.print(" Numero: ");
  Serial.print(numero);
}

Buenos dia: Ante todo muchas gracias, Realmente me doy cuenta que no supe explicar mi necesidad la cual ya solucione anoche.
El Sketch era solo una demo de prueba con solo 3 pulsadores que son los que tengo en la protoboard pero el sistema esta trabajando con otra cantidad de Pulsadores.
Perdon si me equivoque en la manera de subir el codigo
Gracias

No importa, se aprende sobre la marcha.
Esta solucionado entonces?