un truc pas clair avec la Lib de Makuna pour la gestion de module RTC (DS3231)
le dépote : https://github.com/Makuna/Rtc
Explication, après une semaine à fini-olé un croquis au p'ti oignions
(programmateur horaire avec 3 point de consigne et action d'un relay )
j'ai commencer les scratchs test , bon résultat la bête retombe sur c patte et repart.
... perte com i2c , pas de probleme le prog Loop tourne toujours.
Je coupe L'Alim du module , le 5volt , Bug Bug
plus rien ne tourne
j'ai repris l'exemple simple de la Lib pour un autre test ....... idem , ma prog n'est pas en cause .... c pas moi c lui!!
la le croquis allégé de c matière grasse.
// ---------------- Exemple de la Lib -----------------
// https://github.com/Makuna/Rtc/blob/master/examples/DS3231_Simple/DS3231_Simple.ino
// --------------------- Blocage du cycle par perte Alim sur RTC --- Lib de Makuna en défaut ?? ---
// utilisation normale
#include <Wire.h>
#include <RtcDS3231.h>
RtcDS3231<TwoWire> Rtc(Wire);
int i = 0 ; // test compteur Loop
//----------------- SETUP --------------------------------
void setup () {
Serial.begin(115200);
//Wire.begin(); // test avec ajout -- inutil
Serial.println (F("RTC Makuna DS3231 LOOP FreeZ ")) ;
Serial.print("compiled: ");
Serial.print(__DATE__);
Serial.println(__TIME__);
Rtc.Begin(); // Démarre la communication avec RTC
// Obtient la valeur de l'heure à laquelle le code a été compilé
RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);
// printDateTime(compiled);
Serial.println();
}
//------------------------------- LOOP -----------------------------
void loop () {
RtcDateTime now = Rtc.GetDateTime();
// printDateTime(now);
Serial.println();
RtcTemperature temp = Rtc.GetTemperature();
temp.Print(Serial);
// vous pouvez également obtenir la température sous forme de flotteur et l'imprimer
Serial.print(temp.AsFloatDegC());
Serial.println("C");
// test pour perte Alim sur RTC
if (i < 10) i++; if (i >= 10) i = 0; // test boucle
Serial.print(" test cycles: "); Serial.println(i);
delay(3000); // 3 seconds
}
//------------------- fin pgm -------------------
une idée ???
sinon me reste plus que trouvé une autre Lib , dommage je commentai a bien la connaitre .
allez, un module RTC en I2C avec genre 16 registres à tout casser?
On se relève les manches et on se programme sa petite biblio perso nan?
Ca va demander un peu de temps, mais au moins celle là tu seras sur de la connaitre!
PS: déso je suis en train de construire la mienne pour ma nano 33 IOT, mais pour l'instant j'ai juste marqué les 2 premières adresses de registre... pas de quoi faire réver les foules.
autant je trouve sympa de savoir comment marche ce que l'on utilise et le satisfaction de le faire soit même.
Par contre se faire chier à programmer une librairie uniquement parce que l'on ait tombé sur un petit soucis ou que l'on n'a pas utilisé la bonne, j'avoue que je ne comprends pas trop.
Surtout pour ce genre de librairie qui est massivement utilisé et donc testé.
Construire mes librairies perso, c'est un bon moyen que j'ai trouvé pour monter mon niveau en code (on s'inspire des petits copains qui sont meilleurs!).
La satisfaction de voir son truc fonctionner (après pas mal de galère généralement ) vaut carrément l'effort fourni selon moi, surtout que ça correspond très bien à mon usage: je code dans mon coin, plutôt souvent sur des cartes dédiées, je code uniquement ce dont j'ai besoin, et je m'évite des interférences matérielles (qui m'ont laissé des souvenirs douloureux de nuits passées à débugger).
Attention, je ne critique pas ce que tu fais, je trouve ça très bien, même si je ne ferais peut être pas de même, le principal c'est que tu t'amuse dans ce que tu fais et je n'y vois rien à redire.
C'est le conseille, que je trouve pas forcément juste
alors ta remarque a toute sa place ici, et on laissera l'auteur du post faire son choix!
merci quand meme pour ce petit retour, à la 1ère lecture, je me suis dit mince, j'ai encore dit des conneries (j'aime sans doute plus apporter mon aide que je ne suis expérimenté en code!)
@GrandPete ta démarche est Top, mais j'ai pas le niveau, le sérieux, je risque de partir encore dans tout les sens et revenir avec ma Lib dans .... 2ans
( j'ai trop de truc en cours , et non tu dit pas des conneries)
...." Et la pile/batterie de la RTC fait dans les 3V?" heu je mesure la pile .... 0,22volt @fdufnews tu pense que c'est cella ??
je test avec une pile neuve demain, mais sinon c nul , même archi Nul.
Alors j'envoie dans l'espace mon satellite perso et bug parques une pile "bouton" est vide ...houlla
ça va faire un peu juste pour une pile bouton 3V, c'est clair.
Dis donc ta pile, pas de gonflement inhabituel ou de coloration autour du joint? J'ai lu à droite à gauche que le module DS pouvait essayer de recharger la pile bouton quand il est alimenté suffisamment de l'extérieur (genre par une carte arduino!).
Et recharger une pile qui n'est pas faite pour ça, ça n'augure rien de bon!
j'ai pris des sacrés taquets sur les fils anglais et pas toujours pour de très bonnes raisons.
Ca m'a rendu un peu frileux (parano?), mais on dira que c'est de ma faute.
je vient de tester la Lib de NorthernWidget ..... idem c'est Bloking Loop sur manque alim du RTC
(demain une brouette de pile neuve )
" c'est quoi le comportement ...... il ne répond plus ou lorsque tu coupe l'alimentation .."
la de test : if (i < 10) i++; avec Serial.print(" test cycles: "); Serial.println(i); .. plus rien d'afficher sur le terminal ( demain je test aussi avec une led en clignotant )
plantage du port serial ??
avec le test : if (i < 10) i++; avec Serial.print(" test cycles: "); Serial.println(i); .. plus rien d'afficher sur le terminal ( demain je test aussi avec une led en clignotant )
plantage du port serial ??
oui lorsque je coupe l'alim 5volt ( sans la pile .... c comme)
Je partage ta démarche, enfin sur des composants aussi simple, rudimentaires meme, qu’une horloge.
Et je le recommande parce que cette démarche oblige a ouvrir une datasheet.
Avant de se lancer à la chasse aux bibliothèques pour finir par en prendre une au hasard parce qu’un ”youtube” a ete commis par un inconnu qui n’y connais rien mais qui fait des belles photos, il me semble que c’est dans la datasheet ecrite par le fabricant du produit que l’on trouve les propriétés du produit.
Je reproche aussi aux bibliothèques leur fausse universalité. A force de vouloir, dans le meme fichier, couvrir tous les microcontroleurs leur lecture devient indigeste.
Et leur maintenance difficile.
A un moment il faut séparer les versions et traiter séparément les vieux micro des nouveaux.
Bien evidement cette demarche n’est applicable qu’à des composants simples comme le ds3231, mais je trouve qu’elle remets les pieds au niveau du sol.