Afficher la date et l'heure sur un ecran OLED à l'aide d'un module DS1307.

Bonjour, par curiosité j’ai voulu essayer d’afficher la date et l’heure sur un ecran OLED à l’aide d’un module RTC DS1307, n’y arrivant pas, j’ai chercher un programme sur internet et je suis tombé sur ceci.

#include "RTClib.h"

RTC_Millis RTC; //on initialise la variable rtc.now.
#include <Wire.h>
#include <SeeedOLED.h>


void setup()
{
  Serial.begin( 9600 );
  RTC.begin( DateTime( __DATE__, __TIME__ ) );
  Wire.begin();
  SeeedOled.init(); // initialiser l'écran
  SeeedOled.clearDisplay();
  SeeedOled.setNormalDisplay();
  SeeedOled.setPageMode();
   SeeedOled.setTextXY(0, 0);

}

void loop()
{
  DateTime now = RTC.now(); 
  char dateheure[ 50 ];
  sprintf( dateheure, "\n%1d-%1d-%1d\n%02d:%02d", now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second());
  SeeedOled.putString( dateheure );
  SeeedOled.setTextXY(0,0);
  delay( 1000 );
}

Mais je n’arrive pas a comprendre les 6 dernières lignes.
Quelqu’un pourrait m’aider svp ?

Merci.

  DateTime now = RTC.now();Lis les données de la RTC et les mets dans la variable now sous un format [url=https://github.com/PaulStoffregen/Time]DateTime[/url]

  char dateheure[ 50 ];Crée une chaine de caractère vide pour la remplir avec les données de date et heure

  sprintf( dateheure, "\n%1d-%1d-%1d\n%02d:%02d", now.day(), now.month(), now.year(), now.hour(), now.minute(), now.second());Remplissage de ladite chaine selon un format, voir la syntaxe de sprintf

  SeeedOled.putString( dateheure );Affichage de la chaine contenant les inforamtions de date et heure sur l’OLED

  SeeedOled.setTextXY(0,0);Positionne le curseur en 0,0 (haut à gauche) de l’écran pour le prochain affichage

  delay( 1000 );Attends une seconde pour afficher l’heure suivante.

Voili, voilou !

Super, merci beaucoup ! C'était surtout la fonction sprintf qui me posait problème. :slight_smile: