bizarrement j'ai un arduino uno ou il y a les SDA et SCL, j'ai quand meme essayé sur les A4 , A5 mais aucun changement, j'ai essayé sur un autre uno wifi donc j'ai fait les branchement sur A4 et A5 et là le I2C detecte un device sur l'adresse 0x48, j'ai ressayé de televerser le code du DS1307 mais toujours pas de resultats
Je ne vois pas
#include <Wire.h>
en début de programme (avant l'include de la lib RTCLib)
Tu peux aussi ôter la ligne
while (!Serial); // for Leonardo/Micro/Zero
Si tu utilises la bibiliothèque d'Adafruit, ils imposent l'adresse de la RTC à 0x68
#define DS1307_ADDRESS 0x68 ///< I2C address for DS1307Si la tienne est 0x48, il ne la trouvera pas...
Tu peux tester en modifiant la ligne 32 du fichier RTCLib.h et recompiler ton sketch
Merci pour ton aide lesept !
Oui j'utilisais la RTClib d'Adafruit donc je fais les modif nécessaire mais toujours le meme probleme ![]()
Même sur l'arduino wifi ?
lgabed420:
bizarrement j'ai un arduino uno ou il y a les SDA et SCL, j'ai quand meme essayé sur les A4 , A5 mais aucun changement, j'ai essayé sur un autre uno wifi donc j'ai fait les branchement sur A4 et A5 et là le I2C detecte un device sur l'adresse 0x48, j'ai ressayé de televerser le code du DS1307 mais toujours pas de resultats
Le DS1307 a pour adresse 0x68 et ne peut être changée. Donc le scanner devrait trouver un composant à cette adresse.
Ou alors ce n'est pas un DS1307.
Pour info liste des adresses I2C
Bon, on va pas se laisser emm***er par une ligne de code ! Change
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// 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));
}
par
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
... et remet la bibli comme elle était, si l'adresse doit être 0x68, inutile de la chercher ailleurs...
Par contre, le résultat du scanner sur l'arduino wifi est étonnant.
le sept : Oui je travaille sur l'arduino wifi depuis tout à l'heure car l'autre carte ne detectait meme pas le I2C device
j'ai debranché le module RTC et là le I2C scanner detecte toujours un device à l'adresse 0x48.
j'ai changé la ligne du code donc y a plus le message RTC is not ... , cepedant l'heure n'est pas reglé, faut-il l'ajuster ?
2165/165/165 (Monday) 165:165:85
since midnight 1/1/1970 = 1564357585s = 18105d
now + 7d + 30s: 2019/8/5 12:16:31
Ça peut pas être pareil puisque tu as enlevé le test qui bloquait. Peux-tu copier dans ta réponse le contenu de la console série ? J'ai du mal à voir d'ici (ma vue baisse avec l'âge)...
Pardon j'ai modifié ma reponse, voilà le contenu de la console :
2165/165/165 (Monday) 165:165:85
since midnight 1/1/1970 = 1564357585s = 18105d
now + 7d + 30s: 2019/8/5 12:16:31
Cette ligne la met à jour :
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
Tes deux premières lignes sont suspectes
2165/165/165 (Monday) 165:165:85
since midnight 1/1/1970 = 1564357585s = 18105d
Mais la suivante semble correcte : peut-être que la RTC a besoin d'un moment pour s'initialiser avant de fournir ses données.
now + 7d + 30s: 2019/8/5 12:16:31
Essaye d'ajouter un delay(1000) en fin de setup.
Est-ce que l'affichage change toutes les 3 secondes ?
Toujours pas , oui il y a une paragraphe chaque 3 sec mais les valeurs ne change pas du tout
J'ai simplifié ton code :
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup () {
Serial.begin(57600);
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
void loop () {
delay(3000);
DateTime now = rtc.now();
Serial.print(now.year());
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
Laisse le tourner pendant 30 secondes et affiche le contenu de la console STP.
J'obtiens toujours la meme chose :
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
2165/165/165 (Monday) 165:165:85
Essaye avec cette bibliothèque. Teste l'exemple ReadTest.ino
j'ai ca sur la console :
DS1307 read error! Please check the circuitry.
je crois que c'est un probléme materiel sur le DS1307, la seule solution et de commander un autre ...
est que vous me conseiller de rester sur le DS1307 ou c'est mieux le DS3231 ?
Le scanner devrait trouver 2 adresses car les cartes modules DS1307 contiennent "deux cachoux noir".
L'un est le DS1307 adresse fixe 0x68. Normal qu'il n'y ait qu'une seule adresse possible, le nombre d'adresses possibles est limité et il serait absurde de mettre deux RTC dans le même montage.
Toutes les RTC ont la même adresse 0x68 c'est pour cela que la bibliothèque l'indique "en dur" dans le code.
L'autre est une eeprom et c'est probablement elle qui a l'adresse 0x48.
Vu les quelques renseignements dont on dispose on peut dire que le circuit intégré DS1307 n'est pas détecté.
Tant qu'il ne le sera pas il est inutile d'aller plus loin.
DS3231 sans aucune hésitation
D'accord, je vous remercie encore une fois pour l'aide que vous m'avez apporté !
Est ce que vous aurez par hasard un lien ou une piste d'où je peux me procurer un DS3231 avec un délais de livraison minimum ?
Merci , pourquoi il n y a pas de quartz sur les DS3231 ?
Parce que l'oscillateur est intégré dans le circuit.Si tu veux en savoir plus