Comment conserver l'heure dans monDS3231

Bonjour.
Je travaille actuellement sur un projet que utilse un DS3231 pour faire sonner un buzzer à des heures précise.
Après le téléversement du code, mon module perd totalement la notion du temps.
Quel pourrais en être la cause?
Ci dessous mon code:
conditionnement_de_la_serie.ino (1,2 Ko)

Does your DS3231 module have a battery backup? Without that it will loose the time every time you disconnect it's power.

Oui mon module dispose d'une battery

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

postez votre code directement dans le forum en utilisant les balises de code. Les téléchargements c'est pas simple pour ceux qui lisent sur un smartphone

(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici entre balises de code. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

Bonsoir

Après le téléversement du code, mon module perd totalement la notion du temps.
Quel pourrais en être la cause?

pile ou accu déchargé ?

instruction de mise à l'heure inadaptée, trainant dans le setup () ?
dans le genre:

  // Met à l'heure à la date à laquelle le sketch est compilé
  DateTime d ( __DATE__, __TIME__ );
  RTC.adjust ( d );

L'accumulateur doit avoir combien comme charge si elle est pleine?

Elle devrait avoir dans les 3V.

Quel librairie ds3231 utilises-tu, il y a plusieurs versions avec un nom identique?

hello
dans ton prg, tu ne mets pas l'horloge à l'heure.
regardes dans les exemples de ta librairie

ce n'est pas une cause d'échec.
Je ne mets jamais l'horloge à l'heure dans mes programmes. Sinon, quand ça reboote, ça me remet l'heure de la compil (cf. mon post #7)
J'ai un petit prog qui ne fait que ça (mettre à l'heure) et que je lance uniquement en cas de besoin.

@biggil Non ça met à l'heure de la compilation uniquement si le code que tu indique est utilisé.
je pense que @dfgh était surpris que le programme ne mette jamais à jour l'heure, au moins une fois.

@mrcrayon tu perd l'heure uniquement lorsqu'il y a un téléversement, avec l'heure remis à zéro?
Si tu coupe l'alimentation de ton Arduino l'heure ne revient pas à zéro?

Evidemment !

Pour mettre mon module à l'heure, j'utilise l'exemple DS3231_Serial_Easy contenu dans cette librairie:
DS3231.zip (378,7 Ko)
Après avoir suivi les instructions, j'arrive à mettre mon module à l'heure.
Seulement, lorsque je débranche ma carte pour l'alimenter avec un chargeur 5v, je n'est pas le resultats que je recherche. Lorsque je reverifie l'heure via le moniteur serie, je constate qu'elle s'est réinitialiser.

J'ai déjà reçu un DS3231 dans lequel le bit 7 du registre de control était à 1. Cela coupe l'oscillateur lorsque l'on passe en mode batterie. Ce n'est pas normal car en principe par défaut ce bit est à 0, ou alors c'est voulu pour ne pas pomper la batterie en stockage (c'tait un module DS3231 avec une petite batterie).
Il faudrait essayer un truc dans le genre dans le setup()

 uint8_t ctrl = rtc._readRegister(0x0E);
 ctrl &= 0x7F;
 rtc.writeRegister(0x0E, ctrl);

Ce bout de code ne nécessiterais pas la présence d'une bibliothèque particulière?

Au final, j'ai relié la batterie du module à la LED du module manuellement et de façon directe. Chose bizarre, mon module arrive à garder l'heure. Alors ma question es celle-ci:
¤serait-ce un disfonctionnement au niveau du module?
¤Ne serait-il pas possible d'effectuer cette connexion manuel que j'ai effectué mais dans le programme?

votre module semble déficient...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.