GROVE RTC 101020013

Bonjour , j'ai récupérer un programme directement sur la fiche technique de cette RTC , elle fonctionne mais ne m'affiche pas l'heure ? pouvez me dire ou est le problème et éventuellement si je dois ajouter quelque chose . merci

#include <Wire.h>
#include "DS1307.h"

DS1307 clock;
void setup()
{
	Serial.begin(9600);
	clock.begin();
	clock.fillByYMD(2019,3,18);
	clock.fillByHMS(13,15,30);
	clock.fillDayOfWeek(MON);
	clock.setTime();
}
void loop()
{
	printTime();
}

void printTime()
{
	clock.getTime();
	Serial.print(clock.hour, DEC);
	Serial.print(":");
	Serial.print(clock.minute, DEC);
	Serial.print(":");
	Serial.print(clock.second, DEC);
	Serial.print("	");
	Serial.print(clock.month, DEC);
	Serial.print("/");
	Serial.print(clock.dayOfMonth, DEC);
	Serial.print("/");
	Serial.print(clock.year+2000, DEC);
	Serial.print(" ");
	Serial.print(clock.dayOfMonth);
	Serial.print("*");
	switch (clock.dayOfWeek)
	{
		case MON:
		  Serial.print("MON");
		  break;
		case TUE:
		  Serial.print("TUE");
		  break;
		case WED:
		  Serial.print("WED");
		  break;
		case THU:
		  Serial.print("THU");
		  break;
		case FRI:
		  Serial.print("FRI");
		  break;
		case SAT:
		  Serial.print("SAT");
		  break;
		case SUN:
		  Serial.print("SUN");
		  break;
	}
	Serial.println(" ");
}

Le moniteur série est-il bien réglé sur 9600 baud ?

Oui il est belle est bien sur 9600 baud ,il m'affiche cela " 45:165:85 165/165/2165 165* "

Il serait bien dans un premier temps de vérifier la présence du chip DS1307 sur le bus I2C :

j'ai repris le programme et voila ce qu'il m'affiche
" I2C Scanner
Scanning...
I2C device found at address 0x3E !
done "

PS: J'ai une Grove RTC 101020013 mais la librarie se nomme DS1307 mais a priori elle devrait fonctionner

Tu es sûr ?
Dans le .h de la librairie je vois :

#define DS1307_I2C_ADDRESS 0x68

A tout hasard tu n'aurais pas un LCD I2C branché également sur le bus ?

l'adresse i2c du rtc groove est 0x68 non modifiable
le scanning i2c se fait avec uniquement le rtc sur le bus i2c
plusieurs lib RTC dans ton ide arduino ?
quelle carte arduino ? comment est branché le rtc ? vu que le groove a un cable 4 fils à relier a l'interface groove, les modules groove ont une connectique genre molex qui évite l'utilisation de cables dupont foireux, en contrepartie c'est plus couteux, il faut le "base shield" groove, sinon on revient aux dupont foireux en pire

Donc ma libraire n'est pas la bonne ?
Oui , comme je voudrais afficher l'heure sur une LCD il est également brancher sur le bus

j'ai essayer plusieurs librairie pour la RTC mais j'utilise qu'une seul librairie (les autres ne fonctionner pas , il y avais plein d'erreurs au départ ),
j'ai une carte arduino UNO , j'ai la base shield à disposition et c'est avec celui-ci que la RTC est brancher

Oui , comme je voudrais afficher l'heure sur une LCD il est également brancher sur le bus

J'ai posé la question d'un LCD sur le bus I2C car l'adresse 0x3E est l'une des adresses possibles pour ce genre de composant I2C.

I2C device found at address 0x3E !

Si tu ne vois que le LCD sur le bus I2C, c'est que le RTC n'est pas visible.
Ce n'est pas un problème de librairie, mais de branchement.
Tant que tu ne vois pas le LCD (0x3E) et le DS1307 (0x68) avec le logiciel I2C-scanner, pas la peine d'aller plus loin.
Tu as peut-être inversé SDA SCL ?

J'ai essayé tous les ports sur ma base shield sa n'a pas fonctionner , j'ai changé de pile en me disent qu'elle était peut-être vide mais toujours sans succès , j'ai tenté ma chance avec une dernière pile et sa a marcher donc le problème était la pile ( pile étant neuve )

Donc tout fonctionne a merveille mais je voudrais pouvoir afficher l'heure sur mon écran LCD comment dois-je procéder ?

Le DS1307 doit être branché sur le bus I2C, comme le LCD.

j'ai tenté ma chance avec une dernière pile et sa a marcher donc le problème était la pile ( pile étant neuve )

Bizarre. La pile peut être absente. Elle sert simplement à conserver l'heure en cas de coupure d'alimentation.

Donc tout fonctionne a merveille mais je voudrais pouvoir afficher l'heure sur mon écran LCD comment dois-je procéder ?

Je te conseille cette librairie : GitHub - fdebrabander/Arduino-LiquidCrystal-I2C-library: Library for the LiquidCrystal LCD display connected to an Arduino board.

Ensuite inspire-toi d'un exemple simple : Arduino-LiquidCrystal-I2C-library/examples/HelloWorld/HelloWorld.ino at master · fdebrabander/Arduino-LiquidCrystal-I2C-library · GitHub

Modifie simplement l'adresse I2C :

LiquidCrystal_I2C lcd(0x3E, 16, 2);

j'ai modifier l'adresse I2C sur LiquidCrystal_I2C lcd(0x3E, 16, 2);
également lcd.begin(16,2);

une fois téléverser il devrait m'afficher Hello,Word! lcd.print("Hello, world!"); d'après l'exemple mais il ne m'affiche rien sur la LCD , c'est normal ?

As-tu ajusté le potentiomètre de réglage du contraste sur le module LCD I2C ?

hbachetti:
Bizarre. La pile peut être absente. Elle sert simplement à conserver l'heure en cas de coupure d'alimentation.

Ah non,

Battery voltage must be held between the minimum and maximum limits for proper operation.

....

If a backup supply is not required, VBAT must be grounded.

Il ne faut pas laisser Vbat en l'air ou avec une tension en dehors de la gamme 2,0V à 3,5V. Sinon le fonctionnement n'est pas garanti.

Dommage ...

Il me semble que le DS3231 n'a pas cette limitation, malgré qu'il soit conseillé aussi de relier VBATT à GND si on l'utilise sans pile.
Je le fais fonctionner sans pile en général et je la mets en place uniquement quand j'ai terminé.

le potentiomètre de réglage du contraste ? Les caractères sont visible sur l'écran avec un autre programme donc je n'ai rien modifier.

La pile n'est pas nécessaire dans mon cas et elle fonctionne sans la pile donc je pense faire sans.

Je ne sais pas , comme je n'ai pas de DS3231 je n'ai pas fais de recherche sur celle-ci.

Ma question était donc la suivante : comment doit-je faire pour pouvoir afficher l'heure ( avec le programme dans la page précédente ) sur mon écran LCD .

PS: mon écran est relié via la base shield

Les caractères sont visible sur l'écran avec un autre programme donc je n'ai rien modifier.

Tu veux dire qu'avec un autre programme tu parviens à afficher sur le LCD, avec la même adresse I2C, c'est bien ça ?
Et qu'avec le code du post #13 rien ne s'affiche ?

Il faudrait poster les deux codes, pas des petits morceaux.