Stato Button assegnato a più input

salve a tutti...

sono a chiedere nuovamente il vostro gentilissimo aiuto... Ci stò impazzendo..

Stò cercando di realizzare un tabellone segnapunti per tiro a volo ma sono fermo ad un problema che non riesco a superare..

Vado ad illustrare..

I tiratori sono 6 a rotazione su 5 postazioni, quindi su ogni postazione girano tutti i tiratori..

Ora, ho assegnato ad ogni postazione uno statoButton e lo stato lo assegno con la funzione digitalRead..

Allego uno spezzone dello sketch:

    if (digitalRead(posizione1)&&(piattelliTiratore1==0))
    statoButton=digitalRead(posizione1);
    contaTiratore1_1(); // tiratore 1 su postazione 1


    if (digitalRead(posizione3)&&(piattelliTiratore2==0))
    statoButton2=digitalRead(posizione3);
    contaTiratore2_3(); // Tiratore 2 su postazione 3


    if (digitalRead(posizione2)&&(piattelliTiratore1==1))
    statoButton1=digitalRead(posizione2);
    contaTiratore1_2();// Tiratore 1 su postazione 2
  

    if (digitalRead(posizione4)&&(piattelliTiratore2==1))
    statoButton3=digitalRead(posizione4);
    contaTiratore2_4(); // Tiratore 2 su postazione 4
  
    
    if (digitalRead(posizione3)&&(piattelliTiratore1==2))
    statoButton5=digitalRead(posizione3);
    contaTiratore1_3(); //Tiratore 1 su postazione 3 (qui sorge il problema )
  

    if (digitalRead(posizione5)&&(piattelliTiratore2==2))
    statoButton4=digitalRead(posizione5);
    contaTiratore2_5();

//Tiratore 2 su postazione 5

Ogni void collegato esegue il conteggio su 2 display separati ( per ora sto facendo una prova con 2 tiratori per non complicarmi troppo la vita... La simulazione la faccio con pulsanti, al rilascio ho il conteggio del piattello per il tiratore X....

Il problema che non riesco a risolvere è che quando arrivo a leggere lo statoButton5 che legge l'input 3 ( precedentemente letto per lo statoButton2) mi si sballano tutti i conteggi... Naturalmente non è solo il 3 perchè i tiratori eseguono 5 giri di tutte le postazioni e quindi mi ritrovo vari input usati precedentemente con stati diversi... Spero di essermi spiegato...

Cosa non vedo?? O cosa sbaglio??

Se manca qualche altro spezzone sono a disposizione ..

Potete aiutarmi per favore??

Grazie mille a tutti..

Mi sembra poco efficace l'approccio che hai usato, da quel poco che si capisce dallo spezzone.

A mio avviso dovresti usare array e funzioni con parametri

un array delle postazioni dove memorizzi il tiratore:

postazione [0] =2;  // postazione 0 tira tiratore 2

Conto piattelli:

if (digitalRead(pulsantepostazione[0]) ==1)
tiratorepiattelli[postazione[0]]++; //1 piattello in piú al tiratore che sta alla postazione 0

Ciao Uwe

uwefed: un array delle postazioni dove memorizzi il tiratore:

postazione [0] =2;  // postazione 0 tira tiratore 2

Conto piattelli:

if (digitalRead(pulsantepostazione[0]) ==1)
tiratorepiattelli[postazione[0]]++; //1 piattello in piú al tiratore che sta alla postazione 0

Ciao Uwe

Grazie per le risposte amici....

Una domanda UE...

Per inserire il tuo blocco in una pedana di 6 tiratori dovrei fare una cosa del genere:

....

int postazione[]{1,2,3,4,5} // sono le postazioni di tiro

...

int tiratore1;
int tiratore2;
int tiratore3;
int tiratore4;
int tiratore5;
int tiratore6;

....


postazione [0] =0; // se non sbaglio l'array conteggia da zero quindi tiratore 1 == 0 giusto ??

if (digitalRead(pulsantepostazione[0]) ==1)
tiratore1[postazione[0]]++; //1 piattello in piú al tiratore che sta alla postazione 0


if (digitalRead(pulsantepostazione[1]) ==1)
tiratore2[postazione[1]]++;//1 piattello in piú al tiratore che sta alla postazione 1


if (digitalRead(pulsantepostazione[2]) ==1)
tiratore3[postazione[2]]++;//1 piattello in piú al tiratore che sta alla postazione 2


if (digitalRead(pulsantepostazione[3]) ==1)
tiratore4[postazione[3]]++;//1 piattello in piú al tiratore che sta alla postazione 3


if (digitalRead(pulsantepostazione[4]) ==1)
tiratore5[postazione[4]]++;//1 piattello in piú al tiratore che sta alla postazione 4

Spero di aver azzeccato..

Quindi se la pedana successiva si troverà nella condizione che il tiratore 1 è sulla postazione 1 avrò comunque il conteggio giusto??

Grazie UE, almeno inizio a vedere un barlume di luce...

Fin'ora cercavo di arrangiarmi con gli switch ma lo sketch mi stava lievitando a dismisura..

vediamo cosa riesco ad imbastire..

Grazie per l'aiuto...