// ##################################### // # HORLOGE DES OURSONS # // ##################################### // # Guy Magli 31.08.2020 # // ##################################### // # Conception, cablages # // # mises a jour, # // # contact... # // # www.magli.fr # // ###################################### // // Cette horloge est destinee a Marite // // Afin d'eviter les problemes d'affichage et d'impression les signes diacritiques // ont ete retires des commentaires et des chaines de caracteres. // // ! ======================== ! // ! Librairies et parametres ! // ! ======================== ! // #include // Pour utilisation de l'horloge RTC #include // Pour la communication avec un peripherique #include //librairie du driver du 7 segments // // ! ================================================= ! // ! VARIABLES GLOBALES, CONSTANTES ET INITIALISATIONS ! // ! ================================================= ! // // : --------------- : // : Pour les heures : // : --------------- : // RTC_DS1307 RTC; // Constante pour le module horloge DateTime now; int iHeures = 0; // Nombre d'heures. int iHeuresD = 0; // Dizaines. int iHeuresU = 0; // Unites. int iMinutes = 0; // Idem pour les minutes. int iMinutesD = 0; // Dizaines. int iMinutesU = 0; // Unites. // // // : ----------------------- : // : Pour l'afficheur a LEDS : // : ----------------------- : // TM1637Display display(2, 3); // // ! ===== ! // ! Setup ! // ! ===== ! // void setup() { Serial.begin(9600); // // Pour l'ecran a LEDS. // display.clear(); display.setBrightness(7); // // Initialisation de l'horloge // Wire.begin(); RTC.begin(); //RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); // } // // // ! ==== ! // ! Loop ! // ! ==== ! // void loop() { // // On affiche la date et l'heure sur les LEDS. // afficheHeureLEDS(); } // // ! ========== ! // ! Procedures ! // ! ========== ! // // : ----------------- : // : Lit le module RTC : // : ----------------- : // void litLaDateEtLHeure() { now = RTC.now(); // On lit l'heure complete et on extrait iHeures = now.hour(); // l'heure, if (iHeures >= 10) { iHeuresD = iHeures / 10; iHeuresU = iHeures - (iHeuresD * 10); } else { iHeuresD = 0; iHeuresU = iHeures; } iMinutes = now.minute(); // les minutes, if (iMinutes >= 10) { iMinutesD = iMinutes / 10; iMinutesU = iMinutes - (iMinutesD * 10); } else { iMinutesD = 0; iMinutesU = iMinutes; } } // // // : ------------------------------ : // : Affiche l'heure et les minutes : // : ------------------------------ : // // HH:MN // void afficheHeureLEDS() { litLaDateEtLHeure(); // Affiche les dizaines et les unites des heures et des minutes sur les digits idoines HH:MN display.showNumberDec(iHeuresD, false, 1, 0); display.showNumberDec(iHeuresU, false, 1, 1); display.showNumberDec(iMinutesD, false, 1, 2); display.showNumberDec(iMinutesU, false, 1, 3); delay(6000); }