Introduction

L’un des aspects essentiels de nombreux projets Arduino est la gestion du temps. Que vous souhaitiez créer un réveil, un enregistreur de données ou tout autre dispositif nécessitant une synchronisation temporelle précise, l’utilisation d’un module RTC (Real Time Clock) est la solution idéale.

Dans ce cours, nous explorerons le module RTC pour Arduino et expliquerons comment il peut améliorer la précision et la fiabilité de vos projets.

  • Les pins du module DS1307

GND : A connecter à la masse de la carte Arduino

5V : A relier au 5V de la carte Arduino

SCL : A connecter à la pin A5 de la partie analogique

SDA : A relier à la pin A4 de la carte Arduino

Qu'est-ce qu'un module RTC et comment fonctionne-t-il?

Un module RTC est un circuit électronique qui intègre un oscillateur précis et une mémoire non volatile pour maintenir l’heure et la date, même en cas de coupure d’alimentation. Il est conçu pour fournir une référence temporelle stable et précise à votre Arduino.

Le module RTC communique avec l’Arduino via une interface de communication, telle que le protocole I2C ou SPI, permettant ainsi à l’Arduino de lire et d’écrire l’heure et la date.

Vous avez besoin d’une pile 3.3V à mettre dans votre module rtc afin que celui-ci fonctionne quand il n’est plus alimenté par la carte Arduino. Quand la carte est sous-tension, elle alimente le module RTC et qui n’use donc pas la pile.

Avantages du module RTC pour Arduino

  1. Précision accrue

Contrairement à l’utilisation de la fonction d’horloge interne de l’Arduino, qui peut dériver avec le temps, un module RTC utilise un oscillateur externe de haute précision pour garantir une mesure précise du temps.

2  Maintien de l’heure en cas de coupure d’alimentation

Grâce à sa mémoire non volatile, le module RTC conserve l’heure et la date même lorsque l’alimentation est coupée, ce qui évite de devoir réinitialiser l’heure à chaque démarrage de l’Arduino.

3 Consommation d’énergie réduite

Le module RTC utilise généralement très peu d’énergie, ce qui le rend idéal pour les projets alimentés par batterie ou autonomes.

Schéma électronique

Voici le branchement d’un module RTC. On utilise pour cela l’i2c de la carte Arduino :

Programmation

Pour programmer le module rtc, vous aurez besoin d’installer la librairie RTClib. Pour cela sur Arduino ide vous devez taper le nom RTClib dans la barre de recherche : 

Une fois la librairie installée, vous pouvez téléverser le programme sur la carte Arduino :

#include "RTClib.h"
 
RTC_DS1307 rtc;
 
void setup () {
  Serial.begin(9600);

  while (! rtc.begin()) {
    Serial.println("Attente du module RTC...");
    delay(1000);
  }
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

}
 
void loop () {
    DateTime now = rtc.now();
    char heure[10];
    Serial.print("Horloge du module RTC : ");
    sprintf(heure, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
    Serial.println(heure);
     
    delay(1000);
}

Voici le résultat sur le moniteur série d’Arduino ide :

Conclusion

Le module RTC est un ajout précieux à tout projet Arduino nécessitant une référence temporelle précise. Que vous souhaitiez créer un réveil, un enregistreur de données ou un système de chronométrage, l’utilisation d’un module RTC garantit une horloge fiable et une gestion précise du temps.

Son installation et son utilisation sont relativement simples grâce aux bibliothèques logicielles disponibles. En intégrant un module RTC à vos projets Arduino, vous bénéficierez d’une synchronisation temporelle précise et d’une fonctionnalité améliorée.