top of page

LE MODULE HORLOGE TEMPS REEL

Le module horloge temps comporte un DS1307 qui délivre la date et l'heure au format 12 ou 24 heures. Une pile CR1220 permet de mémoriser les données dans le DS1307.

La bibliothèque gérant ce module est téléchargeable ici et ses principales fonctions sont :

  • DS1307 horloge. Cette fonction permet de créer l'objet.

  • horloge.begin(). Cette fonction permet d'initialiser l'objet.

  • horloge.fillByYMD(année,mois,jour). Cette fonction permet d'initialiser la date. 

  • horloge.fillByHMS(22,48,30). Cette fonction permet d'initialiser l'heure. 

  • horloge.fillDayOfWeek(jour) où jour représente le jour de la semaine. Cette fonction permet d'initialiser le jour de la semaine.

  • horloge.setTime(). Cette fonction permet de sauvegarder les données précédentes dans le DS1307.

  • horloge.getTime(). Cette fonction permet de récupérer les données dans le DS1307.

Ce module doit être relié à un connecteur I2C de la base.

Exemple :

Nous souhaitons afficher dans le moniteur série le jour, la date et l'heure.

Câblage :

Module "Grove"

Module

horloge temps réel

Connecteur Base

I2C

Programme :

/* RTC_Grove est un programme qui affiche dans le moniteur série le jour, la date et l'heure */


#include <Wire.h>                                          // appel des bibliothèques
#include "DS1307.h"

DS1307 horloge;                                            //création de l'objet horloge


void setup()
{
    Serial.begin(9600);
    horloge.begin();
    horloge.fillByYMD(2016,12,17);              // initialisation de la date
    horloge.fillByHMS(22,00,30);                  // initialisation de l'heure
    horloge.fillDayOfWeek(SAT);                  // initialisation du jour
    horloge.setTime();                                   // sauvegarde dans le DS1307
}


void loop()
{
    horloge.getTime();                                  // acquisition des données
  switch (horloge.dayOfWeek)                   // traitement du jour
  {
    case MON:
      Serial.print("LUNDI");
      break;
    case TUE:
      Serial.print("MARDI");
      break;
    case WED:
      Serial.print("MERCREDI");
      break;
    case THU:
      Serial.print("JEUDI");
      break;
    case FRI:
      Serial.print("VENDREDI");
      break;
    case SAT:
      Serial.print("SAMEDI");
      break;
    case SUN:
      Serial.print("DIMANCHE");
      break;
  }
  Serial.print(" ");
  if (horloge.month<10)                                           // affichage du mois
   {
    Serial.print("0");
    Serial.print(horloge.month, DEC);       
   }
  else
    {
    Serial.print(horloge.month, DEC);       
   }
  Serial.print("/");
  if (horloge.dayOfMonth<10)                                // affichage du jour
   {
    Serial.print("0");
    Serial.print(horloge.dayOfMonth, DEC);       
   }
  else
    {
    Serial.print(horloge.dayOfMonth, DEC);       
   }
  Serial.print("/");
  Serial.print(horloge.year+2000, DEC);              // affichage de l'année
  Serial.print(" ");
  if (horloge.hour<10)                                           // affichage de l'heure
   {
    Serial.print("0");
    Serial.print(horloge.hour, DEC);       
   }
  else
    {
    Serial.print(horloge.hour, DEC);       
    }
  Serial.print(":");
  if (horloge.minute<10)                                       // affichage des minutes
   {
    Serial.print("0");
    Serial.print(horloge.minute, DEC);       
   }
  else
    {
    Serial.print(horloge.minute, DEC);       
    }
  Serial.print(":");            
  if (horloge.second<10)                                      // affichage des secondes
   {
    Serial.print("0");
    Serial.print(horloge.second, DEC);      
   }
  else
    {
    Serial.print(horloge.second, DEC);      
    }
  
  Serial.print("  ");
  Serial.println(" "); 
}
 

bottom of page