Bonjour,
Wemos D1 et DS3231
Je désire améliorer un simple croquis en ajoutant le nom du mois, mais le résultat est assez inattendu !
#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
char nomsJours[7][4] = {"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"};
char nomsMois[12][4] = {"jan", "fev", "mar", "avr", "mai", "jun", "jul", "aou", "sep", "oct", "nov", "dec"};
const int nbreJoursMois[] = {31, 28, 31, 30, 31, 30, 31, 31, 31, 31, 30, 31};
char dh[30]; // "Dim 5 dec 2021 16:49:50\0" Le charactère \0 pour terminer la chaine de caractère
void setup () {
Serial.begin(115200);
delay(3000); // wait for console opening
if (rtc.begin()) {
Serial.println(F("Horloge présente"));
} else {
Serial.println("Horloge non trouvée");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
DateTime now = rtc.now();
AfficheDateHeure( now);
}
void loop () {}
void AfficheDateHeure(DateTime now) {
// éclatement intermédiaire pour accélérer (si si) le traitement de sprintf
int jo = now.day();
int js = now.dayOfTheWeek();
int mo = now.month();
int an = now.year();
int he = now.hour();
int mi = now.minute();
int se = now.second();
// dh sera utilisé pour être affiché sur une matrice MAX719
sprintf(dh, "%s %d %s %d %02d:%02d:%02d", nomsJours[js], jo, nomsMois[mo], an, he, mi, se);
Serial.println(dh);
Serial.println(js);
Serial.println(nomsJours[js]);
Serial.println(mo);
Serial.println(nomsMois[mo]);
}
Et voilà le résultat : Dim au lieu de dec
Horloge présente
Lun 6 Dim 2021 13:41:05
1
Lun
12
Dim
Si je place la ligne du tableau des nomMois avec celles des nomJours, le résultat est encore plus loufoque : un carré apparait à la place du mois.
Si vous avez une piste, merci d'avance !
Horloge présente
Lun 6 2021 14:04:46
1
Lun
12