[AIDE] - possiblité d'un seul bouton pour manu et / ou auto ?

boolean flag_arret=false;
byte buttonPin = 4;
byte ledPin = 13;
unsigned long tempo = 0;
int dureMoteur1 = 4000;

void setup() 
{
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Les croquettes aux touftoufs !");
Serial.println("V 1.0!");
Serial.println();
digitalWrite(ledPin,LOW);
}

///////////////////////////
// Fonctions du programme
//////////////////////////

void FunctionMarcheManu()
{
  digitalWrite(ledPin,HIGH) ;
  Serial.println("Fonction moteur Manu");//on allume le moteur
}


void FunctionMarcheAuto()
{
  digitalWrite(ledPin,HIGH) ;
  Serial.println("Fonction moteur Auto");//on allume le moteur
}


//////////
// boucle
//////////

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)>500 )         //si la duree est > que 500 ms
            { 
              
              FunctionMarcheManu();
              
            } //marche manuelle 
        }                                     //dès que le BP est relache
      digitalWrite(ledPin,LOW);               //on stoppe le moteur
      Serial.println("Fin de Fonction moteur Manu");
                                              
    if ((millis()-tempo)<500 )               //si la durée était < 500ms
      {                                        
        tempo=millis();                       //on reinitialise la tempo
        flag_arret=false;
        while((millis()-tempo)< dureMoteur1)          //tant qu'il ne s'est pas écoule durée Moteur 1
          {
            if (flag_arret==true){digitalWrite(ledPin,LOW) ;}
            else{FunctionMarcheAuto();}

             // stop si 2°eme appuye sur le bouton
              if (digitalRead(buttonPin) == LOW)
                  {
                  flag_arret=true;
                  } 
          }
        digitalWrite(ledPin,LOW) ;            //puis on le stoppe
        Serial.println("Fin de Fonction moteur auto");
      }         
   }
}