Alla fine ho chiuso la "quadra"
Come suggerito da @Claudio_FF mi sono acculturato e dopo prove, prove, prove, ecc... ho capito che per quello che dovevo fare io non mi funzionava, la mia condizione era che partivo da una variabile vuota e la dovevo riempire di bit ma con "<< >>" quando spostavo, lui mette sempre degli 0 e non mi faceva aggiungere gli 1, poi rileggendo i post ho seguito l'indicazione di @gpb01 e ho usato bitWrite(), ora vi allego un pò di listato
long myvar;
int tasto;
int i = 0; // bit di partenza
void loop(){
tasto = digitalRead(8);
if (tasto==HIGH){
bitWrite(myvar,i,1); // se alto memorizzo 1 nel bit(i) di myvar
}
if (tasto ==LOW){
bitWrite(myvar,i,0); // se basso memorizzo 0 nel bit(i) di myvar
}
i++;
come si dice dalle mie parti cercavo l'asino e c'ero a cavallo
![]()