Bateau autonome Coller aux parois d'une piscine 1/2

Tu as vu l'erreur ici ?

  long TempsEcoule = millis() - startMillis;
  long TempsEcouleAvantPause = millis() - startMillis; // <-- c'est startMillisPause ici !

Pour les delay : ton code, tel qu'il est écrit (et que je le comprends), fais le test ObsticalAhead == true. Si oui, il attends 3 secondes, donc il continue sur sa lancée (je ne sais pas laquelle) pendant ces 3 secondes. Ensuite, il oriente le servo.

Si tu veux qu'il tourne pendant 3 secondes, il faut orienter le servo d'abord :

      // là on regarde la droite
      if (ObsticalAhead == true) { // si ObstacleDevant est vrai donc si le coté gauche détecté, on s'y dirige
        nextStep = TurnRight;
        Serial.println("Next step is TurnRight");
    //  delay (3000);  //  le bateau va dépasser l'angle saillant de la piscine
    //  on le force à continuer à tourner encore pendant 3 sec
    //  pour le recoller au bord
        myservo.write(90);//RAZ de la position du servo
        delay(3000);
      }