Verificare n variabili con if

Ciao a tutti.
Ho un piccolo problemino, anche se penso che sia molto semplice.
Vi faccio subito un esempio:

int Val1 = 0;
int Val2 = 0;
int Val3 = 0;
int Val4 = 0;
int Val5 = 0;
int Val6 = 0;
int Val7 = 0;
int Val8 = 0;
int Val9 = 0;
int Val10 = 0;

Facciamo finta di avere 10 variabili che assumono due semplici valori: 0 o 1.
Ora, la domanda è: come posso verificare che, nel caso anche solo una delle 10 variabili diventi pari a valore 1, accenda ad esempio un LED?
Non so se sono stato abbastanza chiaro, però l'idea era di fare più o meno così:

if ((Val1 || Val2 || Val3 || Val4 || Val 5 || Val6 || Val7 || Val8 || Val9 || Val10) == 1){
//accendi il led
} 
else {
//spegni il led
}

Si può fare?

ciao...puoi ragionare in questo modo...una int ha 16 bit...se tutti sono a "0" il totale sarà "0"...se anche uno solo è a "1" il totale è diverso da "0"...

ps: comunque il tuo if non è corretto

Sisi lo so che l'if non è corretto, infatti era solo per dare l'idea di cosa deve fare
Io pensavo di sommare tutte le variabili e a quel punto verificare se la variabile totale fosse maggiore di 0...un po' come la storia che dici tu dei bit

in realtà l if va bene se elimini ==1
di fatto testi ogni variabile trattandola come booleana quindi 0 = false ogni altro valore = true e metti tutto in or quindi se tutte le variabili sono zero l intera espressione è false, se almeno una non è zero diventa true, come serve a te

Userei un array al posto di 10 variabili numerate.
Poi gestireli con dei FOR.
Ciao Uwe

Che spreco di risorse, 10 variabili int, ognuna per salvare il valore di un bit, come ha detto @ORSO, o meglio un interno senza segno di tipo uint16_t bitsCollection; grande 16 bit.

Ogni bit lo accendi e spegni con _BV(bit), più precisamente:

uint16_t  bitsCollection=0;
bitsCollection |=    _BV(15);            // accendo il bit 15
bitsCollection &= ~_BV(15);            // spengo il bit 15

bitsCollection |= _BV(0) | _BV(1) | _BV(2);               // Accendo i primi tre bit
bitsCollection &= ~( _BV(0) | _BV(1) | _BV(2) );       // Spengo i primi tre bit

C'è anche un modo per evitare di usare _BV e gli operatori logici e si chiama in C "bitfield", letteralmente "campi di bit, PS: una volta aperto il libro visto che ci sei dai uno sguardo anche alle "union".

Ciao.

Il problema di base di avere enne variabili tutte dello stesso tipo lo risolvi come dice @uwe usando gli array.
Se poi caso particolare solo bit come dice @maurotec. In arduino ci sono funzioni tipo bitSet e bitRead, un po più semplici da usare

Se vuoi rimanere sulle variabili distinte, usa delle variabili byte, che occupano 8 bit. Comunque dovrai scrivere:
if(val1==1 || val2==1 || ... || val10==1) digitalWrite(x, HIGH);

Poiché le variabili che stiamo usando contengono valori numerici (1 oppure 0), è anche corretto scrivere:
if(val1+val2+...+val 10>0) digitalWrite(x, HIGH);

o, più semplicemente:
if(val1+val2+...+val 10) digitalWrite(x, HIGH);