je t'ai préparé ce code
byte buttonPin = 4;
byte ledPin = 13;
unsigned long tempo = 0;
void setup()
{
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin,LOW);
}
void loop()
{
if (digitalRead(buttonPin) == LOW) //si BP appuye
{
delay(200); //on filtre les rebonds
tempo=millis(); //on demarre la tempo
while (digitalRead(buttonPin) == LOW) //tant que le BP est appuye
{ //on mesure la durée de l'appui
if ((millis()-tempo)>1000 ) //si la duree est > que 1000 ms
{
digitalWrite(ledPin,HIGH) ; //on allume le moteur
} //marche manuelle
} //dès que le BP est relache
digitalWrite(ledPin,LOW); //on stoppe le moteur
if ((millis()-tempo)<1000 ) //si la durée était < 1000
{
tempo=millis(); //on reinitialise la tempo
while((millis()-tempo)<2000) //tant qu'il ne s'est pas écoule 5 secondes
{
digitalWrite(ledPin,HIGH) ; //on laisse le moteur allume pendant 5 secondes
}
digitalWrite(ledPin,LOW) ; //puis on le stoppe
}
}
}