DS 3231 n'affiche rien...

Bonjour à tous,
J'essaie vainement de faire fonctionner le module RTC DS 3231 (provenance kit Elegoo),
mais aucun résultat ne s'affiche sur le moniteur série (il y a les titres, mais pas les données correspondantes). Je suis débutant en Arduino, ai-je "zappé" quelque chose ?
Merci pour votre aide. Cordialement

plumdoizo:
Je suis débutant en Arduino, ai-je “zappé” quelque chose ?

oui vous avez zappé la lecture de comment utiliser le forum et quelles informations sont utiles quand on pose une question… :slight_smile:

sinon on va vous dire:

il y a un bug ligne 42 et le fil rouge n’est pas bien branché…

codeinfo.png

… postez votre code (avec les balises) et une description des branchements

Bonjour,

oui mais comment fait-on pour t'aider, sans info, sans ligne de code, sans rien...

Pour les lignes de codes avant de te faire gronder, si tu les publies n'oublie pas de les mettre entre balise...

Première chose à faire, charger ce sketch : A I2C Scanner for Arduino · GitHub

Serial.begin(9600); // tu changes la vitesse si tu veux

Ce sketch affichera l'adresse I2C du DS3231.
S'il ne trouve rien : ton câblage est mauvais.
S'il trouve : vérifie la vitesse de ton moniteur série

Si toujours pas OK, suis les conseils #1 #2.

Merci pour vos réponses…
Après lecture d’un post du forum intitulé “Bien éditer son post pour les nuls”, je joins le code (copié bien sûr !) que j’ai utilisé.
Pour la partie matériel : Carte Mega 2560, DS 3231, et quatre fils pour relier les deux :5V,Gnd,Scl,Sda (vérifié et revérifié). La bibliothèque DS 3231 a été installée et …utilisée puisque la bête ne s’en plaint pas. Alors ???

Le code :

//www.elegoo.com
//2016.12.9
#include <Wire.h>
#include <DS3231.h>

DS3231 clock;
RTCDateTime dt;

void setup()
{
  Serial.begin(9600);

  // Initialize DS3231
  Serial.println("Initialize DS3231");;
  clock.begin();

  // Set sketch compiling time
  
  // Set from UNIX timestamp
   clock.setDateTime(1397408400);

  // Manual (YYYY, MM, DD, HH, II, SS
  clock.setDateTime(2016, 12, 9, 11, 46, 00);
}

void loop()
{
  dt = clock.getDateTime();

  Serial.print("Long number format:          ");
  Serial.println(clock.dateFormat("d-m-Y H:i:s", dt));

  Serial.print("Long format with month name: ");
  Serial.println(clock.dateFormat("d F Y H:i:s",  dt));

  Serial.print("Short format witch 12h mode: ");
  Serial.println(clock.dateFormat("jS M y, h:ia", dt));

  Serial.print("Today is:                    ");
  Serial.print(clock.dateFormat("l, z", dt));
  Serial.println(" days of the year.");

  Serial.print("Actual month has:            ");
  Serial.print(clock.dateFormat("t", dt));
  Serial.println(" days.");

  Serial.print("Unixtime:                    ");
  Serial.println(clock.dateFormat("U", dt));

  Serial.println();

  delay(1000);
}

OK c’est un copier collé de l’exemple DS3231_dateformat.ino c’est ça ?

A l’attention de hbachetti : le sketche proposé fonctionne, il a détecté trois adresses; la vitesse de transmission semble correcte (9600)…

Quant à la bibliothèque utilisée :

DS3231.h - Header file for the DS3231 Real-Time Clock

Version: 1.0.1
(c) 2014 Korneliusz Jarzebski
www.jarzebski.pl

Je vais essayer celle que vous proposez, je vous tiens au courant…

Pour JML, c'est bien un copié-collé de l'exemple en question...

Attention sur les modules RTC il y a très souvent 2 circuits intégrés I2C :

  1. le CI RTC proprement dit : Ds1307 ou bien mieux DS3231
  2. Une eeprom qui n'est pas gérée par les bibliothèques (va savoir pourquoi) et qui peut servir à stocker ce que l'on veut au hasard la date de la dernière mise à l'heure de la RTC.

Donc le module RTC retourne 2 adresses.

Bonjour,
Merci pour ces précisions; le scan du DS 3231 renvoie trois adresses donc la connexion semble se faire.
Mais pourtant ça ne fonctionne pas...

Bonjour

La pile est bien insérée ?

Je pense que oui : retirée, testée (bonne) et replacée...

Comment 3 adresses ?
Il y a un autre composant I2C sur le bus ? Tu n'en a pas parlé.
A quels compposants correspondent ces 3 adresses ?

Quelle adresse utilises tu pour commander le DS3231 ?

Fait nous une copie de ce qui sort sur le moniteur.

Ah le boulet que je suis : comment on fait un copier-coller du contenu du moniteur série ?!!!
Parce que clic droit puis copier, il n'en veut pas...

Attend une réponse d'un utilisateur de windows.
Mais mettre le texte en surbrillance, control C puis control V dans la réponse cela devrait le faire.

Mais on ne va pas tout faire a ta place :

Quelle doit être l'adresse du DS3231 ? Tu l'utilises il faut peut-être avoir cette information !
Quel est le deuxième circuit ? Qui y a t-il écrit sur le boîtier ?
Qu dit une recherche " référence_du_circuit datasheet" ? ==> c'est dans la datasheet que l'adresse I2C est indiquée

Et si tu faisais une recherche avec simplement "DS3231 adresse I2C"
Tu obtiendrai ceci :

Why does my DS3231 RTC have two unique I2C addresses?

en cliquant sur le 4eme lien :

L’adresse du DS3231 est 0x68. Les librairies utilisent toutes cette adresse.

Si le scanner trouve le 0x68 cela veut dire câblage DS3231 OK.
Donc le problème est dans ton code :confused:

A moins que tu utilises un code personnel sans librairie …

Moi ce qui me gêne c'est qu'il dit qu'il connecte 1 "module" DS3231 (donc au scan on doit trouver 2 adresses I2C) et qu'il dit qu'il en trouve 3.

plumdoizo:
Bonjour,
Merci pour ces précisions; le scan du DS 3231 renvoie trois adresses donc la connexion semble se faire.
Mais pourtant ça ne fonctionne pas...

Il y a un manque de cohérence et si c'est pas cohérent c'est qu'il y a un loup.
Il va falloir tout dire.

Cela me gène aussi.
Encore un demandeur à qui il faut tirer les vers du nez :confused:
S'il ne fournit pas ce qui est demandé au prochain post : abandon.

Bonsoir à tous,
Promis les gars je ne vous cache rien, mais je pédale un peu dans la choucroute au milieu de toutes ces informations et questions !!!
Je vais essayer de ne rien oublier (ou presque...) :

Faire un copier-coller d'un extrait du texte affiché sur le moniteur série a bien fonctionné avec les raccourcis clavier (je n'y avais pas pensé , mais pas avec la souris. Donc copie du scan I2C avec les trois adresses (le seul module connecté à la carte Arduino est le DS 3231) :

Scanning...
I2C device found at address 0x57 !
I2C device found at address 0x5F !
I2C device found at address 0x68 !
done

Le deuxième circuit sur le module porte les références suivantes :

ATMLH745
24C32BN
SU27 D

Le code utilisé n'est pas de moi bien sûr, c'est un copié-collé issu d'une librairie toute prête :

de l'exemple DS3231_dateformat.ino
DS3231.h - Header file for the DS3231 Real-Time Clock

Version: 1.0.1
(c) 2014 Korneliusz Jarzebski

En tous cas merci pour votre aide!