long i=0;   // variable pour la durée de la charge en us (10-6 s).
long somi=0;// variable pour la moyenne des temps tau.
int n=0;    // nombre de mesures par tau moyen.

void setup() {
  pinMode(11,OUTPUT); // broche 11 pour la charge et la décharge.
  Serial.begin(9600); // vitesse des données dans le port série.
  Serial.println("Nouvelle mesure : moyenne des 20 valeurs");
}
void loop() {
  digitalWrite(11,LOW);   // décharge du capteur capacitif.
  while(analogRead(A0)>5){ /*le capteur se décharge...*/ }
  digitalWrite(11,HIGH);  // charge du capteur capacitif.
  delayMicroseconds(i);   // durée de la charge du capteur.
  if(analogRead(A0)<647){ // test uc<0,632*E ? 
    i=i+1;         // si oui alors on augmente la durée de charge de 1 us.    
    }
  else{               // si non alors la mesure de tau de n°n est stockée.
    Serial.print(".");// affichage d'un point (= message d'attente .... ). 
    n++;              // passage à la mesure suivante.
    somi=somi+i;      // ajout de la mesure à la somme des mesures.
    i=0;              // réinitialisation de la variable i.    
    if(n==20) {              // * affichage sur une  
      Serial.print(" C = "); // * même ligne de la 
      Serial.print(somi/n);  // * moyenne de 20 mesures
      Serial.println(" pF"); // * en pF. 
      Serial.println("Nouvelle mesure : moyenne des 20 valeurs"); 
      delay(2000);          // pause de 2s entre chaque série de mesures.      
      somi=0; n=0;          // réinitialisation des variables.
    }            
  }  
}
