IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Problème d'affichage du temps


Sujet :

Arduino

  1. #1
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut Problème d'affichage du temps
    Bonjour à tous,

    J'ai une application qui utilise le temps de manière précise.
    J'utilise pour cela un module adafruit à base de DS3231.

    Cependant je suis confronté à un problème de stabilité du temps qui n'affiche pas la bonne heure.
    Pour le moment j'ai +/- 3min d'écart entre l'heure réelle et l'heure que le module affiche.

    J'utilise pourtant le script d'origine Adafruit basé sur RTCLib.

    Je pensais que lors de la compilation et du téléversement vers mon Arduino (Pro mini) l'heure du PC s'inscrivait dans le module.

    J'ai beau retirer la pile mais le module reste avec ces qques minutes d'écart.

    J'ai essayé en dé commentant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
    Au lieu d'afficher le 21/01/2014, le module reste sur 2017 avec la date du 21/04. Je n'y comprend plus rien.


    Qu'en pensez-vous ? Pouvez-vous m'aider svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    // Date and time functions using a DS3231 RTC connected via I2C and Wire lib
    #include <Wire.h>
    #include "RTClib.h"
     
    RTC_DS3231 rtc;
     
    char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
     
    void setup () {
     
    #ifndef ESP8266
      while (!Serial); // for Leonardo/Micro/Zero
    #endif
     
      Serial.begin(9600);
     
      delay(3000); // wait for console opening
     
      if (! rtc.begin()) {
        Serial.println("Couldn't find RTC");
        while (1);
      }
     
      if (rtc.lostPower()) {
        Serial.println("RTC lost power, lets set the time!");
        // 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));
      }
    }
     
    void loop () {
        DateTime now = rtc.now();
     
        Serial.print(now.year(), DEC);
        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();
     
        Serial.print(" since midnight 1/1/1970 = ");
        Serial.print(now.unixtime());
        Serial.print("s = ");
        Serial.print(now.unixtime() / 86400L);
        Serial.println("d");
     
        // calculate a date which is 7 days and 30 seconds into the future
        DateTime future (now + TimeSpan(7,12,30,6));
     
        Serial.print(" now + 7d + 30s: ");
        Serial.print(future.year(), DEC);
        Serial.print('/');
        Serial.print(future.month(), DEC);
        Serial.print('/');
        Serial.print(future.day(), DEC);
        Serial.print(' ');
        Serial.print(future.hour(), DEC);
        Serial.print(':');
        Serial.print(future.minute(), DEC);
        Serial.print(':');
        Serial.print(future.second(), DEC);
        Serial.println();
     
        Serial.println();
        delay(3000);
    }

  2. #2
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut
    C'est bon j'ai trouvé comment solutionner le problème ou plutôt devrais-je dire la manipulation à effectuer.

    Dans mon cas, j'ai retiré la pile du module.

    J'ai forcé l'heure avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rtc.adjust(DateTime(2017, 4, 24, 11, 0, 0));
    Je compile le tout.

    Je débranche et rebranche l'arduino.

    Je teste sur ma liaison série et miracle le temps se met enfin correctement !

    Je replace la pile.

    Je débranche et rebranche l'arduino.

    Je revérifie l'heure via série.

    Je peux confirmer que désormais l'heure est maintenue correctement.

    Ouf je peux dormir tranquille

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'affichage commande echo en temps réel {perl/csh}
    Par julien terrier dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 07/03/2017, 13h12
  2. [Débutant] problème dans uimenu et d'affichage en temps réels
    Par Maria22 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 19/08/2013, 13h48
  3. Réponses: 2
    Dernier message: 30/03/2012, 23h28
  4. Problème d'affichage du temps
    Par Mike_123 dans le forum VB.NET
    Réponses: 13
    Dernier message: 26/10/2007, 00h49
  5. Réponses: 19
    Dernier message: 20/12/2005, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo