         if ( resultat == 3)
         {
           temps_debut = micros();
-           // boucle de test timeout entre 2 donnée de bit
+          // boucle de test timeout entre 2 donnée de bit
           do
           {
             valeur_d0 = digitalRead (DATA_0); // on lit l'état de data 0 sur le lecteur

              Serial.print("!00!"); // on envoie le code erreur !00! timeout  sur data 0
              //Serial.println( String (temps_timeout));
            }
          }while (valeur_d0 == 0);
        } 
        
        //----------------------------------------
        // on lit une valeur de  bit de donnée à 1
        //----------------------------------------

//-----------------------------
// début du programme principal
//-----------------------------
void loop() {

  valeur_d0 = digitalRead (DATA_0);
  valeur_d1 = digitalRead (DATA_1);
  resultat = valeur_d0 + valeur_d1;

  // On vérifie s'il y a au moins un data à 0
  if ( resultat < 2 )
  {
    string bin_badge = lecture_badge();
  }

} // fin de la boucle Void()


//-----------------------------
// début des fonctions
//-----------------------------

void lecture_badge() {
  valeur_d0 = digitalRead (DATA_0);
  valeur_d1 = digitalRead (DATA_1);
  resultat = valeur_d0 + valeur_d1;

  // On vérifie s'il y a au moins un data à 0
  if ( resultat < 2 )
  {
    // on vérifie s'il y a au moins un data à 1
    if (resultat > 0 )
    {
      finlecture = 1; /* le test de data 0 et 1 est ok on initialise la variable
                      finlecture pour lancer la boucle "do" "début lecture badge" */
      //Serial.print ( "-lecture du badge-\n" );
      //---------------------------
      // boucle début lecture badge
      //---------------------------
      do
      {
        valeur_d0 = digitalRead (DATA_0); // on lit l'état de data 0 sur le lecteur
        valeur_d1 = digitalRead (DATA_1); // on lit l'état de data 1 sur le lecteur
        resultat = valeur_d0 + (valeur_d1 * 2);
        /* resultat=3 > pas de valeur de bit envoyé
        resultat=2 > valeur de bit 0 envoyé
        resultat=1 > valeur de bit 1 envoyé
        */

        //---------------------------------------
        // on lit une valeur de bit de donnée à 0
        //---------------------------------------
        if ( resultat == 2 )
        {
          Serial.print("0"); // on envoie la nouvelle valeur de bit 0
          temps_debut = micros(); // top chrono temps référent
          // boucle de test timeout de data 0
