animation de matrice led 'compliqué'

j'ai reussi apres 36 test .. avec une annimation simple .. mais le code est long :confused:

...

const byte anim_1 = B11111000;

...

//---------------

      hora = hour();
      minuto = minute();
      unidadeHora = hora % 10;
      dezenaHora = hora / 10;
      unidadeMinuto = minuto % 10;
      dezenaMinuto = minuto / 10;
      /////////
      temp = 10 * (sensor.readTemperature());
      dezenaTemp = temp / 100;
      unidadeTemp = (temp/10) % 10;
      centmTemp = temp % 10;
      ////////
      umid = 10 * (sensor.readHumidity());
      dezenaUmid = umid / 100;
      unidadeUmid = (umid/10) % 10;
      centmUmid = umid % 10;
      ////////
      for (int i = 1; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,0,anim_1);
      delay(delayTime2);

      //-0
      for (int i = 2; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,1,anim_1);
      delay(delayTime2);
      lc.setRow(3,0,font2[dezenaTemp][0]);
      delay(delayTime2);      

      //-1
      for (int i = 3; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,2,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 1; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
      
      //-2
            for (int i = 4; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,3,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 2; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
      
      //-3      
      for (int i = 5; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,4,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 3; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
           
      //-4         
      for (int i = 6; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,5,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 4; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
           
      //-5   
      for (int i = 7; i < 8; i++)  
        {
          lc.setRow(3,i,font1[dezenaHora][i]);
        }
      delay(delayTime2);
      lc.setRow(3,6,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 5; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
        
      //-6
      lc.setRow(3,8,font1[dezenaHora][8]);
      delay(delayTime2); 
      lc.setRow(3,7,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 6; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
                
      //-7
      lc.setRow(3,8,anim_1);
      delay(delayTime2);
      for (int i = 0; i < 7; i++)  
        {
          lc.setRow(3,i,font2[dezenaTemp][i]);
        }
      delay(delayTime2);
      
       
      
//---------------

....

enfin ... je le garde quand même ... il m'a brûlé la tête !!!