DjP4nd4:
Alla fine lavorando con bitSet() e bitClear() ho fatto così
Puoi semplificare con un for e un vettore anche se i numeri dei non sono vicini e se azzeri prima la temp_code la parte else non serve:
nell'esempio mio suppongo bit0,bit1 siano costanti bit0=2, bit1=3 etc.
// 0, 1, 2, 3, 4, 5, 6, 7 // indice array => posizione bit
byte pinArray[8]={bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7}; // per ogni cella indico il pin che mi serve
void loop() {
temp_code=0; // parto tutti a zero, else non serve più
for(byte pin=0;pin<=7;pin++) {
if (digitalRead( pinArray[pin] ) == HIGH){
bitSet(temp_code, pin);
}
}