DS3231_Handler
drivers
drivers/DS3231_Handler.h
driver
stable
stable
Driver DS3231 RTC Gestion de l'horloge temps réel DS3231 Fonctionnalités : /
Méthodes publiques
| Méthode | Description | Paramètres | Retour |
|---|---|---|---|
|
DS3231_Handler()
DS3231_Handler();
|
Constructeur Initialise l'objet handler pour la RTC. / | ||
|
begin()
begin();
|
Méthode begin() Initialise le composant DS3231 et configure éventuellement la pin d'interruption pour les alarmes. / | ||
|
now()
now();
|
Lecture de l'heure Retourne l'heure courante sous forme d'objet DateTime / | ||
|
setTime()
setTime(const DateTime& dt);
|
Réglage de l'heure Définit l'heure courante du DS3231. / | dt: : objet DateTime contenant l'heure à régler / | |
|
setAlarmInMinutes()
setAlarmInMinutes(uint8_t minutes);
|
Réglage d'une alarme Définit une alarme à déclencher dans un nombre de minutes / | minutes: : délai avant déclenchement de l'alarme / | |
|
isAlarmTriggered()
isAlarmTriggered();
|
Vérification alarme Indique si l'alarme a été déclenchée / | truetrue si l'alarme est active, false sinon / |
|
|
clearAlarm()
clearAlarm();
|
Effacement de l'alarme Réinitialise le flag d'alarme et la pin d'interruption / |
Méthodes privées
begin(115200);;
begin();;
setAlarmInMinutes(1);;
now();;
print("/");;
print("/");;
print(" ");;
print(":");;
print(":");;
println("⏰ Alarme déclenchée !");;
clearAlarm();;
delay(1000);;
Variables membres
RTC_DS3231 rtc;
uint8_t _interruptPin;
bool alarmFlag;
Code source
#pragma once
#include <Arduino.h>
#include "../StatusDevice.h"
#include <RTClib.h>
namespace crepp::drivers {
/*
* =========================
* Driver DS3231 RTC
* -------------------------
* Gestion de l'horloge temps réel DS3231
*
* @badge driver
* @badge stable
*
* Fonctionnalités :
* - Initialisation de la RTC
* - Lecture et réglage de l'heure
* - Alarmes avec interruption
* =========================
*/
class DS3231_Handler {
public:
/*
* =========================
* Constructeur
* =========================
* Initialise l'objet handler pour la RTC.
*/
DS3231_Handler();
/*
* =========================
* Méthode begin()
* =========================
* Initialise le composant DS3231 et configure éventuellement
* la pin d'interruption pour les alarmes.
*/
void begin();
/*
* =========================
* Lecture de l'heure
* =========================
* Retourne l'heure courante sous forme d'objet DateTime
*/
DateTime now();
/*
* =========================
* Réglage de l'heure
* =========================
* Définit l'heure courante du DS3231.
* @param dt : objet DateTime contenant l'heure à régler
*/
void setTime(const DateTime& dt);
/*
* =========================
* Réglage d'une alarme
* =========================
* Définit une alarme à déclencher dans un nombre de minutes
* @param minutes : délai avant déclenchement de l'alarme
*/
void setAlarmInMinutes(uint8_t minutes);
/*
* =========================
* Vérification alarme
* =========================
* Indique si l'alarme a été déclenchée
* @return true si l'alarme est active, false sinon
*/
bool isAlarmTriggered();
/*
* =========================
* Effacement de l'alarme
* =========================
* Réinitialise le flag d'alarme et la pin d'interruption
*/
void clearAlarm();
private:
RTC_DS3231 rtc; ///< Objet RTC interne
uint8_t _interruptPin; ///< Pin utilisée pour l'interruption
volatile bool alarmFlag; ///< Flag interne pour alarme
};
/*
@example
@include
#include <crepp/drivers/DS3231_Handler.h>
@end_include
@instance
crepp::drivers::DS3231_Handler rtc;
@end_instance
@setup
Serial.begin(115200);
rtc.begin();
// Réglage manuel de l'heure (exemple)
rtc.setTime(DateTime(2026, 1, 1, 12, 0, 0));
// Déclenche une alarme dans 1 minute
rtc.setAlarmInMinutes(1);
@end_setup
@loop
DateTime now = rtc.now();
Serial.print(now.year());
Serial.print("/");
Serial.print(now.month());
Serial.print("/");
Serial.print(now.day());
Serial.print(" ");
Serial.print(now.hour());
Serial.print(":");
Serial.print(now.minute());
Serial.print(":");
Serial.println(now.second());
if (rtc.isAlarmTriggered()) {
Serial.println("⏰ Alarme déclenchée !");
rtc.clearAlarm();
}
delay(1000);
@end_loop
@end_example
*/
} // namespace crepp::drivers