Code Arduino pour horloge 7 segments

Bonjour c'est mon premier post donc veuiller m'excuser si je fais qu'elle erreur primordiale au bon fonctionnement du site.

Donc si je fais ce poste aujourd’hui c'est par apport a un montage que je fais actuellement avec des 4 afficheur 7 segment tous séparer un arduino mega et qu'elle que résistance approprier, je voudrais me faire une horloge mais je n'est pas la moindre idée du code qu'il me faut.

Ah ah ah.... c'est un bon sujet pour commencer!

Je peux que te renvoyé vers google qui propose des programmes tout fait!

Et que tu adapteras à ta convenance, c'est comme cela que l'on apprend!

Je me contenterai de te dire de lire le message "communautaire" de Bienvenue.
Tu y trouvera des conseils sur " comment faire" pour obtenir les réponses les plus appropriées.

Tu y trouvera aussi un lien vers le tuto d'Eskimon qui est ce qu'il se fait de mieux pour débuter.

Salut,
Voici un minuteur minute et secondes que j'ai réussi à faire.
Je suis aussi débutant sur arduino.
J'utilise les sortie de 2à13 de mon arduino uno.
Malgré la précision de la fréquence de mon arduino, j'arrive à une précision de 2 msec après environ 40 heures.

#define c1 10  // anode Commun 1 premier digit depuis la droite
#define c2 11  // anode Commun 2
#define c3 12  // anode Commun 3
#define c4 13  // anode Commun 3
#define led1 2  // segment a
#define led2 3  // segment b
#define led3 4  // segment c
#define led4 5  // segment d
#define led5 6  // segment e
#define led6 7  // segment f
#define led7 8  // segment g
#define led8 9  // segment point

int digits[10][7] = //tableau des chiffres de 0 à 9 des segments à allumer
//si cathod commun inverser la valeur des segments
{ { 0, 0, 0, 0, 0, 0, 1 },   // = 0
  { 1, 0, 0, 1, 1, 1, 1 },   // = 1
  { 0, 0, 1, 0, 0, 1, 0 },   // = 2
  { 0, 0, 0, 0, 1, 1, 0 },   // = 3
  { 1, 0, 0, 1, 1, 0, 0 },   // = 4
  { 0, 1, 0, 0, 1, 0, 0 },   // = 5
  { 0, 1, 0, 0, 0, 0, 0 },   // = 6
  { 0, 0, 0, 1, 1, 1, 1 },   // = 7
  { 0, 0, 0, 0, 0, 0, 0 },   // = 8
  { 0, 0, 0, 0, 1, 0, 0 }    // = 9
};

// d est le digit a afficher: 0..9
void digit(int d) // d canche avec éa fonction Affiche
{
  digitalWrite(led1, digits[d][0]);
  digitalWrite(led2, digits[d][1]);
  digitalWrite(led3, digits[d][2]);
  digitalWrite(led4, digits[d][3]);
  digitalWrite(led5, digits[d][4]);
  digitalWrite(led6, digits[d][5]);
  digitalWrite(led7, digits[d][6]);
}

// fonction qui affiche les quatre digits en alternance entre les unités et les decimal
void Affiche(int dec, int unit, int minute, int dminute) 
{
  digit(unit); // Affiche les secondes
  digitalWrite(led8, HIGH);
  digitalWrite(c1, HIGH);
  delay(5);
  digitalWrite(c1, LOW);
  digit(dec); // Affiche les dizaines de seconde
  digitalWrite(c2, HIGH);
  delay(5);
  digitalWrite(c2, LOW);
  digit(minute); // Affiche les minutes
  digitalWrite(led8, LOW); //alume le point séparation min sec
  digitalWrite(c3, HIGH);
  delay (5);
  digitalWrite(led8, HIGH);
 digitalWrite(c3, LOW);
 digit(dminute); // affiche les dizaine de minute
  digitalWrite(c4, HIGH);
  delay (5);
 digitalWrite(c4, LOW);
}
unsigned long duree;  // controle des secondes
unsigned long durees; // controle de la durée du cicle de 60min. 

void setup() {

Serial.begin(9600); 
int i=2;
  for(i=2;i<14;i++)
  {
   pinMode(i,OUTPUT);
   digitalWrite(i,LOW);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
int temp=0;
durees=millis(); 
    for(temp=0;temp<3600;temp++)   // incrément secondes
{
     
duree=millis();
int secs=temp%60; //calcul le soldes des secondes de la valeur "temp"
int mins=temp/60; //calcul les minutes de la valeur "temp"
int secunit=secs%10;     // calcul unités de seconde
int secdiz=(secs/10)%10; // calcul dizaines de seconde
int minunit=mins%10;     // calcul unités de minute
int mindiz=(mins/10)%10; // calcul dizaines de minute
while ( (millis() - duree) < 991) // durée de la seconde
Affiche(secunit,secdiz, minunit, mindiz);  // affichage pendans une seconde.
delayMicroseconds(6939); //ajustement de la durée de la seconde

}
Serial.println (millis()-durees); //affiche le temps réel après 60min.
}

Bonne chance