Librairie Makuna Freez

Bonsoir

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 :frowning:

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!! :slight_smile:

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 .

Et la pile/batterie de la RTC fait dans les 3V?

Moi j'utilise celle-là sans soucis

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é.

pas de problème, merci pour ton retour.

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 :grin:) 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 :slight_smile:

1 Like

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 :slight_smile:
( j'ai trop de truc en cours , et non tu dit pas des conneries)

@terwal oh oui c'est des Pro du terrain ton lien https://northernwidget.com/
et des infos sympa (merchi)

...." Et la pile/batterie de la RTC fait dans les 3V?" heu je mesure la pile .... 0,22volt :slight_smile:
@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!

Non, tu ne dis pas de connerie :rofl:, c'est juste mon avis, il n'a pas forcément plus de valeur que le tien :laughing:

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.

pour info sur le matériel : Adafruit DS3231 Precision RTC

une info qui vient de tomber sur mon Telex , pas encore lue .
https://www.chippiko.com/stm32-rtc-stop

Du coup c'est quoi le comportement exacte de ton module.
au bout d'un moment, il ne répond plus ou lorsque tu coupe l'alimentation, il perd l'heure?

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 ??

A Demain

Tu peux détailler ce qui ne marche pas exactement.
Je suis désolé, mais Bloking loop sur manque alim, ca ne me parle pas

re-edit du re-Edit :slight_smile:

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)

A Demain

Hello, c'est un accu qu'il faut mettre dans l'horloge, pas une pile
un exemple ICI

Non, le DS3231 n'intègre pas de circuit de charge et la carte d'Adafruit non plus. D'ailleurs ils précisent bien sur le site d'utiliser une CR1220

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.