74HC595 et 4 digit 7 segment création horloge

oui la photorésistance a pour but de faire varier la luminosité.
l'afficheur est un afficheur a anode commune. ne serait pas cette partie qui est fausse car faite pour un afficheur a cathode?

// Describe each digit in terms of display segments
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
const byte numbers[10] = {
  0b00000011,
  0b10011111,
  0b00100101,
  0b00001101,
  0b10011001,
  0b01001001,
  0b01000001,
  0b00011111,
  0b00000001,
  0b00001001,

j'ai tenter de modifier les délai pour voir ce qui se passait et a ce moment j'ai vue que tous les digit affichait la même chose mais l'un deux a chaque fois avait une intensité moins élevé.

analogWrite(D1, valphotoresistance);
delay(2);
analogWrite(D1, 0);
shiftIt(numbers[uniheure]);
analogWrite(D2, valphotoresistance);
delay(2);
analogWrite(D2, 0);
shiftIt(numbers[dizmins]);
analogWrite(D3, valphotoresistance);
delay(2);
analogWrite(D3, 0);
shiftIt(numbers[unimins]);
analogWrite(D4, valphotoresistance);
delay(2);
analogWrite(D4, 0);