Arduino ajouter l’heure à votre arduino

Ajouter une horloge à vos projets Arduino, pour bon nombre de projets, il est nécessaire de gérer le temps sur votre carte Arduino, malheureusement celui-ci ne gère pas nativement le temps réel, voilà comment ajouter une horloge sur vos montages Arduino.

Nativement, l’Arduino ne permet pas de gérer avec le temps réel, vous allez pouvoir gérer des pauses, calculer le temps qui passe mais ne pas intervenir avec le temps réel. Mais si vous deviez obligatoirement obtenir la date et l’heure (par exemple pour un enregistrement sur carte sd), vous pouvez passer par un module RTC.

Matériels nécessaires

Vous allez avoir besoin :

  • une carte arduino uno dans mon cas
  • un module RTC DS-3231, le lien proposé propose un lot de 5 pièces
  • des câbles de prototypages

Vous pouvez opter par une solution comprenant un kit de 37 capteurs.

Présentation du ds3231

Le module ds3231 est une horloge en temps réel (RTC) muni d’un quartz qui compense les différence de température et garde une régularité. Il est alimenté en 5 volts et utilise les ports I2C pour la communication avec l’Arduino. La date et l’heure sont mémorisées grâce à une pile CR2032.

ds3231
ds3231

Bibliothèque nécessaire

Vous devez commencer par installer la librairie pour ce module, en mode GIT,vous pouvez télécharger les librairies sur mon git : git clone https://github.com/zigomato/arduino.git , ou bien directement télécharger cette librairie : téléchargement.

Ensuite dans votre IDE, aller Croquis => Inclure une bibliothèque => Ajouter la bibliothèque .ZIP.

Câblage DS3231 avec Arduino

Réaliser le câblage suivant :

cablage_ds3231
cablage_ds3231

Code pour utiliser le DS3231

Dans votre IDE, saisir et téléverser :

#include <Wire.h>
#include <DS3231.h>

DS3231 clock;
RTCDateTime dt;

void setup()
{
  Serial.begin(9600);

  // Initialize DS3231
  Serial.println("Initialize DS3231");;
  clock.begin();

  // Set sketch compiling time
  clock.setDateTime(__DATE__, __TIME__);
}

void loop()
{
  dt = clock.getDateTime();

  // For leading zero look to DS3231_dateformat example

  Serial.print("Raw data: ");
  Serial.print(dt.year);   Serial.print("-");
  Serial.print(dt.month);  Serial.print("-");
  Serial.print(dt.day);    Serial.print(" ");
  Serial.print(dt.hour);   Serial.print(":");
  Serial.print(dt.minute); Serial.print(":");
  Serial.print(dt.second); Serial.println("");

  delay(1000);
}

Mise  à l’heure du module RTC DS3231

Pour la mise à l’heure du module RTC, un très bon article a été fait sur ce sujet, rendez-vous à cette page.

Amusez-vous et n’hésitez pas à commenter et partager cet article.

Laisser un commentaire