Bonjour à tous,
Je débute avec Arduino et je rencontre un problème.
Lorsque je débranche mon (horloge) et que je la rebranche je reviens à la date et heure du jour ou j'ai téléversé mon code.
Je pensais que c'était lié à ma pile mais non je l'ai changé et le souci reste
Je vous mets celui-ci.
/*
* Créé par ArduinoGetStarted.com
*
* Cet exemple de code est dans le domaine public
*
* Page du didacticiel : https://arduinogetstarted.com/tutorials/arduino-lcd-clock
*/
//Utilisation des bibliotèques
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#include <DateTimeFunctions.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27 16 colonnes et 2 lignes
RTC_DS3231 rtc; //Déclaration du module DS3231
void setup() {
Serial.begin(9600); // initialiser le moniteur série
lcd.begin(); // initialiser l'écran LCD
lcd.backlight(); // ouvrir le rétroéclairage
// Confiruration du module
if (!rtc.begin()) {
lcd.setCursor(0, 0); //Curseur sur la première position et sur la ligne 0
lcd.print("RTC introuvable !!!");
Serial.print("RTC introuvable !!!");
//Serial.flush();
while (true)
;
}
// définit automatiquement le RTC sur la date et l'heure sur le PC où ce croquis a été compilé
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
/*----------------------------------------------------------------------*/
/* Affichage de la date et l'heuredans le LCD */
/*----------------------------------------------------------------------*/
//Utilisation de la fonction DateTime de la librairie DateTimeFunctions.h
DateTime aujourd_hui = rtc.now(); //Attribution du jour et de l'heure
int annee = aujourd_hui.year(); //Année
int mois = aujourd_hui.month(); //Mois
int jour = aujourd_hui.day(); //Jour
int heure = aujourd_hui.hour(); //Heure
int minute = aujourd_hui.minute(); //Minute
int seconde = aujourd_hui.second(); //Seconde
//J'efface le contenu éventuel du LCD
lcd.clear();
lcd.setCursor(0, 0); //Curseur sur la première position et sur la ligne 0
lcd.print("Date: ");
//Affichage du jour 01
if (jour < 10) {
lcd.print("0");
lcd.print(jour); //Formatage de la date en FR jour / mois / année
Serial.println(jour);
} else {
//Affichage du jour 31
lcd.print(jour); //Formatage de la date en FR jour / mois / année
Serial.println(jour);
}
lcd.print("/");
if (mois < 10) {
//Affichage du mois 01
lcd.print("0");
lcd.print(mois);
} else {
//Affichage du mois 12
lcd.print(mois);
}
lcd.print("/");
//Affiche l'année
lcd.print(annee);
lcd.setCursor(1, 1); //Curseur sur la ligne 1 en deuxième position
lcd.print("Heure: ");
lcd.setCursor(7, 1); //Curseur sur la ligne 1 en position 7
if (heure < 10) {
//Affichage de l'heure 01
lcd.print("0");
lcd.print(heure);
} else {
//Affichage de l'heure 24
lcd.print(heure);
}
lcd.print(":");
if (minute < 10) {
//Affichage des minutes 01
lcd.print("0");
lcd.print(minute);
} else {
//Affichage des minutes 59
lcd.print(minute);
}
lcd.print(":");
//Affichage des secondes 01
if (seconde < 10) {
lcd.print("0");
lcd.print(seconde);
} else {
//Affichage des secondes 59
lcd.print(seconde);
}
delay(1000); //Actualisation toutes les seconde
/*----------------------------------------------------------------------*/
/* Fin d'affichage de la date et l'heure dans le LCD */
/*----------------------------------------------------------------------*/
}
Merci pour l'aide que vous pouriez m'apporter
Jean-Marc