top of page

L'horloge temps réel ou RTC (Real Time Clock) DS1307 permet de fournir la date et l'heure à la carte Arduino via la liaison I2C.

La bibliothèque RTC_Library 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.

L'HORLOGE TEMPS REEL DS1307

Programme :​

/* RTC est un programme qui affiche sur un afficheur LCD la date et l'heure */


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

​

#define en 7                                                                // affectation des broches
#define rs 6
#define d7 5
#define d6 4
#define d5 3
#define d4 2 

​

DS1307 horloge;                                                        // création de l'objet horloge
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);                  // création de l'objet lcd
void setup()
{
    horloge.begin();                                                     // initialisation de l'objet horloge
  lcd.begin(16,2);                                                        // initialisation de l'objet lcd
    horloge.fillByYMD(2016,12,28);                           // initialisation de la date
    horloge.fillByHMS(10,42,30);                               // initialisation de l'heure
    horloge.fillDayOfWeek(WED);                              // initialisation du jour
    horloge.setTime();                                                // sauvegarde dans le DS1307
}
void loop()
{
    horloge.getTime();                                               // acquisition des données
  lcd.setCursor(0,0);                                                 // placement du curseur 1ère ligne 1ère colonne
  if (horloge.dayOfMonth<10)                                 // affichage du jour
   {
    lcd.print("0");
    lcd.print(horloge.dayOfMonth, DEC);       
   }
  else
   {
    lcd.print(horloge.dayOfMonth, DEC);       
   }
  lcd.print("/");
  if (horloge.month<10)                                          // affichage du mois
   {
    lcd.print("0");
    lcd.print(horloge.month, DEC);       
   }
  else
   {
    lcd.print(horloge.month, DEC);       
   }
  lcd.print("/");
  lcd.print(horloge.year+2000, DEC);                    // affichage de l'année
  lcd.setCursor(0,1);                                               // placement du curseur 2nde ligne 1ère colonne
  if (horloge.hour<10)                                            // affichage de l'heure
   {
    lcd.print("0");
    lcd.print(horloge.hour, DEC);       
   }
  else
    {
    lcd.print(horloge.hour, DEC);       
    }
  lcd.print(":");
  if (horloge.minute<10)                                         // affichage des minutes
   {
    lcd.print("0");
    lcd.print(horloge.minute, DEC);       
   }
  else
    {
    lcd.print(horloge.minute, DEC);       
    }
  lcd.print(":");            
  if (horloge.second<10)                                        // affichage des secondes
   {
    lcd.print("0");
    lcd.print(horloge.second, DEC);      
   }
  else
    {
    lcd.print(horloge.second, DEC);      
    }
}

Exemple :

Nous souhaitons afficher sur un afficheur à cristaux liquides, la date et l'heure.

Liste du matériel :

  • 1 Arduino Uno

  • 1 plaquette d'essai

  • 1 écran à cristaux liquides

  • 1 potentiomètre ou résistance ajustable de 10 KΩ

  • 1 module RTC DS1307

Câblage :​

Dans l'univers Arduino, l'horloge temps réel est principalement utilisée pour afficher la date et l'heure, pour horodater des évènements ou pour lancer des actions à une heure précise.

bottom of page