Un tableau élastique?

Le code qui fonctionne:

// un super mega code trop genial
// pour enregister des positions avec un servo
// et les lui faire lire tout seul comme un grand
// merci aux copains du forum Arduinno France
// kammo - 14/04/2018


#include <Servo.h>  //on lance la bibliotheque
Servo servo; //on declare le servo
const byte ServoPin = 5; // servo sur pin 5

const byte LedPin = 13; //  //on place une led sur D13
const byte RecordPin = 2; //bouton Record sur pin D0
const byte PlayPin = 3; //bouton play sur pin D1

byte Pos = 0; //variable compteur
const byte tailleMax = 10;
unsigned int tableau[tailleMax];  //tableau de stockage des positions

int AnalogLeft;   //calibre la position à fond à gauche
int AnalogRight;  //calibre la position à fond à droite


// le signal analogique du servo est lu sur le pinA0

void setup() {
  Serial.begin(115200);  //demarrage port serie
  pinMode (LedPin, OUTPUT);  //la led est une sortie
  pinMode (RecordPin, INPUT_PULLUP);  // bouton
  pinMode (PlayPin, INPUT_PULLUP);    // bouton
  digitalWrite(ServoPin, LOW);

  //calibration
  Serial.println("Calibration");
  digitalWrite(LedPin, HIGH); //led on
  servo.attach(5); // attache le servo

  Serial.println("Position 0");
  servo.write(0);  //servo en position digitale 0, à 0 il est à droite Oo
  delay(1000);
  AnalogRight = analogRead(A0); //calibre position 0

  Serial.println("position 180");
  servo.write(180); //servo en position 180, il est à donf à gauche
  delay(1000);
  AnalogLeft = analogRead(A0); //calibre 180
  digitalWrite(LedPin, LOW); //led off
  servo.detach();  //on met le servo tout mou


}

void loop() {
  //détecter l'utilisation d'un bouton

  //bouton RECORD
  if (digitalRead(RecordPin) == HIGH) { //Si bouton REC appuyé, j'ai vérifié, c'est bien HIGH
    Flash(5);  //fonction Flash, 5 flash, va servir aussi de debounce :-)
    PosRec();
  }

  //bouton PLAY
  if (digitalRead(PlayPin) == HIGH) { //Si bouton PLAY appuyé
    Flash(1);  //fonction Flash, une fois, va servir aussi de debounce :-)
    PosPlay();
  }

}


void Debordement() { //si on deborde du tableau
  Flash(10); //on clignote comme des foufous
  Pos = tailleMax - 1; //rétablir une valeur max à Pos
  Serial.println("débordement de tableau");
  Flash(10);
  PosPlay();  //on lance la lecture
}

void PosRec() { //fonction pour enregistrer des positions
  digitalWrite(LedPin, HIGH); //allume la led
  Serial.println("Record");
  tableau[Pos] = analogRead(A0);  //stocke le signal dans l'emplacement i du tableau position
  Serial.println(Pos);
  Serial.println(tableau[Pos]);
  Pos++;
  if (Pos >= tailleMax) Debordement();
  digitalWrite(LedPin, LOW); //eteint la led
}

void PosPlay() { // fonction pour lire les données du tableau
  servo.attach(ServoPin);  //on attache le servo au pin5
  Serial.println("Play");
  digitalWrite(LedPin, HIGH); //allume led
  delay(50);  //pause
  digitalWrite(LedPin, LOW); //eteint led

  for (byte i = 0; i < Pos; i++) { //boucle pour lire toutes les valeurs existantes du tableau
    //unsigned int PosEntier = (tableau[i] / 1.993) + 95.133; //on convertir le signal A0 en signal  digital
    int ValA0Brute = tableau[i];
    int PosEntier = map (ValA0Brute, AnalogLeft , AnalogRight , 180 , 0);  //hop on transforme les signaux A0 en signaux digitaux
    servo.write(PosEntier);  //on commande le servo
    Flash(1);
    delay(1000);
    Serial.print(i);
    Serial.print(F("\t"));
    Serial.println(PosEntier);
  }
  Flash(2);
  servo.detach();
}

void Flash(int N) {  //fait N flashs
  for (int i = 0; i < N; i++) {
    digitalWrite(LedPin, HIGH);
    delay(5);
    digitalWrite(LedPin, LOW);
    delay(95);
  }
}

C'est qui l'patron?