Fermeture de porte de garage

merci de votre aide, mais j'ai trouvé une solution (peut être pas la bonne) et cela fonctionne
code :

int analogPin = 0;
int pot = 0;
const int SPDT = 10; //3
int Porte = 6;
const int bouton = 11;
int RED = 7;
int GREEN = 8;
int Buzz = 9;
int Pose = 224820;
int TEMPS;
int etat;
float sinVal;
int toneVal;

void setup()
{
pinMode(SPDT, INPUT_PULLUP);
pinMode(Porte, OUTPUT);
pinMode(bouton, INPUT_PULLUP);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(Buzz, OUTPUT);
pinMode(analogPin, INPUT_PULLUP);
garage:
  digitalWrite(RED, LOW);
  digitalWrite(GREEN, HIGH);
    if(digitalRead(bouton) == HIGH) {    
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (Pose);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (Pose);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (Pose);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (Pose);}
    else
      {goto garage;}
    pot = analogRead(analogPin);
    TEMPS=(pot*440);
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (TEMPS);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (TEMPS);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (TEMPS);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (TEMPS);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (TEMPS);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, LOW);
      delay (TEMPS);}
    else
      {goto garage;}
    if(digitalRead(SPDT) == HIGH){
      digitalWrite(RED, HIGH);
      digitalWrite(GREEN, HIGH);
      for(int x=0; x<180; x++){
        sinVal = (sin(x*(3.1412/180))); 
        toneVal = 2000+(int(sinVal*1000));
        tone(Buzz, toneVal,500);
        delay(2);}
      for(int x=0; x<180; x++){
        sinVal = (sin(x*(3.1412/180))); 
        toneVal = 2000+(int(sinVal*1000));
        tone(Buzz, toneVal,500);
        delay(2);}
      delay (20000);
      tone(Buzz,500,500);
      digitalWrite(Porte, HIGH);
      delay (1000);
      digitalWrite(Porte, LOW);
      goto garage;}
    else
      {goto garage;}}
   else {digitalWrite(RED, HIGH);
          digitalWrite(GREEN, HIGH);
          digitalWrite(Porte, HIGH);
          delay (1000);
          digitalWrite(Porte, LOW);
          goto garage;}}
          
void loop() {
  // put your main code here, to run repeatedly:

}