Problème màj RTC ds1307

Un log shield sur carte SD avec horloge RTC et zone de prototypage à pastilles carrées

Problème màj RTC ds1307

Message non lude jpjcb66 » Dim 19 Mai 2013 17:35

Bonjour à tous,
J'ai un shield mémoire depuis quelques temps et me remet au travail après qq mois d'interruption.
Donc je souhaite mettre à jour l'horloge qui a une heure de retard.
Je suis sous IDE 023. Le sketch RTClib/ds1307 monté sur arduino uno se compile normalement et se charge non moins normalement.
Malheureusement l'horloge ne s'aligne pas sur celle de mon Mac OS X.
Au début je pensais qu'il s'agissait d'un problème de fuseau ou heure d'hiver mais j'ai beau changer les paramètres de l'horloge du mac, la commande RTC.adjust(DateTime(__DATE__, __TIME__)); semble passer à côté de sa cible !!!
Une idée serait la bien venue ou un peu de code pour faire une mise à jour "manuelle".
Avec mes remerciements pour un petit coup de main.
je poursuis mes recherches.

jp
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE

Re: Problème màj RTC ds1307

Message non lude jpjcb66 » Lun 20 Mai 2013 08:24

Faute de mieux, je m'auto-réponds :
J'ai pu faire une mise à l'heure sans décalage en passant sur PC.
Le script pour mac os X utilisé avec ide 0023 semble inopérant sur l'horloge du mac. Je dis ça pour les Macistes.

Par contre ce petit sketch fonctionne bien sur mon mac toujours ide 0023 :
Donc je me remercie... ;)
Code: Tout sélectionner
/*Ecrit et lit valeurs (RTC) DS1307 et affiche dans le moniteur
 *
 *Created by D. Sjunnesson 1scale1.com d.sjunnesson (at) 1scale1.com
 *
 *Created with combined information from
 *http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1180908809
 *http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057
 *
 */

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

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

  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,34);     //set the minutes
  RTC.set(DS1307_HR,8);       //set the hours
  RTC.set(DS1307_DOW,1);       //set the day of the week
  RTC.set(DS1307_DATE,20);       //set the date
  RTC.set(DS1307_MTH,5);        //set the month
  RTC.set(DS1307_YR,13);         //set the year
  RTC.start();

}

void loop()
{

  Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
  Serial.print(":");
  Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
  Serial.print(":");
  Serial.print(RTC.get(DS1307_SEC,false));//read seconds
  Serial.print("      ");                 // some space for a more happy life
  Serial.print(RTC.get(DS1307_DATE,false));//read date
  Serial.print("/");
  Serial.print(RTC.get(DS1307_MTH,false));//read month
  Serial.print("/");
  Serial.print(RTC.get(DS1307_YR,false)); //read year
  Serial.println();

  delay(1000);

}
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE

Re: Problème màj RTC ds1307

Message non lude cgml » Jeu 20 Juin 2013 09:00

Bonjour,
je me permet d'ajouter une réponse à votre sujet dans la mesure où j'ai semble-t-il le même problème.
Je suis sur window 7 et lorsque je met
Code: Tout sélectionner
if (! RTC.isrunning())
{ RTC.adjust(DateTime(__DATE__,TIME__));
}

IL ne fait pas la configuration.
Dans le code que j'ai trouvé sur snootlab, il y a marqué : "Si la RTC n'est pas configurée, le faire avec les valeurs de l'ordinateur au moment de la compilation"
Qu'est ce que cela veut dire? comment faire cette configuration??
A l'heure actuelle j'ai mis le code suivant mais a chaque téléversement il remet la date au début. J'aimerai qu'il prenne la date du jour. A priori avec le code précédent c'est ce qui est sensé se passer mais pour le moment cela ne veut pas...
Code: Tout sélectionner
RTC.adjust (DateTime(2013,06,17,15,59,0));

Auriez vous des informations?
Merci
cgml
 
Messages: 7
Inscription: Jeu 20 Juin 2013 08:50

Re: Problème màj RTC ds1307

Message non lude jpjcb66 » Ven 21 Juin 2013 21:21

Bonsoir,

Je ne sais ce qu'il se passe, à une époque le forum était réactif, on avait immédiatement un réponse au moins d'un modérateur.
J'ai interrogé sur un autre problème dans le forum et en message privé à Snootlab, jamais eu de réponse...

Concernant la RTC, dans mon script j'ai ça :
/* Mise à l'heure horloge RTC DS1307
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(__DATE__, __TIME__));
}
*/
Je pense m'être servi de la dernière ligne pour la mise à jour sous XP. Mais je n'ai pas réussi sur Mac et là c'est pareil aucune réponse du forum ou de Snootlab.
@+
JP
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE

Re: Problème màj RTC ds1307

Message non lude SesechXP » Sam 22 Juin 2013 10:07

Salut,

Si tu essayes d'envoyer la valeur de DateTime(__DATE__, __TIME__) sur le port série, ça donne quoi ? Est-ce que le sketch passe dans le if ?

++
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: Problème màj RTC ds1307

Message non lude jpjcb66 » Sam 22 Juin 2013 10:29

Salut,
Pas bien compris la question.
Je ne peux faire le test car je ne suis pas chez moi ces jours-ci mais de mémoire je pense qu'en activant ce bout de code du setup on détecte si la RTC est active ou non ; puis une fonction de la library se charge de copier le contenu de l'horloge du PC dans les registres de la RTC.
Ensuite il faut désactiver le bout de code avec les /* --- */ sinon à chaque reset de l'arduino le sketch va chercher à mettre l'horloge à jour.
On pourrait avoir un mini sketch de trois lignes qui ne fasse que ça.
Ça réponds à ta question ?

@+ JP
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE

Re: Problème màj RTC ds1307

Message non lude SesechXP » Sam 22 Juin 2013 17:46

En fait je voulais avoir si, pour commencer, le DS1307 répondait bien. Ensuite envoyer la valeur de la date prise lors de la compilation par le port série pour vérifier qu'elle est bien initialisée.

Je n'ai pas de Mac pour tester, mais un Mémoire et Linux ou Windows. Pour ma part j'utilise la bibliothèque RTClib, et pas la même que toi. Je l'installerai à l'occasion...

++
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: Problème màj RTC ds1307

Message non lude jpjcb66 » Sam 22 Juin 2013 18:18

Et donc, ça fonctionne ?
Un peu plus haut il y a le code qui permet de compiler les valeurs introduites manuellement pour la mise à l'heure.
C'est un peu plus long.

@+ Toujours pas de Lionel à l'horizon ?!
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE

Re: Problème màj RTC ds1307

Message non lude SesechXP » Dim 23 Juin 2013 08:02

J'ai téléchargé la bibliothèque DS1307 de Sjunnesson, adaptée pour Arduino 1.0.x et tout fonctionne avec le sketch d'exemple. Le réglage de l'heure se faisant de cette manière :
Code: Tout sélectionner
void setup()
{
  Serial.begin(9600);

  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,23);     //set the minutes
  RTC.set(DS1307_HR,12);       //set the hours
  RTC.set(DS1307_DOW,4);       //set the day of the week
  RTC.set(DS1307_DATE,5);       //set the date
  RTC.set(DS1307_MTH,3);        //set the month
  RTC.set(DS1307_YR,9);         //set the year
  RTC.start();
}


Par contre tu cherches à utiliser des méthodes qui ne sont pas dans cette bibliothèque, mais dans la RTClib :?
Code: Tout sélectionner
RTC.adjust(DateTime(__DATE__, __TIME__));
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: Problème màj RTC ds1307

Message non lude jpjcb66 » Dim 23 Juin 2013 08:53

OK c'est parfait pour toi.
Ca correspond au sketch de mon 2ème post plus haut.
Moi aussi ça fonctionnait avec la lib d'origine mais que sur PC.
Je te-essayerai avec la lib de Sjunnesson sur mac pour voir.
@+
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE

Re: Problème màj RTC ds1307

Message non lude SesechXP » Dim 23 Juin 2013 09:20

Euh... En même temps ça a toujours fonctionné chez moi :D J'essaye juste de comprendre ce qui ne fonctionne pas chez toi en y allant pas à pas ;)
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: Problème màj RTC ds1307

Message non lude jpjcb66 » Dim 23 Juin 2013 19:55

Ah ben merci, c'est très sympa. Excuses j'avais mal compris. :lol:
MacBook Pro OSX - Arduino Uno + mémoire + Deuligne
Avatar de l’utilisateur
jpjcb66
 
Messages: 37
Inscription: Lun 31 Oct 2011 19:58
Localisation: 66200 ELNE


Retourner vers Mémoire

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité