problema con condicional en un puerto digital

Pushbutton

// variable for pin
  int digitalInput_1 = 7;  

// variable to store the values
  int value_1 = 0;  
  
// byte variable to send the pin to serial port
  int myByte = 0;
  
int controlLED = 13;

void setup(){

// set pin modes
  pinMode(digitalInput_1, INPUT);  
  pinMode(controlLED, OUTPUT);  
// begin sending out over the serial port
  beginSerial(9600);
}

void loop(){

  // set 'myByte' to zero
  myByte = 0;

  // then read the INPUT and store valuesin the variable
  value_1 = digitalRead(digitalInput_1);  

  digitalWrite(controlLED, value_1); 
  if ( value_1==1 ) { 
  myByte = myByte | 1; 
  
  
  } else{myByte = 2;
  //digitalWrite(controlLED, LOW); 
  } 
  
  // send myByte out over serial port and wait a bit to not overload the port   
  //printByte(myByte);
  printInteger(myByte);
  
  printInteger(0);
  delay(10);      
}

No se pq este codigo no es estable. Me interesaria poder leer unicamente 0 o 1 en tal pin. El caso es que simpre me envia un 1 delante cuando está deshabilitado el pin.

Necesito dominar un pin primero ara luego poder construir una cadena de 8 caracteres ( con 8 pins).

Muchas Gragiax!

Mar_Canet : Mario_Ruiz

El caso es que simpre me envia un 1 delante cuando está deshabilitado el pin.

Quizá tenga que ver con esto:

myByte = 2;

que en binario sería 00000010