Problème de connection d'horloge RTC

Bonjour,
Je rencontre le problème suivant: sur une carte UNO ou Mege2560 et l'exemple SetTime pour l'horloge DS1307RTC.
"Erreur de communication"
Sur la UNO SDA sur A4 et SCL sur A5
Sur la Méga, c'est en Grove et les 3 ports sont reconnus, l'horloge a le 51

J'ai également essayé Time RTC Set, le L'horloge compte bien le temps qui passe, mais la date est au 1.1.1970, et je sais pas ou modifier. J'ai pourtant régler le Date_Time , sans succès.
Merci de votre aide

Bonjour,

La première chose à faire est de lancer un scanner I2C pour voir si ton module est bien reconnu.
https://playground.arduino.cc/Main/I2cScanner/

Je ne comprend pas ce que tu veux dire. Il n'y a pas trois ports I2C

Bonjour fpaude

Ce n'est pas nécessaire puisque

Pour régler, automatiquement ta RTC, prends l'exemple de la bibliothèque RTClib-master ds1307, il y a une procédure

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

Enlève la pile de ta RTC, puis remet-la et charge ce programme dans ton Arduino, en principe ta RTC prend l'heure do ton PC.

Cordialement
jpbbricole

sic

Il n'y a pas que le module qui doit être vérifié il y a aussi les liaisons.
Rien ne prouve qu'il n'y a pas une erreur avec la carte UNO. tout simplement une inversion A4 avec A5.

Sur les cartes uno A4 et A5 (ou A5 et A4 je parle de tête) sont renvoyés sur des pins marquées SDA et SCL.

Ce sont exactement les mêmes sorties du micro, ce n'est pas un port supplémentaire.

Bonjour 68tjs

Il ne pourrait pas y avoir

Si SDA et SCL sont inversés c'est impossible, le bus i2C ne fonctionne pas!

Cordialement
jpbbricole

Kammil a juste demandé que le demandeur fasse une vérification qui prend moins de 5 mn.
Je ne comprends pas pourquoi tu dis que c'est inutile.

La première qualité pour faire de la mise au point est d'être humble et d'envisager en permanence qu'il peut y avoir des erreurs.
Plus de 40 ans de développement électronique m'ont donné la certitude que le pire danger c'est les bêtises de l'opérateur, moi y compris.

Ce ne serait pas la première fois qu'un demandeur se rende compte qu'il a confondu et qu'en fait ce n'est pas comme il avait dit.
Tous ceux qui sont parti bille en tête sur ces premières explications ont, au final, perdu leur temps.

La demande de Kammil est basée sur l'expérience qui a montré qu'il vaut mieux perdre 5 mn a tout vérifier.
Il y a des gens qui sont ici depuis plus de 10 ans qui en ont vu de toutes les couleurs et qui dans l'intérêt des demandeurs, pour leur permettre d'obtenir rapidement les meilleures réponses, préfèrent tout clarifier avant d'entrer dans les détails.

Bonjour 68tjs

Ma remarque à Kammil est basée sur mon expérience du bus i2C qui me dit que si

Le bus fonctionne et que SDA et SCL ne peuvent en aucun cas inversés comme tu sembles le préconiser et te "cacher" derrière des décennies d'expériences ne va pas te rendre plus convaincant à mes yeux.
Je persiste à dire que scanner le bus n'était pas utile.

C'est curieux que sur ce forum, il est impossible de "contrer" l'avis d'un aidant "récurant" sans se faire allumer!, tout le monde peut se tromper!!

Cordialement
jpbbricole

@fpaude dit dans son 1er message
"Erreur de communication" et deux lignes plus bas nous dit que l'horloge compte (comment il a vérifié?)
Ca nécessite pour le moins une clarification!

Bonjour Kammil

Oui, certainement.

Cordialement
jpbbricole

Ne confond pas tout.
Tu as le droit d'avoir et d'exposer une opinion divergente .
Par contre, dire qu'une vérification est inutile là je dis non, et je dis non aussi par expérience.
Le nombre de renseignements incomplets ou faux est trop importants.

On ne peut pas demander à un débutant d'être précis comme un vieux de la vieille, il faut lui laisser le temps pour apprendre.
Mais quand quelqu'un demande des vérifications ou des précisions même si elles paraissent bizarre, c'est que le quelqu'un soupçonne une piste ou une "couillonnade" donc on ne dit pas au demandeur : ne fait pas cela ne sert à rien.

C'est différent que d'avoir des idées différentes sur des solutions techniques.

Quand tu dis que tu préfères une bibliothèque antirebond à un condensateur, je ne dis pas que tu n'as pas le droit de le dire.
Je dis juste que les deux méthodes doivent être exposées honnêtement et je ne dis pas qu'il faut impérativement utiliser un condensateur même si j'en suis convaincu.

Quand j'ai débuté en langage C en 1987, j'étais le seul à pratiquer ce langage dans la boîte, et j'étais nouveau dans l'entreprise. Autant dire un noob, mais les développeurs assembleur de l'équipe trouvaient que j'avançais bien plus vite qu'eux. Donc j'ai vite gagné mes galons de gourou, et il m'ont confié l'écriture de leur OS.

6 mois avant de partir en retraite j'ai intégré une équipe de vrais gourous très poilus sur un projet de haut niveau en PYTHON sur processeur de mobile SAMSUNG.
Qu'est ce qui les intéressait chez moi ? mon expertise dans le monde des lecteurs de cartes bancaires, rien de plus.
Par contre question codage et méthodes je repartais de ZÉRO ou presque. A 6 mois de la retraite ça fait rigoler. J'ai accepté en sachant que j'allais en baver comme jamais dans ma vie.
J'ai appris quelques petites choses essentielles durant ma carrière :

  • l'humilité. On peut être un noob quelque soit son niveau
  • travailler en équipe, pratiquer le consensus
  • en cas de problème, toujours douter de son propre code, pas de celui des autres
  • tester, re-tester, et tester encore

Je ne m'appelle ni Linus Torvalds, ni Richard Stallman, et je n'atteindrai jamais leur niveau.

Bonjour hbachetti

De ce côté là, je suis entièreement d'accord avec toi!

Cordialement
jpbbricole

Quel exemple SetTime ?
Quelle librairie ?
Quelle exemple de librairie connue affiche "Erreur de communication", en français ?

Quand une question aussi pauvrement documentée tombe sur le forum, je ne répons pas, je passe mon chemin.
Je vous invite à faire de même.

Bonsoir,
Je ne pensais pas avoir une "déclaration d'hostilités "entre personnes compétentes.
Veuillez m'en excuser!
Je me suis certainement très mal exprimer face à des personnes qui pratiquent depuis longtemps et dont c'est également le métier.
Si vous me donner un bout de bois, je vous montrerais comment en faire un simple tasseau ou pourquoi pas une sculpture.
J'ai aussi la passion de la spéléologie, alors me parler de sécurité, d'évolution sur corde avec beaucoup de vide sous les pieds, je suis très à l'aise pendu sur un fil, mais dans le domaine de l'Arduino, je suis novice....
En tant que spéléologue, nous (le club) avons entrepris une étude scientifique sur les variations de niveaux d'eau d'un lac situé à 80 m sous terre.
Des mesures en surface sous forme de station météo est important pour mesurer le temps de réponse entre la pluie extérieure et la variation du niveau du lac est le sujet de cette étude.
Une horloge est donc souhaitable. Mais malgré beaucoup d'essais divers, rien n'est concluant.
Des sondes spécialisées seront installées dans le lac pour les variations de pression, T°

Nous avons à disposition une carte Méga2560 avec un shield grove pour connecter le pluvio, l'anémo, la girouette, la T° , pression et humidité. A cela, vient s'ajouter une carte SD pour enregistrer toutes ces mesures. l'alimentation sera solaire car loin de la civilisation (Si, si, c'est possible en France)
Tous ces modules fonctionnent correctement séparément actuellement. Il faudra assembler tout ce petit monde dans un seul croquis par la suite....
Le module RTC nous pose effectivement un soucis, car en utilisant simplement les très diverses librairies ou croquis trouvées, rien ne fonctionne vraiment.
Nous avons scanné une carte UNO avec les ports 4 et 5 qui semblent correctement branchés et la Méga sur I2C qui est également correct. Les résultats sont identiques.
Avec :
Time_RTCSet.pde, l'horloge défile correctement, mais la date est mauvaise malgré la mise à jour du Default_Time
Time RTCLogger.ino,rien ne s'affiche dans l'IDE
DS RTC Read Test m'indique : 1307 read error! Please check the circuitry
D'autres exemples me permettent de choisir la date et l'heure, mais rien n'est concluant, sans plus.
Nous pensons que cela fonctionne (presque) soit sur UNO ou Méga2560, mais il y a des paramètres qui nous échappent complètement.
La version d'Aduino est 1.8.5
L'horloge provient de: Module Grove Horloge temps réel 102020083 pour arduino et Raspberry
Nous recherchons simplement une aide pour une étude scientifique totalement bénévole réalisée par des bénévoles passionnés dans la spéléo et son aspect scientifique au même titre que vos connaissances en programmation Arduino.
Merci de ne pas passer votre chemin.
Merci d'avance, et nous restons à votre écoute pour affiner notre démarche.
Cordialement

J'en conclus que "1307 read error! Please check the circuitry" est équivalent à "Erreur de communication". Une sacrée piste ...

Time_RTCSet.pde : une recherche donne Time/TimeRTCSet.ino at master · PaulStoffregen/Time · GitHub

Time RTCLogger.ino : Time/TimeRTCLog.ino at master · PaulStoffregen/Time · GitHub

DS RTC Read Test : ? ? ? ? ? ?

Je ne sais pas si certains se rendent bien compte des efforts qu'il faut faire parfois pour aider des demandeurs qui ne sont même pas foutus de fournir un lien sur les fichiers dont ils parlent.

Bonjour fpaude

Surtout pas!
Magnifique projet, mais il va falloir "se crocher" pour tout faire fonctionner ensemble.
Je fais aussi de la spéléo, oui, oui!, :rofl: quand je cherche quelque chose dans mon b....l, pardon matériel, et j'ai trouvé un datalogger qui a un ds1307, je vais pouvoir te guider.
Tout d'abord, si tu as d'autres périphériques i2C connectés, déconnectes les. Fait une liste avec des liens de tout ce que tu veux connecter à ton système
En suite, pour la RCT la bibliothèque, ici, dans les exemples il y a SetTime.ino, pour mettre l'horloge à l'heure. Déconnecte ta RTC du système, sort, la pile bouton de son logement, après quelques instants, remets la puis reconnectes le module , puis charges SetTime.ino avec la console à 9600, tu devrait voire la mise à l'heure.
!!! Attention à ne pas laisser le sketch SetTime.ino dans ton Arduino, charges immédiatement ReadTest.ino par exemple, en effet si ce sketch reste à chaque redémarrage de ton Arduino, il reprendra l'heure du téléchargement du sketch.
Ensuite charges l'autre exemple ReadTest.ino. pour voire le fonctionnement de ta RTC.

Donnes moi des nouvelles.

Cordialement
jpbbricole

Vu le projet et sans doute une installation dans la durée, une DS3231 serait plus appropriée.

Bonjour J-M-L

Je connais "l'imprécision" de la DS1302 mais pas la précision DS1307, où trouver l'info?

Cordialement
jpbbricole

Tout à fait mais il faut dire pourquoi.
Le module DS1307 subit les dérives du quartz externe et avec un module à 1 € il ne faut pas espérer un quartz de compétition.
La DS3231 n'utilise pas de quartz externe mais un système interne dans la puce (MEMS) qui est compensé en température. L'ensemble est beaucoup plus précis et dérivera infiniment moins.

Pour des utilisations sur le long terme un étalonage est possible ainsi me semble-t-il qu'une calibration (je n'ai pas actuellement une datasheet de ds 3231 sous la main pour vérifier, je parle de mémoire).

Précision de vocabulaire ;
Etalonage : mesure des écarts par rapport à un étalon de grande précision.
L'affichage de l'appareil n'est pas corrigé.

Calibration : correction de l'affichage pour :

  • tenir compte de la courbe d'étalonnage
  • faire en sorte que la mesure affichée entre dans la précision annoncée.
    Un appareil de mesure est toujours annoncé avec une précision ; 1%, 5%,10 %...

Pour l'étalonnage on peut se servir du temps délivré par les serveur NTP (temps du réseau internet).

1 Like