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);
}