resettare relè con delay

Buonasera a tutti sto provando a sostituire un telecomando di una macchinina con i sensori capacitivi e collegare i motorini dc a dei relè per fare l'inversione delle fasi uso due alimentatori mettendo il + di uno e il - dell'altro in comune.
Il problema è che quando premo un altro sensore per esempio sto premendo il sensore marcia avanti e premo il sensore marcia indietro vorrei che i relè prima si resettassero.
se per sbaglio dovessi premere entrambi i tasti la macchina si arresta.
ho provato con questo sketch ma non va dove ho sbagliato?

int TouchSensor = 9;  
int rele = 2;       
int val = 0;          
int TouchSensor1 = 10;
int rele1 = 3;        
int val1 = 0;          
      

void setup() {
  pinMode(rele, OUTPUT);
  pinMode(TouchSensor, INPUT);
  pinMode(rele1, OUTPUT);
  pinMode(TouchSensor1, INPUT);
}

void loop() {
  val = digitalRead(TouchSensor);  //marcia avanti
  
  if (val == HIGH) {  
    digitalWrite(rele1, LOW);
    digitalWrite(rele, LOW);
    delay(1000);
    digitalWrite(rele, HIGH); 
    digitalWrite(rele1, LOW); 
  }
  else {  
    digitalWrite(rele, LOW);   
   }    
  
 val1 = digitalRead(TouchSensor1);  //marcia indieto
 
  if (val1 == HIGH) {  
    digitalWrite(rele1, LOW);
    digitalWrite(rele, LOW);
    delay(1000);
    digitalWrite(rele1, HIGH); 
    digitalWrite(rele, LOW); 
  }   
  
   
   else {  
    digitalWrite(rele1, LOW);   
   }
 if ((val1 == HIGH) && (val == HIGH)){  //arresto macchina se premo entrambi i tasti
    digitalWrite(rele1, LOW);
    digitalWrite(rele, LOW);
  }  
  
}

buonasera, dovrei sostituire il telecomando di una macchina telecomandata con dei sensori capacitivi.
Visto che i motorini della macchina sono DC, quando inverto le fasi vorrei che i relè si resettassero per poi riattivarsi per girare le fasi. ho provato con questo skecth ma non va, i relè non si attivano e disattivano. Dove ho sbagliato?

int TouchSensor = 9;  
int rele = 2;       
int val = 0;          
int TouchSensor1 = 10;
int rele1 = 3;        
int val1 = 0;          
      

void setup() {
  pinMode(rele, OUTPUT);
  pinMode(TouchSensor, INPUT);
  pinMode(rele1, OUTPUT);
  pinMode(TouchSensor1, INPUT);
}

void loop() {
  val = digitalRead(TouchSensor);  //marcia avanti
  
  if (val == HIGH) {  
    digitalWrite(rele1, LOW);
    digitalWrite(rele, LOW);
    delay(1000);
    digitalWrite(rele, HIGH); 
    digitalWrite(rele1, LOW); 
  }
  else {  
    digitalWrite(rele, LOW);   
   }    
  
 val1 = digitalRead(TouchSensor1);  //marcia indietro
 
  if (val1 == HIGH) {  
    digitalWrite(rele1, LOW);
    digitalWrite(rele, LOW);
    delay(1000);
    digitalWrite(rele1, HIGH); 
    digitalWrite(rele, LOW); 
  }  
   
   else {  
    digitalWrite(rele1, LOW);   
   }
 if ((val1 == HIGH) && (val == HIGH)){  //arresto
    digitalWrite(rele1, LOW);
    digitalWrite(rele, LOW);
  }  
  
}

Togli i due rami "else", sono quelli che ti fermano il motore