Real time clock module DS3231+ CR2032 Battery G23

$4.0

Le DS3231 est une horloge en temps réel (RTC) I2C extrêmement précise et peu coûteuse avec un oscillateur à cristal à compensation de température (TCXO) et un cristal intégré. L’appareil intègre une entrée de batterie et maintient un chronométrage précis lorsque l’alimentation principale de l’appareil est interrompue.

In stock

SKU: BRD3058 Categories: , ,

Description

Le DS3231 est une horloge en temps réel (RTC) I2C extrêmement précise et peu coûteuse avec un oscillateur à cristal compensé en température (TCXO) et un cristal intégré. L’appareil intègre une entrée de batterie et maintient un chronométrage précis lorsque l’alimentation principale de l’appareil est interrompue.

Caractéristiques

  • Le RTC de haute précision gère entièrement toutes les fonctions de chronométrage
  • Interface série simple se connectant à la plupart des microcontrôleurs
  •  Entrée de batterie de secours pour un chronométrage continu
  • Plages de températures de fonctionnement : Commercial (0°C à +70°C) et industriel (-40°C à +85°C)

Prise en main du module d’horloge temps réel DS3231

Cet article explique comment utiliser le module d’horloge temps réel (RTC) DS3231 avec l’Arduino. Cet exemple affiche la date et l’heure sur le moniteur série.

Matériel  requis

Connexion du matériel

Connectez votre module d’horloge temps réel à votre Arduino comme dans les schémas ci-dessous.

Le câblage du module RTC est assez simple

Épingle Câblage vers Arduino Uno
SCL A5
Adventiste du Septième Jour A4
CCV 5V
Terre Terre

 

Si vous utilisez une autre carte Arduino plutôt que l’Uno, vérifiez quelles sont leurs broches SCL et SDA.

  • Nano : SDA (A4) ; SCL (A5)
  • MÉGA : SDA (20) ; SCL (21)
  • Léonard de Vinci : SDA (20) ; SCL (21)

Installation de la bibliothèque RTClib

Communiquer avec un module RTC demande beaucoup de travail. Heureusement,  la bibliothèque RTClib  a été écrite pour cacher toutes les complexités afin que nous puissions émettre des commandes simples pour lire les données RTC.

Pour installer la bibliothèque, accédez à Sketch > Inclure la bibliothèque > Gérer les bibliothèques… Attendez que le gestionnaire de bibliothèque télécharge l’index des bibliothèques et mette à jour la liste des bibliothèques installées.

Filtrez votre recherche en tapant « rtclib ». Il devrait y avoir quelques entrées. Recherchez RTClib par Adafruit. Cliquez sur cette entrée, puis sélectionnez Installer.

Code Arduino – Lecture de la date et de l’heure

Le croquis suivant vous donnera une compréhension complète de la façon de régler/lire la date et l’heure sur le module RTC DS3231 et peut servir de base à des expériences et des projets plus pratiques.

#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};

configuration vide ()
{
Série.begin(9600);
delay(3000); // attendre l'ouverture de la console

si (! rtc.begin()) {
Serial.println("Impossible de trouver RTC");
tandis que (1);
}

si (rtc.lostPower()) {
Serial.println("RTC a perdu de l'énergie, réglons l'heure !");

// Commentez les lignes ci-dessous une fois que vous avez défini la date et l'heure.
// La ligne suivante définit le RTC sur la date et l'heure à laquelle cette esquisse a été compilée
rtc.adjust(DateHeure(F(__DATE__), F(__TIME__)));

// La ligne suivante définit le RTC avec une date et une heure explicites
// par exemple pour définir le 27 janvier 2017 à 12h56 vous appelleriez :
// rtc.adjust(DateTime(2017, 1, 27, 12, 56, 0));
}
}

boucle vide ()
{
DateHeure maintenant = rtc.now();

Serial.println("Date et heure actuelles : ");
Serial.print(maintenant.année(), DEC);
Série.print('/');
Serial.print(maintenant.mois(), DEC);
Série.print('/');
Serial.print(maintenant.jour(), DEC);
Série.print(" (");
Serial.print(joursDeLaSemaine[maintenant.jourDeLaSemaine()]);
Série.print(") ");
Serial.print(maintenant.heure(), DEC);
Série.print(':');
Serial.print(maintenant.minute(), DEC);
Série.print(':');
Serial.print(maintenant.second(), DEC);
Série.println();

Serial.println("Heure Unix : ");
Serial.print("écoulé ");
Série.print(maintenant.unixtime());
Serial.print(" secondes/");
Série.print(maintenant.unixtime() / 86400L);
Serial.println(" jours depuis le 1/1/1970");

// calculer une date qui se situe dans 7 jours et 30 secondes dans le futur
DateTime futur (maintenant + TimeSpan(7,0,0,30));

Serial.println("Date et heure futures (maintenant + 7 jours et 30 s) : ");
Serial.print(future.year(), DEC);
Série.print('/');
Serial.print(future.month(), DÉC);
Série.print('/');
Serial.print(future.day(), DÉC);
Série.print(' ');
Serial.print(future.hour(), DEC);
Série.print(':');
Serial.print(future.minute(), DEC);
Série.print(':');
Serial.print(future.second(), DEC);
Série.println();

Série.println();
délai(1000);
}

REMARQUE : si vous obtenez des erreurs « 223 » parasites, le problème vient de vos caractères  et   . Remplacez-les par des guillemets ordinaires,  ", et tout devrait bien se passer. 

 

Ouvrez le moniteur série à un débit en bauds de 9600 et vous verrez les résultats. Voici le moniteur série affichant la date et l’heure actuelles.