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

Merci pour l'astuce.

J'ai une erreur avec startMillisPause que je ne comprends pas , j'ai essayer de refaire à partir du code du bateau.

Arduino : 1.8.5 (Windows 10), Carte : "Arduino/Genuino Uno"

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\Voiture_OK_BATEAU\Voiture_OK_BATEAU.ino: In function 'void pause()':

Voiture_OK_BATEAU:137: error: 'startMillisPause' was not declared in this scope

   startMillisPause = millis();  // <-- remise à  0 du second chrono ici

   ^

Voiture_OK_BATEAU:138: error: 'startMillis' was not declared in this scope

   startMillis = millis(); //       <-- remise à  0 du premier chrono

   ^

exit status 1
'startMillisPause' was not declared in this scope

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
void loop() {

  // Variable globale pour faire le décompte du temps
  unsigned long startMillis; // à 0 par défaut pour le chrono de checkDirection()( MVT normal)  suivi de checkDirectionVersBordure()( mvt vers les bords)
  unsigned long startMillisPause ; // à 0 par défaut  pour le chrono des 15 mn


  long TempsEcoule = millis() - startMillis;
  long TempsEcouleAvantPause = millis() - startMillis;

  // on regarde le temps, puis on choisit la direction et on roule
  if (TempsEcoule < 600000) {  // 10 mn * 60 * 1 000
    checkDirection(); 
    drive();
  }
  else if (TempsEcoule < 1200000) { // 20 mn * 60 * 1 000
    checkDirectionVersBordure(); 
    drive();
  }
  else if (TempsEcouleAvantPause > 1800000) {   // 30 mn * 60 * 1 000 après 30 mn de fonctionnement mise en pause de 10 mn
    pause(); 
  }
  else startMillis = millis();
  delay (100);
}

void pause () { // utilisation du second chrono pour arrété au bout de 30 mn
  delay (600000);  //    10 mn d'attente soit  10 *60*1000(milli secondes)
  startMillisPause = millis();  // <-- remise à 0 du second chrono ici
  startMillis = millis(); //       <-- remise à 0 du premier chrono
}

une autre question.
Je veux que le bateau continue de tourner pendant 3 sec même s'il ne détecte rien
Mais dans le code j'ai déjà un delay de 0.4 sec pour le servo.
Dans quel ordre écrire les 2 dealy ( 1 pour les moteurs, 1 pour le servo ) ?

      // 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(400);
      }