long i=0; // variable pour la durée de la charge en us (10-6 s). int k=100; // variable pour la durée de charge. 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. } void loop() { digitalWrite(11,LOW); // décharge du capteur capacitif. while(analogRead(A0)>1){ /*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+k; // si oui alors on augmente la durée de charge de k us. } else if(k==100){ // si non alors on diminue la durée de charge de i=i-k; // k=100 us pour approcher la durée de charge k=10; // à k=10 us près. } else if(k==10){ // si uc>=0,632*E et si k=10 us alors on on diminue la i=i-10; // durée de charge de k=10 us pour approcher la durée k=1; // de charge à la microseconde près. if(i<0)i=0; // tau ne peut pas être négatif, au minimum nul. } else{ // la mesure de tau de n°n est stockée. n++; // on passe à la mesure suivante n°n+1. somi=somi+i; // on fait la somme des mesures de tau. Serial.print(i); Serial.print("/"); // affiche les valeurs mesurées. i=0; k=100; if(n==20){// affichage de la moyenne des temps caractéristiques. Serial.println(); Serial.print("Moyenne des 20 valeurs : tmoy="); Serial.print(somi/n); Serial.println(" us"); /* ...... Ecrire ici les lignes ...... * ...... de code pour afficher ...... * ...... le volume mesuré, calculé ...... * ...... à partir du modèle obtenu ...... * ...... avec le tableur grapheur ......*/ somi=0; n=0; // réinitialisation des variables. delay(2000); // pause de 2s pour la lecture. } } }