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 :

Délai timelapse programmable


Sujet :

Arduino

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    Par défaut Délai timelapse programmable
    Bonjour à toute la communauté

    Nouveau inscrit et débutant dans la programmation Arduino

    Voilà, j'envisage de refaire mon timelapse conçu il y a une quarantaine d'années composé à l'époque d'un clavier 12 touches et de 6 afficheurs 7 segments (2 segments pour le délai entre 2 photos et 4 segments pour le nombre de photos.
    Aujourd'hui je voudrais refaire la même chose avec un nano mais je me passerai du clavier dans un 1er temps, qui est remplacé par un bouton +, un bouton- et un bouton start.

    J'ai fait le programme jusqu'à l'affichage de la valeur du délai avec les boutons + et - Lorsque j'appuerai sur le bouton start le décompte commencera jusqu'à 0, repartira à la valeur choisie et décrémentera la variable "photos''. Quand la variable "photos" sera à 0, on stoppe le décompte

    Là où je bloque c'est comment faire la boucle pour commencer le décompte avec le bouton start et mettre en mémoire la variable "délai" qui sert à 2 choses: le décompte et la décrémentation/incrémentation du nombre de photos?
    Par avance merci aux contributeurs qui passeraient par ici

    Voila le code:

    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
     
     
     #include <Adafruit_LiquidCrystal.h>
    Adafruit_LiquidCrystal aff(10, 11, 5 , 4, 3, 2);
     
    #define valeurMin 0
    #define valeurMax 3000
     
     
    const int bp1 = 7; //bouton incrémentation
    const int bp2 = 8; //bouton décrémentation
    const int bp_start = 9;
     
     
    int etat_bp1 = 0;
    int etat_bp2 = 0;
    int etat_bp_start = 0;
     
    int delai = 1;          //delai entre 2 photos
    int photos = 1500;      // nb photos
     
    void setup() {
     
      aff.begin(16, 2);
      pinMode(bp1, INPUT_PULLUP);
      pinMode(bp2, INPUT_PULLUP);
      pinMode (bp_start, INPUT_PULLUP);
     
      aff.setCursor (4, 0);
      aff.print("Timelaps");
      aff.setCursor(7, 1);
      aff.print("V1");
     
      delay (1500);
      tone (6, 5900, 200);
      delay (600);
      tone (6, 4400, 150);
      delay(200);
      tone (6, 4600, 150);
      delay(200);
      tone (6, 4900, 250);
     
      aff.clear();
      tone (6, 5000, 350);
    }
     
    void loop() {
      aff.setCursor(0, 0);
      aff.print("Photos");
      aff.setCursor(11, 0);
      aff.print("Delai");
     
      aff.setCursor(12, 1);
      aff.print (delai);
      aff.setCursor(1, 1);
      aff.print (photos);
     
      if (digitalRead(bp1) == LOW) {
        if (delai < valeurMax)
        delai++;
        delay(100);
        tone(6, 4900, 80);
        while ((digitalRead(bp1) == LOW));
        aff.clear();
      }
     
      if (digitalRead(bp2) == LOW) {
        if (delai > valeurMin)
        delai--;
        delay(100);
        tone(6, 4900, 80);
        while ((digitalRead(bp2) == LOW));
        aff.clear();
      }
    }
    Images attachées Images attachées  

Discussions similaires

  1. Introduction d'un délai dans un programme
    Par Ubuntuhuit dans le forum C++
    Réponses: 3
    Dernier message: 13/05/2017, 10h47
  2. Délai creation programme import/export excel
    Par cirtey dans le forum C#
    Réponses: 1
    Dernier message: 31/01/2009, 23h26
  3. Réponses: 1
    Dernier message: 15/02/2008, 17h50
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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