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 :

Calendrier perpétuel arduino uno R3


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut Calendrier perpétuel arduino uno R3
    Bonjour
    Je suis menuisier et j’ai en projet de créer un calendrier de l’avent perpétuel.
    Avec décompte annuel en tenant compte des années bissextiles.
    J’ai déjà le matériel carte arduino uno R3 ; afficheur etc
    Et un code qui ne me conviens pas.
    C’est pour ça que je fais appel à vos connaissances.

    En vous remerciant d’avance.

    Je suis dispo pour plus de renseignements.

    Bonne journée

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Bonjour
    J’ai déjà le matériel carte arduino uno R3 ; afficheur etc
    Et un code qui ne me conviens pas.
    C’est pour ça que je fais appel à vos connaissances.
    vu votre métier, je suppose que c'est pour fabriquer un truc comme cela? ou c'est juste un truc pour Noël avec 24/25 cases ?
    Nom : cal.png
Affichages : 675
Taille : 241,0 Ko

    pourquoi le code ne convient pas?

  3. #3
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut
    plutot dans un style comme ca avec un afficheurNom : Annotation 2021-02-08 163924.jpg
Affichages : 648
Taille : 95,5 Ko

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Joli

    et pourquoi le code ne va pas ?

  5. #5
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut
    Dès que je débranche il faut reprendre le code pour mettre le nombre de jours qui reste. Pareil pour les années bissextiles il faut que je reprenne le nombre jour. Je ne sais pas si je suis clair

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Postez le code qu’on puisse regarder

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonjour,

    Une fois débranché l'Arduino ne mémorise pas la date et l'heure courante. Il faudrait un module RTC (Real Time Cock) en plus.
    Je dois avouer que je ne vois pas en quoi la dernière image est un calendrier (avec les rondins)

  8. #8
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Bonjour,

    Une fois débranché l'Arduino ne mémorise pas la date et l'heure courante. Il faudrait un module RTC (Real Time Cock) en plus.
    Je dois avouer que je ne vois pas en quoi la dernière image est un calendrier (avec les rondins)
    J'ai un RTC
    c est une idée entre autres sans les rondins avec un afficheur

  9. #9
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Postez le code qu’on puisse regarder
    Voici le code qu'on m'a donné
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    // include TFT and SPI libraries
    #include <TFT.h>  
    #include <SPI.h>
    #include <DS1302.h>
     
    // pin definition for Arduino UNO
    #define cs   10
    #define dc   9
    #define rst  8
     
     
    // Init DS1302
    DS1302 rtc(2, 3, 4);
     
    // Init structure Time-data
    Time t;
     
    int inputVariable1 = 321;
     
    String Jours = "";
     
    // create an instance of the library
    TFT TFTscreen = TFT(cs, dc, rst);
    char nbr_jours [5];
     
    void setup() {
     
     
      //initialize the library
      TFTscreen.begin();
     
      // clear the screen with a black background
      TFTscreen.background(0, 0, 0);
      //set the text size
      TFTscreen.setTextSize(3);
     
       // Positionnement horloge a run-mode et desactive protection en ecriture
      rtc.halt(false);
      rtc.writeProtect(false);
     
      // Init connection serie
      Serial.begin(9600);
     
     
    }
     
    void loop() {
     
      //generate a random color
     int redRandom = 256;
      //int greenRandom = random (0, 255);
      //int whiteRandom = random (0, 255);
     
    Jours=String (inputVariable1);
      Jours.toCharArray (nbr_jours,4);
     
     
      // set a random font color
      TFTscreen.stroke(redRandom);
     
     
     
      // print Hello, World! in the middle of the screen
      TFTscreen.text("Noel dans :", 0, 0);
     
    //Serial.print(Jours);
     
     // print Hello, World! in the middle of the screen
      TFTscreen.text(nbr_jours, 55, 50);
     
         // print Hello, World! in the middle of the screen
      TFTscreen.text("  Jours", 8, 100);
     
     
     
      // wait 1000 miliseconds until change to next color
     
     
     inputVariable1 = inputVariable1-1;
     
     
       delay(86400000); //24Heures
     
     
      TFTscreen.background(0,0,0);
     
        if(inputVariable1==0)
        {inputVariable1=365;
        }
    }
    Fichiers attachés Fichiers attachés

  10. #10
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 630
    Par défaut Demander le programme

    Bonjour,

    Le programme est simplement un "hello world" modifié a minima.

    En vrac :
    • L'horloge RTC est déclarée, initialisée (mais pas de mise à l'heure possible) puis ignorée. En l'état, elle ne sert à rien.
    • La liaison série est initialisée mais jamais utilisée.
    • Les jours sont initialisés à 321 (premier jour de l'avent ?) et non à partir d'une date réelle prise dans la RTC.
    • Les jours sont décomptés (??) et à 0 passent à 365 (exit l'avent).
    • Les couleurs sont chargées mais elles ne sont jamais modifiées.
    • Les jours sont comptés avec un delay. Moralité : il faut démarrer le bidule à 0h00mn00s.
    • Les positions du texte me semblent bizarres.

    Je propose les axes suivants :
    • Il faut prévoir une fonction setupTime qui mette à l'heure la RTC si la liaison série envoie des données valides.
    • Il faut lire la rtc : t = rtc.time();
    • Il faut garder entre deux lectures la date qui précède, par exemple, dans un uint8_t old_date = 0; Si la date n'a pas changé on ne fait rien (d'où l'initialisation à 0 qui oblige l'affichage au démarrage). En fin de loop() on actualise old_date = t.date;
    • Le délai de fin de loop() peut être ramené à 100 ms ne serait-ce que pour capter un éventuel message de la liaison série.
    • Je pense qu'il n'est pas utile de calculer le nombre de jours jusqu'à noël avant l'avent (et non après l'après ), l'affichage de la date me semble plus pertinent (y compris du 26 au 31 décembre). Dès le premier jour de l'avent (1er décembre ?) on peut afficher le nombre de jours restant jusqu'à noël.
    • Il faudra tester s'il reste plusieurs jours, 1 jour ou le jour de noël lui-même (différence = 0) pour afficher le message correspondant.

    Y a plus qu'à !

    Salutations

  11. #11
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut
    Bonjour merci pour votre réponse mais C est sûrement une bonne piste mais pour moi C est du chinois
    Je vais trouver quelqu'un qui pourra mettre en œuvre vos informations merci encore de votre temps bonne journée

  12. #12
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    C’est un calendrier de l’avent j’imagine qu’il y a 25 rondins qui se tirent ou pivotent pour donner accès à une petite case avec un chocolat ou une surprise

  13. #13
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Le plus simple serait d’expliquer ce que vous voulez voir sur l’écran

    Une RTC (real time clock) c’est un petit composant (par exemple DS3231) qui maintient l’heure et qui généralement dispose d’une pile qui maintient le fonctionnement même si le système auquel elle est associée est éteint). Ça ne coute pas grand chose et ça résoudra votre problème sans doute

  14. #14
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut
    Bonsoir je souhaiterai avoir sur l afficheur
    Aujourd hui nous sommes le xxxxxxxxx
    Il reste xxx jours xxxxx heures avant Noël
    Voici une photo du matériel que j ai
    Voici ce que donne le code que j ai
    En vous remerciant pour votre temps
    Images attachées Images attachées  

  15. #15
    Membre du Club
    Homme Profil pro
    menuisier
    Inscrit en
    Février 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : menuisier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2021
    Messages : 8
    Par défaut


    Bonjour désolé de vous demander de l'aide mais sans vous je ne pourrai pas finaliser mon projet.
    Je vous remercie d avance de donner de votre temps
    Bon après-midi

  16. #16
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Je vois que vous avez une DS1302 comme horloge --> sur des centaines de jours elle va dériver. il faudrait partir sur une DS3232 qui est mieux compensée.

    avec une DS3231 qui est à jour, voici un petit code qui affiche le temps restant sur la console série à 115200 bauds
    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
    #include <RTClib.h> // https://github.com/adafruit/RTClib
    RTC_DS3231 horloge;
    DateTime noelProchain(2015, 12, 25, 0, 0, 0); // le 25/12/2015 à minuit
     
    void determinationNoel()
    {
      DateTime maintenant = horloge.now();
      DateTime lendemainDeNoelDeCetteAnnee(maintenant.year(), 12, 26, 0, 0, 0);
     
      if (maintenant >= lendemainDeNoelDeCetteAnnee) {
        noelProchain = DateTime(maintenant.year() + 1, 12, 25, 0, 0, 0);
      } else {
        noelProchain = DateTime(maintenant.year(), 12, 25, 0, 0, 0);;
      }
    }
     
    void affichageTempsRestant()
    {
      DateTime maintenant = horloge.now();
     
      TimeSpan attente = noelProchain - maintenant;
      Serial.print(F("Noël est dans "));
      Serial.print(attente.days());
      Serial.print(F(" jour"));
      if (attente.days() > 1) Serial.write('s');
      Serial.print(F(", "));
      Serial.print(attente.hours());
      Serial.print(F(" heure"));
      if (attente.hours() > 1) Serial.write('s');
      Serial.print(F(", "));
      Serial.print(attente.minutes());
      Serial.print(F(" minute"));
      if (attente.minutes() > 1) Serial.write('s');
      Serial.print(F(" et "));
      Serial.print(attente.seconds());
      Serial.print(F(" seconde"));
      if (attente.seconds() > 1) Serial.write('s');
      Serial.println();
    }
     
    void setup() {
      Serial.begin(115200);
      if (! horloge.begin()) {
        Serial.println("Horloge absente");
        while (true);
      }
    }
     
    void loop() {
      determinationNoel();
      affichageTempsRestant();
      delay(1000);
    }
    ça affiche pour le moment

    ...
    Noël est dans 312 jours, 11 heures, 39 minutes et 12 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 11 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 10 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 9 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 8 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 7 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 6 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 5 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 4 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 3 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 2 secondes
    Noël est dans 312 jours, 11 heures, 39 minutes et 1 seconde
    Noël est dans 312 jours, 11 heures, 39 minutes et 0 seconde
    Noël est dans 312 jours, 11 heures, 38 minutes et 59 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 58 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 57 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 56 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 55 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 54 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 53 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 52 secondes
    Noël est dans 312 jours, 11 heures, 38 minutes et 51 secondes
    ...
    ça ne devrait pas être compliqué de rajouter le code d'affichage pour votre écran

    il faudra aussi décider (et faire le test) quoi afficher le jour de Noël

Discussions similaires

  1. relation avec calendrier perpétuel
    Par lambac dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/02/2010, 14h18
  2. [E-03] Calendrier Perpétuel
    Par Qwazerty dans le forum Contribuez
    Réponses: 7
    Dernier message: 02/05/2009, 13h13
  3. planning calendrier perpétuel
    Par uchiron dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/07/2008, 17h42
  4. problème du calendrier perpétuel
    Par aljabr dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 16/07/2007, 16h55
  5. programme de calendrier perpétuel
    Par cirtey dans le forum C
    Réponses: 5
    Dernier message: 20/12/2006, 00h09

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