vous avez raison.
j'utilise des 74ch595 et MOFSET dans mon circuit d'affichage
un exemple du code qui contrôle l'affichage :
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 8); //Set DISPLAY 1 (top view from left to right)
shiftOut(dataPin, clockPin, LSBFIRST, num[dezenaHora]); //Set the Hour (ten)
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no digit
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no segment
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 4); //Set DISPLAY 2
shiftOut(dataPin, clockPin, LSBFIRST, num[unidadeHora]); //Set the Hour (unit)
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no digit
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no segment
digitalWrite(latchPin, HIGH);
//-------------------
j'ai testé en ajoutant des delay entre les afficheur ..
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 8); //Set DISPLAY 1 (top view from left to right)
shiftOut(dataPin, clockPin, LSBFIRST, num[dezenaHora]); //Set the Hour (ten)
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no digit
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no segment
digitalWrite(latchPin, HIGH);
delayMicroseconds(affpause);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 4); //Set DISPLAY 2
shiftOut(dataPin, clockPin, LSBFIRST, num[unidadeHora]); //Set the Hour (unit)
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no digit
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no segment
digitalWrite(latchPin, HIGH);
delayMicroseconds(affpause);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 2); //Set DISPLAY 3
shiftOut(dataPin, clockPin, LSBFIRST, num[dezenaMinuto]); //Set the Minute (ten)
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no digit
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no segment
digitalWrite(latchPin, HIGH);
delayMicroseconds(affpause);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 1); //Set DISPLAY 4
shiftOut(dataPin, clockPin, LSBFIRST, num[unidadeMinuto]); //Set the Minute (unit)
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no digit
shiftOut(dataPin, clockPin, LSBFIRST, 0); //Set no segment
digitalWrite(latchPin, HIGH);
delayMicroseconds(affpause);
mais le résultat c'est que l'affichage clignote .. et c'est pas l'effet demander ..