setBattery d'une RTC DS3231

Bonsoir,
Mon montage MEGA 2560 fonctionne très bien et comprend une RTC DS3231.
Ce matin la date ne s'affichait plus sur l'afficheur LCD.
La pile CR2032 était vide.
J'ai lu dans le fichier "Keywords" de la librairie, une instruction "setBattery", mais voila : je ne sais pas l'utiliser.
Pouvez-vous m'aider ?
Avec mes remerciements anticipés.

Laquelle, il y en a des dizaines qui supportent le DS3231?
Dans la datasheet du DS3231, il n'est fait aucune référence à un quelconque registre qui activerait la batterie.
A la première connexion, le DS3231 s'active de lui-même, soit lorsqu'on applique une tension sur le module soit lorsqu'on accède à l'un des registres internes.

Avec les modules made in china, il faut vérifier 2 ou 3 choses:

  • vérifier si la sauvegarde est une pile CR2032 ou une batterie LiIon LIR2032
  • si c'est une pile s'assurer que la carte ne comprend pas un circuit de charge pour une batterie. C'est assez courant et les piles CR2032 n'apprécient pas trop.
  • si c'est une pile, il est possible qu'elle soit déchargée. On ne sait pas combien de temps le module est resté sur une étagère et les piles ne sont pas toujours de la meilleure qualité.
  • si c'est une batterie, lorsque le module est sous tension, vérifier que la batterie reçoit une tension pour la charger et que celle-ci n'est pas supérieure à 4.2V.

Bonjour.
Il faudrait que tu appliques les consignes du message d’accueil.
De quelle bibliothèque pour ds3231 parles tu ?

Il doit en exister une dizaine dans l’impitoyable univers arduino.

Description du matériel, lien vers le matériel et code complet entre balises code : <CODE>

Grillé par @fdufnews .

Bonjour,
La librairie utilisée est "DS3231_Arduino_Library" et la pile une "CR2032"
keywords.txt (1,1 Ko)
DS3231

Bonjour,
La petite diode à coté de la RTC sert au chargement de l'accu PIR cité plus haut. Si une pile est utilisée, déssouder la diode.

Bonjour,

J'ai deux modules DS2131 alimentés par pile et ils ont la diode.
Je pense que cette diode empêche la tension de 5V de charger la pile tout en permettant à la pile d'alimenter le rtc quand cette tension est coupée.

Non, les entrées sont distinctes sur la DS3231. Il y a Vcc et Vbat

Et ça c'est le schéma des cartes à base de DS3231 que l'on rencontre assez souvent (typiquement celle dont la photo est au-dessus)

Bonjour,
Et merci de vos précieuses informations.
A l'origine, ma demande était la suivante :
..."Mon montage MEGA 2560 fonctionne très bien et comprend une RTC DS3231.
Hier matin la date ne s'affichait plus sur l'afficheur LCD.
La pile CR2032 était vide.
J'ai lu dans le fichier "Keywords" de la librairie <DS3231.h> (DS3231_Arduino_Library), une instruction "setBattery", mais voila : je ne sais pas l'utiliser.
Pouvez-vous m'aider ?
Avec mes remerciements anticipés..."

Une instruction qui fait quoi?
Et de toutes les façons, la pile est vide!

Je t'ai déjà expliqué plus haut qu'il n'y a pas d'instruction dans le DS3231 pour activer la sauvegarde par la pile. C'est automatique, lorsque l'alimentation du module tombe la pile prend automatiquement le relais.
De plus tu ne nous as toujours pas dit quelle librairie tu utilises il y a une foule de librairie pour la DS3231.

Je souhaiterais simplement être averti de la baisse de tension de la CR2032 avant qu'elle ne se vide complètement, c'est tout. Afin de la remplacer avant.
Je m'interroge donc sur l'instruction (ou mot-clé) "setBattery" figurant en fin du fichier "Keywords" de la librairie <DS3231.h> (DS3231_Arduino_Library) que j'utilise, car j'ignore à quoi sert cette instruction ?

###########################################

Syntax Coloring Map For INA226

###########################################

###########################################

Datatypes (KEYWORD1)

###########################################

DS3231 KEYWORD1

###########################################

Methods and Functions (KEYWORD2)

###########################################
begin KEYWORD2
setDateTime KEYWORD2
getDateTime KEYWORD2
isReady KEYWORD2
getOutput KEYWORD2
setOutput KEYWORD2
enableOutput KEYWORD2
isOutput KEYWORD2
enable32kHz KEYWORD2
is32kHz KEYWORD2
forceConversion KEYWORD2
readTemperature KEYWORD2
setAlarm1 KEYWORD2
getAlarm1 KEYWORD2
getAlarmType1 KEYWORD2
isAlarm1 KEYWORD2
armAlarm1 KEYWORD2
isArmed1 KEYWORD2
clearAlarm1 KEYWORD2
setAlarm2 KEYWORD2
getAlarm2 KEYWORD2
getAlarmType2 KEYWORD2
isAlarm2 KEYWORD2
armAlarm2 KEYWORD2
isArmed2 KEYWORD2
clearAlarm2 KEYWORD2
setBattery KEYWORD2
dateFormat KEYWORD2
loadDateTimeFromLong KEYWORD2

###########################################

Constants (LITERAL1)

###########################################

Bonjour,
tu changes la pile tous les 2 ans et c'est OK.
n'oublies pas d'enlever la résistance ou la diode 1N4148, les piles n'apprécient pas d'être re-chargées

Ce que tu donnes ne permet pas d'identifier la librairie en question
Quelle librairie utilises-tu exactement? Donnes un lien vers cette librairie, on ne sait pas de laquelle tu parles.

La DS3231 ne permet pas de connaitre l'état de la pile. Mais en même temps étant donné la consommation de cette RTC en veille la pile doit avoir une durée de vie de plus de 10 ans.

Je viens de regarder quelques bibliothèques proposées par l'IDE Arduino pour le DS3231.
https://www.arduino.cc/reference/en/libraries/category/timing/

Et je n'ai pas trouvé de méthode setBattery(?)

Donnes le lien vers le Github de la bibliothèque supposée avoir une méthode setBattery() que l'on puisse lire le code de setBattery(??).

Voici l'adresse URL de la librairie : GitHub - jarzebski/Arduino-DS3231: DS3231 Real-Time-Clock

Et bien voilà on y arrive.
Dans le code on trouve

void DS3231::setBattery(bool timeBattery, bool squareBattery)

squareBattery : autorise ou non la génération du signal carré de référence sur la sortie SQW lorsque le circuit fonctionne sur batterie.
timebattery : coupe/active l'oscillateur interne. En principe cet oscillateur doit tourner en permanence pour garder l'heure. Cette option permet de couper l'oscillateur pour économiser la pile de sauvegarde en stockage.

Donc rien à voir avec ton problème.
Commence par changer la pile. En principe tu devrais être tranquille pour quelques années.

C'est ce que j'ai fait fort logiquement, changer la pile.
Bonjour et merci de votre aide à répondre à ma question qui n'était pas un problème mais une simple demande curieuse.
C'est gentil d'aider un débutant retraité, dont le secteur d'activités n'était ni l'électronique, ni l'informatique, mais l'Architecture.