Aujourd’hui je vais me pencher sur les modules RTC (Real Time Clock) et voir ce qu’on peut en faire avec un Arduino (Méga dans mon cas).

 

Matériel requis :

 

  • Un Arduino MEGA;
  • Un module RTC DS3231;

Description du module RTC :

 

Le module que j’ai choisit dispose d’une batterie Lithium pour nous permettre de de sauvegarder l’heure et la date si on le débranche (plus pratique qu’un module RTC sans pile).

IMG_2461

Dans cet exemple, nous n’allons utiliser que les entrée SDA et SCL (Nous verrons plus tard à quoi servent 32K et SQW).

Nous allons avoir besoin de deux librairies pour faire fonctionner le programme :

  • Wire.h qui est inclue dans les librairies Arduino
  • RTClib.h que vous pouvez trouver ici : RTClib.h

Pour connecter le module RTC sur un Arduino MEGA, il suffit juste de raccorder SCL sur le pin 21 et SDA sur le pin 20 ainsi que l’alimentation évidement !

RTC_bb

 

Programmation :

Premier test : 

Résultat :

Progr1

Ah non, nous ne sommes pas le 1er Janvier 2000 à minuit !

 

Mise à l’heure du module :

Nous allons ouvrir un nouvel onglet pour créer une fonction qui va mettre notre module à l’heure par rapport à l’heure de compilation du programme. Assez pratique même si nous aurons quelques secondes de décalage par rapport à l’heure de notre PC.

On modifie juste le « void setup » pour ajouter la fonction « reglageheure() »

On ouvre un onglet pour la fonction avec le code suivant :

On compile et on ouvre le moniteur série :

mise à l'heure

Heure de mon iMac : 16:45:06

Heure du module RTC : 16:44:52

Nous avons donc 14 secondes d’écart entre les deux ce qui reste convenable.