          
 void loop ()
 {
-	mySCoop.sleep(1);
-	if (millis()>2000+temp)
-		{
-			temp=millis();
-		}
-
-}
-
+    mySCoop.sleep(1);
+    if (millis()>2000+temp)
+        {
+            temp=millis();
+        }
+
+}
+

          }
   moyenne=moyenne/(tailleTab);
   return moyenne;
                            
}

long moyenne (int tailleTab, int tab [])

{
  byte j;
  long moyenne (0);
  for (j=0;j<tailleTab;j++)
         {
              moyenne=moyenne+tab[j];
          }
   moyenne=moyenne/(tailleTab);
   return moyenne;
                            
}

defineTimerRun(rafraichirAffichage,800)
 //ne pas mettre ce timer a une valeur trop faible pour éviter le rebond
 //lors de l'apuui bouton (ne pas compter des apuis multiple pour un seul appuie voulu)   
{  
	 //Serial.println("affichagePP");
	  affichage.refreshAfficheur();
}

defineTimerRun(surveilleBouton,40)
//ne pas mettre ce timer a une valeur trop faible pour éviter le rebond lors de
//l'apuui bouton (ne pas compter des apuis multiple pour un seul appuie voulu)   
{  
	//Serial.println("bouton");
	boutonP.refreshBouton();
}

defineTimerRun(surveilleServo,100) //conserver 100 ou modifier le "*0.1" dans méthode appliqueobjectif du Servo
{  
	 //Serial.println("Servo");
	 //Serial.println("potence.
	 leServo.appliqueObjectif();
	 //potence.appliqueObjectif();
}

defineTimerRun(surveillePotar,80)

//afaire : faire un réinit propre car si on fait 2 étalonnage à la suite ca marche pas
//a Faire : lire l'autre voie de la roue codeuse pour detectr les rebond du servo

//a faire tester repetabilité avec tempo à 100 et à 200.
Avec 100 on a des comportement louche lors des cycles de fin 
(le servo bouge apeine sur certains des cycle a la palce d'un grand débatement)
// a faire : comprendre pourquoi les vitesses sont pas les memes selon les modes.


#*******************************************************************************
 J.Soranzo
    16/12/2015 gestion sous git + github
    https://github.com/gilles293/calibrateurServo.git
    nettoyage du code, j'ai craqué
*/ 
//------------------------------------------------------------------------------
//pour la suite faire moyenne pour mesure PWMIN et PWMMAX et virer 
//le calcul de la moyenne mesureimpulsion pour le remplacer par la méthode


#include <EEPROM.h>
#include <SCoop.h>
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <Servo.h>

//------------------------------------------------------------------------------
//Lib projet
#include "bouton.h"
#include "afficheur.h"
#include "servoTest.h"
#include "potar.h"

//------------------------------------------------------------------------------
#define DELTA 150
#define TEMPOSLEEP 800
//en ms le temps pour le servo de bouger d'un increment
//quand on fait les mesure à la roue codeuse

#define ERREURCOMPTAGE 15 //la tolérance de comptage avant que l'on estime que le servo est arrivé au bout
#define NBRCYCLE_AR 10 //nbre de cycle d'aller et retour pour la fin des mesure de caractérisation et nbr de cycle pour la mesure des PWMIN et PWMMAX
#define TEMPO_STAT 100 // tempo pour laisser le servo avancr lors des mesures
                       // statistique à la fin de la calibration
#define ADRESSE_EEPROM 42//position de leeprom ou la valeur de reglage de vitesse est stocké
#define VITESSEMAXSERVO 3500 // vitesse max d'un servo en microsecond de PWM par seconde
#define PINSERVO 5 // pin arduino ou est branché le servo

//------------------------------------------------------------------------------
// Etats de la machine d'état
enum {
        POTAR = 3,
        MILIEU = 4,
        USB = 1,
        ETALORSWEEP = 10,
        //REGPOTENCINVIT = 11,
        REGLPOTENC = 12,
        MESREFPULSE = 13,
        FINDMINMAX = 14,
        WAITCLIC = 15,
        DISPRESULT = 16,
        WAITCLIC2 = 17,
        //LECTURE_OU_ECRITURE_EEEPROM=18,
        SWEEPTOMIN = 2,
        SWEEPTOMAX = 20,
        VITESSE=22,
};

//------------------------------------------------------------------------------
//Variables globales
bouton boutonP(4);
afficheur affichage(0x20);
//int bonnePositionPotence;
