probléme de lecture d'un pin

pour améliorer mon programme je voulais pouvoir le lancer à partir d'un bouton initialiser sur un autre pin
le 11,
j'ai essayé de mettre deux conditions dans le if , soit le pin 10 reçoit un signal, soit j'appuie sur un bouton qui est branché sur le pin 11 pour lancer le programme.
j'ai essayé plien de trucs mais rein ne fonctionne.
soit le programme se lance quand le signal arrive sur le pin 10 mais rien ne se pas si j'envois du 5v sur le 11
soit le programme demarre tout seul.

voila mon programme avec la condition OU

const byte pinLumier = 4;
const byte pinSon = 6;
const byte pinVentouse = 8;
boolean ouverturePorte;
const byte pinAction = 10;
const byte pinBouton = 11;
int val = 0;
int val1 = 0;
void setup()
{
  // état des ports
  pinMode(pinLumier, OUTPUT);
  pinMode(pinSon, OUTPUT);
  pinMode(pinVentouse, OUTPUT);
  pinMode(pinAction, INPUT_PULLUP);// fil sur GND pour ouvrir
  //mise à zéro
  digitalWrite(pinSon, LOW);
  digitalWrite(pinLumier, LOW);
  digitalWrite(pinVentouse, LOW);
  ouverturePorte = true;
}
void loop()
{
  val = digitalRead(pinAction);
   val1 = digitalRead(pinBouton); 
  if (val == LOW || val1 == HIGH)
  {
    if (ouverturePorte)
    {
      digitalWrite(pinSon, HIGH);
      delay(5000);
      digitalWrite(pinVentouse, HIGH);
      delay (2500);
      digitalWrite(pinLumier, HIGH);
      delay(30000);
      digitalWrite(pinSon, LOW);
      digitalWrite(pinLumier, LOW);
      digitalWrite(pinVentouse, LOW);
      {
        ouverturePorte = false;
      }
    }
  }
}