Bonjour à tous ,
je bute actuellement sur un programme qui me paraissait simple , mais apparemment pas tant que ça
je voudrais , ''simplement " commander une led avec un bouton poussoir , mais avec 2 contraintes :
si j'appuie sur le BP , la led doit forcement s'allumer 2 secondes ( même si j'appuie sur le BP moins de 2 secondes )
et si j'appuie plus que 2 secondes , elle reste allumé évidement tant que j'appuie et doit s'éteindre aussitôt que j’arrête l'appuie sur le BP
j'en suis là pour l'instant , mais je ne vois pas où ça pèche >:(
const int BPoussoir = 8;
const int Led = 2;
unsigned long temps = 0;
int Etat = 0;
void setup()
{
pinMode(Led, OUTPUT);
pinMode(BPoussoir, INPUT_PULLUP);
}
void loop()
{
if (( digitalRead(BPoussoir) == LOW ) && ( Etat == 0 ))
{
temps = millis(); // on demarre le comptage
digitalWrite(Led,HIGH); // on active la sortie
}
if ((millis()-temps >= 2000) ) //
{
if (digitalRead(BPoussoir) == HIGH ) // Bp relaché
{
digitalWrite(Led,LOW);
Etat = 0 ;
}
if (digitalRead(BPoussoir) == LOW ) // on reste appuyé
{
digitalWrite(Led,HIGH);
Etat = 1 ;
}
}
delay(5);
}
merci d'avance pour votre aide