automazione tapparelle

ho cambiato if (val == LOW) con HIGH ora il led è spento

se premo il pulsante buttonup si accende il led e si spegne dopo timeup

se ripremo il pulsante entro il tempo timeup il led si dovrebbe spegnere ma non avviene perchè il timeup lo tiene acceso. dovrei interrompere il ciclo del timeup

#define releup 4 // definisce i pin per il controllo dei rele
  
  int buttonup = 2;
  int timeup = 5000;  //definisce il tempo di risalita della tapparella
  int val = 0;
   
  void setup() {
  Serial.begin(9600);
  pinMode( buttonup, INPUT );
  pinMode( releup,OUTPUT );
  
  }
    
  void loop() {
  val = digitalRead(buttonup); // legge il valore dell'input e lo conserva  
  if (val == HIGH) { // controlla che l'input sia HIGH (pulsante premuto)  
  digitalWrite(releup, HIGH);        // attiva il relé di salita
  delay(timeup);     //aspetta il finecorsa
   
}
  if (releup, HIGH)
  val = digitalRead(buttonup); // legge il valore dell'input e lo conserva
  digitalWrite(releup, LOW);   
  
 }