Bonjour,
Je suis en train de programmer un Atmel328 et j'ai un problème avec les 2 " digitalWrite " dans mon Else.
La tempo est réglée sur 2 secondes , si " TensionSecteurUpState " ne dépasse pas 2 secondes tout va bien.
Sauf que si " TensionSecteurUpState " reste à l'etat Low plus de secondes, les 2 digitalWrite " SwitchTelecUp " et " LedUp " dans mon else resteront à l'état haut durant toute cette durée.
Je cherche uns solution pour que ces 2 sorties ne restent jamais à l'état haut plus de 2 secondes.
Merci pour votre aide.
Cordialement
Voici le code pour mieux vous expliquer mon problème :
Code:void loop() { // Lire la presence de 230v montée (TensionSecteurUp) : TensionSecteurUpState = digitalRead(TensionSecteurUp); // Si il y a 230v montée (TensionSecteurUp), Si TensionSecteurUpState est low : if (TensionSecteurUpState == LOW) { // Alors on active la temporisation tempoActive = 1; tempoDepart = millis(); } // Si la temporisation est active, if ( tempoActive ) { // Et si il s'est écoulé 2 secondes, if ( ( millis() - tempoDepart ) >= 2000 ) { // Telecommande et led off : digitalWrite(SwitchTelecUp, LOW); digitalWrite(LedUp, LOW); digitalWrite(SwitchTelecStop, HIGH); digitalWrite(LedStop, HIGH); delay (2000); digitalWrite(LedStop, LOW); digitalWrite(SwitchTelecStop, LOW); // Et on désactive la temporisation pour ne pas afficher ce message une seconde fois tempoActive = 0; } // Sinon else { // Telecommande et led on : digitalWrite(SwitchTelecUp, HIGH); digitalWrite(LedUp, HIGH); } }
-----