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

Je me permet encore de te solliciter :wink:

J'ai bien adapté ton code et cela fonctionne très bien.. j'ai juste ajouté un 2° appuie pendant le mode auto afin d'arreter la fonction auto (au cas ou..)

mais le break ne semble pas etre la solution.. c'est mes yeux ou bien ?

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
        while((millis()-tempo)< dureMoteur1)          //tant qu'il ne s'est pas écoule durée Moteur 1
          {
            FunctionMarcheAuto();

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

  
   
}

suis enore preneur de ton avis !