Alla fine lavorando con bitSet() e bitClear() ho fatto così
void loop() {
if (digitalRead(bit0) == HIGH){
bitSet(temp_code, 0);
}
else{
bitClear(temp_code, 0);
}
if (digitalRead(bit1) == HIGH){
bitSet(temp_code, 1);
}
else{
bitClear(temp_code, 1);
}
if (digitalRead(bit2) == HIGH){
bitSet(temp_code, 2);
}
else{
bitClear(temp_code, 2);
}
if (digitalRead(bit3) == HIGH){
bitSet(temp_code, 3);
}
else{
bitClear(temp_code, 3);
}
if (digitalRead(bit4) == HIGH){
bitSet(temp_code, 4);
}
else{
bitClear(temp_code, 4);
}
if (digitalRead(bit5) == HIGH){
bitSet(temp_code, 5);
}
else{
bitClear(temp_code, 5);
}
if (digitalRead(bit6) == HIGH){
bitSet(temp_code, 6);
}
else{
bitClear(temp_code, 6);
}
if (digitalRead(bit7) == HIGH){
bitSet(temp_code, 7);
}
else{
bitClear(temp_code, 7);
}