ah les datasheet! la 1ère que tu lis, elle fait mal à la tête, et après on peut plus s'en passer!
ça m'a fait pareil avec le mode d'emploi des processeurs d'ailleurs. Un jour tu sais meme pas que ça existe, et puis tu tombes sur un article de Locoduino ( ) qui te dit que tu peux configurer les ports de ta UNO en écrivant direct dans les registres, et là tu penses plus qu'à ça!
En tout cas, on voit bien 2 groupes se distinguer: les gens qui vont profiter de la facilité d'arduino pour monter des projets concrets en électronique et programmation sans avoir besoin de connaissances approfondies (et là, merci les bibliothèques, histoire d'avoir du I2C qui fonctionne, des écrans qui s'allument et des moteurs qui tournent à la bonne vitesse), et puis il reste les geeks, les nerds, les otakus, qui peuvent pas supporter que quelque chose marche sans qu'ils aient compris pourquoi!!
Il y a une voie centrale : ceux qui ne veulent pas systématiquement refaire, d’ailleurs ils n’en ont pas forcément les connaissances, mais qui cherchent à comprendre.
Et il y a les pro et anciens pro qui ont de grosses facilités d’adaptation, pour qui la lecture d’une bibliothèque est de la rigolade et qui ne voient pas toujours les difficultés.
Ok, donc si je comprends bien, désolé je suis un peu vieux et des phrases courtes sans contexte, moi je n'y comprends rien.
tu fais tourner ton code qui récupère le dateTime et la température sur le RTC et qui affiche uniquement la température, puis une ligne qui s'incrémente de 0 à 10 en boucle.
Le moniteur série affiche tout ça un certains nombre de fois puis cette ligne "test cycles" et plus rien d'autre?
Soit le même comportement que si tu retirais l'alimentation de ta carte Uno ?
" Le moniteur série affiche tout ça un certains nombre de fois ... "test cycles" et plus rien d'autre"
oui plus de défilement sur le terminal de l'IDE lorsque le +5volt du module RTC est débrancher.
(mais peu être que seule le port série est gelé, le Loop tourne tourne toujours ? une led blink à placé)
hello
exact,j'ai répondu un peu vite.
je me referais au ZS-042,ICI son circuit de charge se limite à une résistance suivie d'une diode. schéma en #2 de ce post
Je n'ai pas regardé, donc c'est que des suspposition.
Mais comme tu coupe l'alimentation de ton module, forcément il ne va pas te répondre.
D'ailleurs pourquoi tu fais ça?
Du coup si les fonctions de lecture sont en attente sans timeout, tu reste sur ta fonction de lecture.
Si tu donnais ta sortie Moniteur, ça serait peut être plus simple.
Il faudrait savoir sur quel fonction tu reste bloqué.
Mais là comme ça, je dirais que c'est surement normale comme comportement, tu voudrait quoi comme comportement?
donc d'autres librairie de testé, et c fascinant cette bio diversité pour un simple module RTC.
et toujours le même problème , le croquis est bloquer "Loop Freez " sur perte de l'alim du module.
certain Lib bloque sur perte de la com i2c, d'autres le dise .
"D'ailleurs pourquoi tu fais ça?" ?? ... une déformation professionnelle, des nuits a tester la mis en service de nouvelle Automate, nouvelle installation , mode dégradé , passage en manu des Equipements sur perte Com et autres vices .
Alors retour a Makuna
Voila la fonction qui cause problème, l’appelle de Rtc.GetDateTime();
j'ai essayé de l'isolé dans un coin du programme, une boucle For, mais pas bon.
je reste sur la Makuna, une des rares qui redémarre sur perte de com i2c.
qui me donne les messages d’erreurs Com ou dateheure invalides et pas de conflit avec MySensors
Et Aucunes Lib me donne l'info du niveau de la tension batterie, et en regardant la page 11 du
Datasheet, le DS3231 a seulement deux Registres Control et Status .
Une BIBLIOTHEQUE qui gère un DS3231 gére un DS3231, elle ne gère pas l'alimentation.
C'est à toi de la gérer.
Il ne t'es pas interdit de cabler deux résistances et de relier le point milieu sur une E/S capable de mesures analogiques.
Et les registres calendaires et horaires ils sont où ?
Bizarre les autres utilisateurs n'ont pas tes problèmes.
Je n'ai pas encore trouvé de CI plus simple qu'un DS1307 ou DS3231 (ils ont les mêmes registres).
Le seul point légèrement délicat est le codage BCD. Il suffit d'ouvrir une bibliothèque et copier les deux lignes qui font la conversion BCD vers décimal et décimal vers BCD.
Mouai, mais du coup tu t'attends à quoi ?
Tu veux que la fonction de dise, ca ne marche pas?
Tu veux que la fonction de renvois l'heure?
A quel cas précis cela correspond t-il du coup ?
Si tu as des risques de bloquer sur une fonction et que ton programme n'a pas un besoin absolue de l'heure, tu met un timer avant, qui te sors de la fonction le cas échéant.
@68tjs 8heure post#29 .... les vocalismes du matin avec la grosse voix, aller on recommence, on inspire!
Bah la Marmotte elle me le dit lorsque lorsque elle a un problème, mais les modules a base DS3231 ne renvoie aucune info. et les Lib font avec
Oui seulement deux registres pour la gestion, hormis les autres qui son l'utilité 1er de cette puce.
pour le "...les autres n'ont pas tes problèmes" cella viendra
@Terwal Oui c'est la solution, utilisé la librairie TimeLib de GitHub - PaulStoffregen/Time: Time library for Arduino avec la fonction requestTime(receiveTime) de MySensors
c'est jouable, et pour l'utilisation du module DS3231 c poubelle, je vais peut être contacter Makuna.
ah oui tes questions: Mouai, mais du coup tu t'attends à quoi ? = un module externe qui ne bloque pas le reste du programme sur un saut d'humeur. Tu veux que la fonction de dise, ca ne marche pas? = ne marche pas c pas grave,bien que.., mais que je n'ai pas a me dire tien la bat est peut être vide et je risque de perdre l'heure . Tu veux que la fonction de renvois l'heure? = la sauvegarde du temp , la fonction 1er le pourquoi elle est vendue. A quel cas précis cela correspond t-il du coup ? lorsque un neutrinos la traverse ou manque 5volt
ReEdit2 : un pont diviseur + sonde de température du module DS3231 pour
compensé la dérives des valeurs, la sortie (entré) Bat du module sur une IA de l'arduino et c bon : lire en 7.1 de RitonDuino: Alimenter un ARDUINO sur Pile ou Batterie
merci Riton
Ou tu déclenche toi même un timer, c'est toi qui vois.
Pour le coup, ce n'est pas le module qui pose problème, c'est ta librairie qui est bloquante
Ca c'est deux chose différentes, comme le précise @68tjs , tu dois pouvoir gérer le niveau de la batterie, si le module ne le fait pas.
Si tu n'a pas changer la batterie à temps et que tu as une coupure du 5V, qui d'ailleurs à forte chance aussi d'impacter ton µC, tom programme peut-il fonctionner sans l'heure?
Le problème n'est pas la sauvegarde du temps, ton problème est que si ton module n'est pas alimenter, forcément il ne fonctionne pas et ne peux pas te renvoyer l'heure, même si il a une batterie de sauvegarde de l'heure non?
en gros le module doit être alimenter par autre chose que la batterie, pour te répondre ?
après que suite à ça il te renvois la bonne heure est un autre problème.
Dans ce cas, ton µC, ne sera pas plus alimenté ?
Désolé, ca fait beaucoup de référence et de questions.
Mais j'ai du mal à suivre ta logique et donc je cherche à comprendre ce que tu attends
"Pour le coup, ce n'est pas le module qui pose problème, c'est ta librairie qui est bloquante" ... oui toute
"... tu as une coupure du 5V, qui d'ailleurs à forte chance aussi d'impacter ton µC, tom programme peut-il fonctionner sans l'heure?" ... pour l'utilisation voulue Oui , repartir sur une Horaire fausse c pas le but
un truc que j'ai peut être pas vue:
la pile CR1220 sur le module Adafruit , lorsque le module n'est pas sous tension, la batterie est vide au bout de 5ans ??? ou 3mois ??
Une pile CR1220 a une capacité d'environ 38mAh
Le DS3231 consomme entre 0.8 et 3µA en mode backup.
Si on prend la valeur moyenne de 2µA cela donne une autonomie de plus de 2 ans.
En principe, un système avec une RTC n'a pas vocation à fonctionner pendant des jours ou des semaines sans alimentation. Donc il faut bien se dire que la pile va avoir une durée de vie beaucoup plus importante que les 2 ans calculés. Tu peux très bien prévoir en maintenance préventive de changer la pile tous les 2, 3 ou 5 ans.
Les batterie de la famille LIRxxxx ont en générale une capacité plus faible que les piles CRxxxx
Par exemple une LIR1220 est donné pour une capacité entre 8 et 15mAh. Et elles ne vieillissent pas toujours très bien.
Discussions · Makuna/Rtc · GitHub is a better place to ask this question. I don't monitor the Arduino forum and I am unsure if you @Makuna it will notify me in a way that I could come respond.
Just a note for information for others not specific to Rtc Library, but more about the use of the standard WIRE library this the Makuna RTC library relies on.
The default for WIRE when it is disconnected seems to have been to lock up. But the Wire API has changed, and you can call setWireTimeout() and you can read about it here.
This timeout feature is not universal across platforms. So, it will just lock up if it doesn't find the device is normal operating procedure from WIRE. They seem to have a plan for cross platform in compatibility as outlined in the link above. But at this time, related to the use with this library and probably others, calling this is going to be left up to the sketch writer to add after calling begin() on the library. In the case of RTC by Makuna, you can check for timeout error after methods by calling rtc.LastError() and checking the return value.
------- lue sur ---
"les bibliothèque Wire semble manquer les nouvelles fonctionnalités de temporisation actuellement présentes dans GitHub - arduino/ArduinoCore-avr: The Official Arduino AVR core qui est venu avec la dernière version de la version 1.8.3.
Ces changements permettent aux communications I2C de fonctionner sans risque de verrouiller tout votre firmware lorsque quelque chose d'inattendu se produit dans le bus et résout des dizaines de ( centaines? ) d'étranges insectes signalés au cours de la dernière décennie.
La nouvelle bibliothèque Wire a vu son API étendue pour inclure les nouvelles fonctions suivantes pour gérer la fonction de délai d'expiration."