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 :

Actualisation pendant un temps donné


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Par défaut Actualisation pendant un temps donné
    Bonjour tout le monde!

    Aujourd'hui je viens demander votre aide car j'ai un gros problème, alors pour vous expliquer je dois afficher certaines informations sur un écran LCD, jusqu'à là tout vas bien, mais les informations étant nombreuses, elles doivent donc être changé, mais cela sans interaction (une des restrictions que je dois suivre). Pour cela, j'ai donc mis des delays où les informations changeaient toutes les 5 secondes, sauf que, problème, si je mets des delays, les informations ne s'actualise pas en temps réel et stagne pendant ces 5 secondes.
    Ma question est donc la suivante, comment actualiser ces informations pendant ces 5 secondes pour que ensuite il passe aux informations suivantes et qu'il fasse la même chose, et ainsi de suite?

    Merci d'avance pour votre prise de temps et vos réponses!

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Bonsoir,

    Dans ce cas, pas de delay ! Inspire-toi du programme blink sans delay.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Par défaut
    J'ai fait un rapide code pour représenter en quelques sortes mon idée, mais je n'ai pas compris ta méthode, lorsque je compile ce code, mon LCD ne m'affiche rien du tout.

    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
    // include the library code:
    #include <LiquidCrystal.h>
     
    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
    int temps;
    int seconde;
    unsigned long previousMillis;
     
    void setup() {
     
    }
     
    void loop() {
    	unsigned long currentMillis = millis();
      temps = millis();
      seconde = temps/100;
      if (currentMillis - previousMillis >= 5000) {
        // save the last time you blinked the LED
        previousMillis = currentMillis;
          // set up the LCD's number of columns and rows:
      lcd.begin(16, 2);
      // Print a initial message to the LCD.
      lcd.print("Info1");
      lcd.setCursor(0, 1);
      	lcd.print(seconde);
      delay(10);
      }
      lcd.clear();
      if (currentMillis - previousMillis >= 5000) {
       // save the last time you blinked the LED
       previousMillis = currentMillis;
        lcd.begin(16, 2);
      // Print a initial message to the LCD.
      lcd.print("Info2");
      lcd.setCursor(0, 1);
      lcd.print("Test");
      delay(10);
      }
    }

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Avant d'écrire un programme Arduino, il te faut un algorithme écrit en français. Est-ce que ça c'est fait et est-ce que c'est clair ?

    Tu sais que loop() est appelé sans arrêt, donc tu as simplement à faire ton traitement de données à chaque appel. Puis il faut regarder depuis combien de temps tu n'as pas changé le "mode" d'affichage (ex: mode température, mode humidité, mode pression pour une station météo) et si cela fait plus de 5 secondes, alors tu changes de mode et tu retiens le temps courant. Enfin, à la fin de loop(), tu affiches les données correspondant à ton mode.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Par défaut
    Pourrais-je avoir un exemple dans le cas du code que j'ai donné? Je n'ai pas très bien compris

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Oui j'ai un exemple : https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay Ici ça fait clignoter une LED, mais au final, tu fais quelque chose de semblable (changer l'état d'une LED ou l'état d'un LCD, conceptuellement ça se ressemble).

Discussions similaires

  1. construire une sinusoide pendant un temps donne
    Par chris83160 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 28/07/2010, 13h46
  2. garder un signal constant pendant un temps donné
    Par gusta dans le forum Simulink
    Réponses: 1
    Dernier message: 20/05/2010, 07h23
  3. Réponses: 5
    Dernier message: 17/04/2010, 16h59
  4. [Mail] stoper une boucle pendant un temps donné
    Par gpsevasion dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2007, 01h14
  5. [VB5] apparition d'une fenetre pendant un temps donné
    Par NacNac dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/03/2007, 14h22

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