[RISOLTO]problema con shiftout

ciao sto incontrando grossi problemi per una applicazione che prevede l'uso degli shift register 74hc595 ho fatto questo sketch

 #define pulsante        6 //pin interruttore

const byte dataPin = 11; //Pin connected to DS of 74HC595 14
const byte latchPin = 10;//Pin connected to ST_CP of 74HC595 12
const byte clockPin = 12;//Pin connected to SH_CP of 74HC595 11
const byte OEPin = 9;//Pin connected to OE of 74HC595 13

byte stato_pulsante; //interruttore
byte var_1;
byte var_2;

void setup()
{
  pinMode(dataPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(OEPin, OUTPUT);
  digitalWrite(OEPin, LOW);

  digitalWrite(latchPin, LOW);          //Pull latch LOW to start sending data
  shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
  shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
  digitalWrite(latchPin, HIGH);         //Pull latch HIGH to stop sending data

  pinMode(pulsante, INPUT_PULLUP);
  stato_pulsante = 0;

  Serial.begin(9600);
  
  var_1 = 0b00000000;
  var_2 = 0b00000000;

  delay(500);
  Serial.println("Pronto");
}

void loop()
{
  if(digitalRead(pulsante) == LOW)//switch closed
  {      
      digitalWrite(latchPin, LOW);          //Pull latch LOW to start sending data
      shiftOut(dataPin, clockPin, MSBFIRST, 0b01010101);//G1oi 1_5 G2oi 6_10 Ppoi Pdoi 
      shiftOut(dataPin, clockPin, MSBFIRST, var_2);//Aoi Boi Coi Dpd 
      digitalWrite(latchPin, HIGH);         //Pull latch HIGH to stop sending data
 //Serial.println("i t var_2");
// Serial.print(i);
// Serial.print('t');
// Serial.println(var_2, BIN);
      delay(1000);

      digitalWrite(latchPin, LOW);          //Pull latch LOW to start sending data
      shiftOut(dataPin, clockPin, MSBFIRST, var_1);//G1oi 1_5 G2oi 6_10 Ppoi Pdoi 
      shiftOut(dataPin, clockPin, MSBFIRST, 0b01101010);//Aoi Boi Coi Dpd 
      digitalWrite(latchPin, HIGH);         //Pull latch HIGH to stop sending data
      delay(1000);
  }   
}//fine loop

e questo è il secondo

...
void loop()
{
  if(digitalRead(pulsante) == LOW)//switch closed
  {      
      digitalWrite(latchPin, LOW);          //Pull latch LOW to start sending data
      shiftOut(dataPin, clockPin, MSBFIRST, var_1);//G1oi 1_5 G2oi 6_10 Ppoi Pdoi 
      shiftOut(dataPin, clockPin, MSBFIRST, var_2);//Aoi Boi Coi Dpd 
      digitalWrite(latchPin, HIGH);         //Pull latch HIGH to stop sending data
 //Serial.println("i t var_2");
// Serial.print(i);
// Serial.print('t');
// Serial.println(var_2, BIN);
      delay(1000);

      digitalWrite(latchPin, LOW);          //Pull latch LOW to start sending data
      shiftOut(dataPin, clockPin, MSBFIRST, 0b01010101);//G1oi 1_5 G2oi 6_10 Ppoi Pdoi 
      shiftOut(dataPin, clockPin, MSBFIRST, 0b01101010);//Aoi Boi Coi Dpd 
      digitalWrite(latchPin, HIGH);         //Pull latch HIGH to stop sending data
      delay(1000);
  }   
}//fine loop

ora la mia domanda è: con il secondo non dovrei accendere gli stessi led che accendo con il primo?

con il secondo non dovrei accendere gli stessi led che accendo con il primo?

forse se assegni a queste due variabili i valori giusti var_1 = 0b00000000; var_2 = 0b00000000;

scusa ma non capisco i due sketch non sono formalmente uguali, var_1 e var_2 li uso per spegnere i led e il secondo sketch non è la "somma" delle due operazioni fatte nel primo?

non ti seguo.

Nel primo fai 01010101 00000000 00000000 01101010

nel secondo 00000000 00000000 01010101 01101010

esatto ma: nel primo i led si accendono come da byte spedito nel secondo no, eppure il secondo non è formalmente uguale primo? se riesco domani posto un video di quello che succede

ma quanti HC595 hai collegato , uno ?

no sono 2, allegato lo schema completo che sto testando per pezzi, è tutto oggi che faccio prove

trapianto_completo_1.pdf (63.1 KB)

ho fatto altre prove cambiando e scambiando gli shift e gli uln ma senza risultati il secondo sketch accende led diversi dal primo

trapianto_completo_1.zip (54.1 KB)

ho risolto, si trattava di un integrato difettoso, il mod può cancellare il post se lo ritiene