Petit rappel : si nous comparons le courant électrique à un fleuve :
La Tension en volt -> c'est la largeur d'un fleuve.
l'Intensité en ampère -> c'est la vitesse du passage de l'eau 
Pourquoi sommes nous limités à utiliser simultanément que 2à3 servos standards ou 6à8 mini servos sur nos cartes arduino reliées par usb à un pc, tout simplement à cause de l' intensité (vitesse de passage)   du courant délivrée par la broche 5V de nos cartes arduino, soit 500mA. 
Si divers capteurs ainsi que  les servos pompent trop d' intensité, la carte ne dispose plus assez d' intensité pour fonctionner, et plante.
Comment l' astuce fonctionne :
les cartes arduino sont livrées avec  la library Servo
qui permet d' utiliser très simplement des servomoteurs de modélisme.  Un exemple d' utilisation:
 met le servo sous tension
 réalise un mouvement  (par exemple place le palonnier à 180 °)
 attend un peu (le temps de faire le mouvement)
 débranche le servo .
Si vous voulez ralentir la vitesse des servo  il faut réaliser des petites pauses entre chaque mouvements du servo par exemple  :
initialisation
	met le servo sous tension
         place le palonnier à 0 °
         attend un peu (le temps de faire le mouvement)
programme principal (à exécuter en boucle) .
	Si  la position du palonnier  n' est pas à 180° :
		rajoute 1 à la position du servo 1.
		Fait une petite pause  de 0,4 secondes.
Il est également possible d' écrire l' algorithme du programme principal ainsi:
en créant une variable qui enregistre le temps écoulé depuis le début du programme
la variable lngTemps ,  ainsi le programme n' est pas bloqué en  pause à attendre que le mouvement de 1° soit réalisé, il continu d' exécuter le programme principal en boucle.
Programme principal (à exécuter en boucle) .
	Si  lngTemps  + 0,4 secondes < temps
		Si  la position du palonnier  n' est pas à 180° :
			rajoute 1 à la position du servo 1.
		lngTemps  = temps 
en ajoutant à notre programme un booléen (un type de variable à 2 valeurs possibles vrai ou faux) , la variable 'bolutilisationduservo1 ' il est possible d' utiliser le temps d' inaction du servomoteur 1  pour bouger un autre servomoteur. 
Programme principal (à executer en boucle) .
	Si  lngTemps  + 0,2 secondes < temps  
		si bolutilisationduservo1 == vrai
			debrancher le servo 2
			brancher le servo 1
			si  la position du palonnier  du servo 1  n' est pas à 180° :
				rajoute 1 à la position du servo 1.
			bolutilisationduservo1 = faux
		ou
			debrancher le servo 1
			brancher le servo 2
			si  la position du palonnier  du servo 2  n' est pas à 180° :
				rajoute 1 à la position du servo 2.
 			bolutilisationduservo1 = vrai
		lngTemps  = temps 
Voilà le principe de l'astuce :
un servomoteur est débranché pendant que l'autre effectue un mouvement de 1°.
Les 2 servomoteurs semblent bouger ensemble et le mouvement reste fluide.
Ainsi, l'intensité sollicitée pour assurer le fonctionnement des 2 servomoteurs est divisée par 2.
voici un extrait du programme de Margot, ou 11 servomoteurs semblent bouger ensemble sans que la carte plante.
//*****************************************************************************************
//*********************************** parler  **********************************************
//*****************************************************************************************
void proParler()
{
    if (lngChronoMicroPauseMachoire + intVitesseMachoire < millis())
    {
      proMouvement_Machoire();
      lngChronoMicroPauseMachoire = millis();
    }    
  if (lngChronoMicroPause_Cou_Yeux + intVitesseCou< millis())
  {
    if (boolCouActifs == true)
    {
      Servo_EyeR_Lid1.detach();
      Servo_EyeR_Lid2.detach();
      Servo_EyeL_Lid1.detach();
      Servo_EyeL_Lid2.detach();
      Servo_EyeR_GD.detach();
      Servo_EyeL_GD.detach();
      Servo_EyeR_HB.detach();
      Servo_EyeL_HB.detach();
      ServoGauche.attach(7);
      ServoDroit.attach(8);
      Servo_Machoire.attach(25);
      proMouvement_cou();
      boolCouActifs = false;
    }
    else
    {
      ServoGauche.detach();
      ServoDroit.detach();
      Servo_Machoire.detach();
      if(int_Etat_Clignement == 0)
      {
          Servo_EyeR_Lid1.attach(11);
          Servo_EyeR_Lid2.attach(12);
          Servo_EyeL_Lid1.attach(23);
          Servo_EyeL_Lid2.attach(24);
          Servo_EyeR_GD.attach(9);
          Servo_EyeL_GD.attach(13);
          Servo_EyeR_HB.attach(10);
          Servo_EyeL_HB.attach(22);
          proMouvement_Yeux();
      }
      boolCouActifs = true;
    }
    lngChronoMicroPause_Cou_Yeux = millis();
  }
  if (lngChronoMicroPausePaupieres + intVitessePaupiere < millis())
  {
    proClignerYeux();
  }
}