 
   // Calcul du pourcentage du cycle d’attention
   // 2 * π * 16 / 86400 = 0.0011635528
-  double cycle = 100.0 * 0.5 * ( 1.0 + cos( ( double )( frac16eJour ) * 0.0011635528 ) );
-
-  // Conversion de “frac16eJour” en pixels
-  // Les valeurs de la 1ère moitié du cycle correspondent à la partie droite du cosinus.
-  // Les valeurs de la 2e moitié du cycle correspondent à la partie gauche du cosinus.
+  double cycleAtt = 100.0 * 0.5 * ( 1.0 + cos( ( double )( frac16eJour ) * 0.0011635528 ) );
+
+  // Conversion de “frac16eJour” en pixels.
+  // Le cosinus est affiché avec un déphasage d’une demi-période, donc
+  // les valeurs de la 1ère moitié du cycle correspondent à la partie droite du cosinus et
+  // les valeurs de la 2e moitié du cycle correspondent à la partie gauche du cosinus.
   // Le code ci-dessous permute les deux moitiés pour qu’elles s’affichent du bon côté.
   int16_t frac16eJourPx;
   if( frac16eJour < 5400/2 )


#define avecSerial false

// “heureAttentionMax = 4500” correspond à 7 h 15,
// car   7:15 = 26100 s
// et    26100 % 5400 = 4500 s
// où 5400 est le nombre de secondes dans 1 h 30
const long heureAttentionMax = 4500;
const byte displayWidth = 128;
static const unsigned char cosinus_cmap[ displayWidth ] PROGMEM =


  // Préparation de l’affichage du pourcentage du cycle
  display.setTextSize( 2 );
  if( cycleAtt < 0.01 )
    { display.setCursor( 53, 21 ); display.print( cycleAtt, 0 ); }
  else if( cycleAtt < 10 )
    { display.setCursor( 34, 21 ); display.print( cycleAtt, 2 ); }
  else if( cycleAtt < 99.5 )
    { display.setCursor( 34, 21 ); display.print( cycleAtt, 1 ); }
  else
    { display.setCursor( 42, 21 ); display.print( cycleAtt, 0 ); }
  display.print( char( 37 ) ); // signe %

  // Préparation de l’affichage de la courbe du cycle
