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

Vue hybride

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

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Voilà une petite video du projet
    https://www.dropbox.com/s/xb9yvur2eg...00852.MP4?dl=0

    Et une autre de l'ancien système
    https://www.dropbox.com/s/xb9yvur2eg...00852.MP4?dl=0 [/url]

  2. #2
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    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 632
    Par défaut Remerciements
    Bonjour Fermor,

    Merci de tes vidéos. A quoi correspond la tension (ou ce qui paraît tel) à droite de la deuxième ligne ?

    Salutations

  3. #3
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    C’est sure qu’un piezo ça ne vaut pas un haut-parleur, maintenant si c’est juste pour faire des petits beeps de confirmation...

    C’est plutôt un if sans doute en début de loop qu’il faudrait utiliser pour désactiver le fonctionnement si la batterie est faible. Quel code utilisez vous?

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Merci
    Le while en début de loop ne donne pas grand chose, j'essayerai un if en début de loop

  5. #5
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Citation Envoyé par Fermor Voir le message
    Merci
    Le while en début de loop ne donne pas grand chose, j'essayerai un if en début de loop
    Salut

    si vous postez le code on peut vous donner une indication - en gros c'est un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void setup() {  ... }
    void loop() {
      bool batteryIsGood = analogRead(...) >= xxx;
      if (batteryIsGood) {
        ...
      } else {
        // put Arduino to deep sleep for example. Changing batteries will reboot
      }
    }

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Le code de la mesure de la tension batterie vous voulez dire?

  7. #7
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    avec l'ensemble du code ce serait plus simple de fournir des idées. Mais bien sûr cela dépend de ce que vous souhaitez partager

  8. #8
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Voici donc le code avec ses imperfections de débutant

    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    #include <simpleBouton.h>
    #include <Adafruit_LiquidCrystal.h>
    Adafruit_LiquidCrystal aff(10, 11, 5 , 4, 3, 2);
     
    #include <simpleBouton.h>
     
    #define DUREE_TEMPS 300
    #define OCTAVE_4_DO 523
    #define OCTAVE_4_RE 587
    #define OCTAVE_4_MI 659
    #define OCTAVE_4_FA 698
    #define OCTAVE_4_SOL 784
    #define OCTAVE_4_LA 880
    #define OCTAVE_4_SI 988
     
     
    #define ENTREE_ANALOGIQUE 7 //pont de résistance
    int tensionLue = 0;
    int valeurLue = 0;
     
    const byte pinPlus      = A1;
    const byte pinMoins     = A2;
    const byte pinStartStop = A3;
    const int led = 9;
    int etatLed = 0;
     
    const byte PIN_BUZZER = 6;
    const byte buzzerPin = 6;
     
    simpleBouton boutonPlus(pinPlus);      // 2 fonctions: + ou appui long = entrée/sortie modif période
    simpleBouton boutonMoins(pinMoins);   // 2 fonctions: - ou appui long = entrée/sortie modif photo
    simpleBouton boutonStartStop(pinStartStop); // appui long on lance ou arrête la prise de vues
     
    const unsigned long appuiLong = 1000ul; // 1 seconde d'appui déclenche
    unsigned long dureeAppuiStartStop, dureeAppuiPlus, dureeAppuiMoins;
    const unsigned long unitePeriode = 1000ul; // nombre de millisecondes dans une unité de période, ici en 10ème de secondes
    long periodeDeclenchement = 2;            // ici 1 seconde = photo toutes les secondes
    unsigned long chronoDeclenchement;
    long nombreDePhotos = 10;
    long compteurPhoto = 0;
     
    enum : uint8_t {REPOS, MODIF_DUREE, MODIF_PHOTO, ACTIF} etatCourant = REPOS;
     
    void afficheParametres()
    {
    }
    void modeRepos()
    {
      etatCourant = REPOS;
      //Serial.println(F("Mode Repos"));
      afficheParametres();
    }
     
    void modeDuree()
    {
      etatCourant = MODIF_DUREE;
      //Serial.println(F("Mode modification durée"));
      afficheParametres();
    }
     
    void modePhoto()
    {
      etatCourant = MODIF_PHOTO;
      //Serial.println(F("Mode modification nombre de photos"));
      afficheParametres();
    }
     
    void modeActif()
    {
      compteurPhoto = nombreDePhotos ;
      chronoDeclenchement = millis();
      etatCourant = ACTIF;
      afficheParametres();
    }
     
    void changeDuree(int8_t d)
    {
      periodeDeclenchement += d;
      if (periodeDeclenchement <= 0) periodeDeclenchement = 1;
     
      aff.clear();
      tone (6, 4000, 80);
      aff.setCursor (7, 0);
      aff.print (nombreDePhotos);
      aff.setCursor (7, 1);
      aff.print (unitePeriode * periodeDeclenchement / 1000.0, 0);
     
      aff.setCursor(0, 0);
      aff.print("Photo:");
     
      aff.setCursor(0, 1);
      aff.print("Delai:");
     
      aff.setCursor (8, 1);
      aff.print ("s");
    }
     
     
    void changePhoto(int8_t d)
    {
      nombreDePhotos += d;
      if (nombreDePhotos <= 0) nombreDePhotos = 1;
     
      aff.clear();
      tone (6, 4000, 80);
      aff.setCursor(0, 0);
      aff.print("Photo:");
      aff.setCursor(0, 1);
      aff.print("Delai:");
     
      aff.setCursor (7, 0);
      aff.print (nombreDePhotos);
      aff.setCursor (7, 1);
      aff.print (unitePeriode * periodeDeclenchement / 1000.0, 0);
      aff.setCursor (8, 1);
      aff.print ("s");
     
    }
     
     
    void prendrePhoto()
    {
      compteurPhoto--;
      chronoDeclenchement = millis();
      aff.clear();
     
      aff.setCursor(0, 0);
      aff.print("Photo: ");
      aff.setCursor(0, 1);
      aff.print("Delai:");
     
      aff.setCursor (12, 0);
      aff.print (compteurPhoto);
      aff.setCursor (7, 0);
      aff.print (nombreDePhotos);
     
      aff.setCursor (7, 1);
      aff.print (unitePeriode * periodeDeclenchement / 1000.0, 0);
      aff.setCursor (8, 1);
      aff.print ("s");
     
      aff.setCursor (10, 0);
      aff.print (">");
     
     
      tone (6, 4500, 30);
      digitalWrite (led, HIGH);
      delay (20);
      digitalWrite (led, LOW);
    }
     
    void verification()
    {
      static bool appuiLongPlusValide = false;
      static bool appuiLongMoinsValide = false;
      static bool appuiLongStartStopValide = false;
     
      dureeAppuiStartStop = boutonStartStop.dureeEnfonce();
      dureeAppuiPlus = boutonPlus.dureeEnfonce();
      dureeAppuiMoins = boutonMoins.dureeEnfonce();
      boutonPlus.actualiser();
      boutonMoins.actualiser();
      boutonStartStop.actualiser();
     
      // on notifie l'utilisateur quand il a atteint l'appui long
      if (boutonPlus.estEnfonce() && (dureeAppuiPlus >= appuiLong) && !appuiLongPlusValide) {
     
        appuiLongPlusValide = true;
     
        aff.clear();
        aff.setCursor(0, 0);
        aff.print("Photo:");
        aff.setCursor(0, 1);
        aff.print("Delai:");
     
        aff.setCursor (7, 0);
        aff.print (nombreDePhotos);
     
        aff.setCursor (7, 1);
        aff.print (unitePeriode * periodeDeclenchement / 1000.0, 0);
        aff.setCursor (8, 1);
        aff.print ("s");
        tone (6, 4000, 350);
     
      } else if (boutonPlus.estRelache()) appuiLongPlusValide = false;
     
     
      if (boutonMoins.estEnfonce() && (dureeAppuiMoins >= appuiLong) && !appuiLongMoinsValide) {
        appuiLongMoinsValide = true;
     
        aff.clear();
        aff.setCursor(0, 0);
        aff.print("Photo:");
        aff.setCursor(0, 1);
        aff.print("Delai:");
     
        aff.setCursor (7, 0);
        aff.print (nombreDePhotos);
     
        aff.setCursor (7, 1);
        aff.print (unitePeriode * periodeDeclenchement / 1000.0, 0);
        aff.setCursor (8, 1);
        aff.print ("s");
        tone (6, 4000, 350);
     
     
      } else  if (boutonMoins.estRelache()) appuiLongMoinsValide = false;
     
      if (boutonStartStop.estEnfonce() && (dureeAppuiStartStop >= appuiLong) && !appuiLongStartStopValide) {
        appuiLongStartStopValide = true;
     
        tone (6, 4000, 350);
      } else  if (boutonStartStop.estRelache()) appuiLongStartStopValide = false;
     
    }
     
    void action()
    {
      verification();
     
      switch (etatCourant) {
        case REPOS:
          if (boutonPlus.vientDEtreRelache() && (dureeAppuiPlus >= appuiLong))
            modeDuree();
          // passage en mode modif durée
     
          else if (boutonMoins.vientDEtreRelache() && (dureeAppuiMoins >= appuiLong))
            modePhoto(); // passage en mode modif photo
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeActif();
          break;
     
     
     
        case MODIF_DUREE:
          if (boutonPlus.vientDEtreRelache())
            if (dureeAppuiPlus >= appuiLong) modeRepos(); // on sort du mode
            else changeDuree(+1);  // c'était une incrémentation
     
          else if (boutonMoins.vientDEtreRelache())
            if (dureeAppuiMoins >= appuiLong) modePhoto();
            else changeDuree(-1); // c'était une décrémentation
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeActif();
     
          break;
     
     
     
        case MODIF_PHOTO:
     
          if (boutonPlus.vientDEtreRelache())
            if (dureeAppuiPlus >= appuiLong) modeDuree();
            else changePhoto(+5);  // c'était une incrémentation
     
     
          else if (boutonMoins.vientDEtreRelache())
            if (dureeAppuiMoins >= appuiLong) modeRepos(); // on sort du mode
            else changePhoto(-5); // c'était une décrémentation
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeActif();
          break;
     
     
     
        case ACTIF:
          if (boutonPlus.vientDEtreRelache() && (dureeAppuiPlus >= appuiLong))
            modeDuree(); // arrêt et passage en mode modif durée
     
          else if (boutonMoins.vientDEtreRelache() && (dureeAppuiMoins >= appuiLong))
            modePhoto(); // arrêt et passage en mode modif photo
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeRepos(); // on sort du mode prise de vues
          else if (millis() - chronoDeclenchement >= unitePeriode * periodeDeclenchement) {
            prendrePhoto();
            if (compteurPhoto <= 0) {
              modeRepos(); // on sort du mode
     
              pinMode (PIN_BUZZER, OUTPUT);
     
              tone(PIN_BUZZER, 2637, 200);//Petite musique de fin, pour le fun
              delay(400);
              tone(PIN_BUZZER, 1975, 200);
              delay(200);
              tone(PIN_BUZZER, 2093, 200);
              delay(200);
              tone(PIN_BUZZER, 2349, 200);
              delay(400);
              tone(PIN_BUZZER, 2093, 200);
              delay(200);
              tone(PIN_BUZZER, 1975, 200);
              delay(200);
              tone(PIN_BUZZER, 1760, 200);
              delay(400);
              tone(PIN_BUZZER, 1760, 200);
              delay(200);
              tone(PIN_BUZZER, 2093, 200);
              delay(200);
              tone(PIN_BUZZER, 2637, 200);
              delay(400);
              tone(PIN_BUZZER, 2349, 200);
              delay(200);
              tone(PIN_BUZZER, 2093, 200);
              delay(200);
              tone(PIN_BUZZER, 1975, 200);
              delay(400);
              tone(PIN_BUZZER, 1975, 200);
              delay(200);
            }
          }
          break;
      }
    }
     
    void setup() {
      Serial.begin(9600);
      analogReference (INTERNAL);
      modeRepos(); // état initial
     
      aff.begin(16, 2);
      pinMode (led, OUTPUT);
      pinMode (PIN_BUZZER, OUTPUT);
     
      aff.setCursor (4, 0);
      aff.print("Timelapse");
      aff.setCursor (0, 1);
      aff.print("Batterie:");
     
      tone(PIN_BUZZER, 1760, 200);//bips d'initialisation
      delay(200);
      tone(PIN_BUZZER, 2093, 200);
      delay(200);
      tone(PIN_BUZZER, 2637, 200);
      delay(400);
      tone(PIN_BUZZER, 2349, 200);
    }
     
    void loop() {
      int valeurLue = analogRead (ENTREE_ANALOGIQUE);
      float tensionLue = map(valeurLue, 0, 1023, 0, 900 * 0.995);
      aff.setCursor (11 , 1);
      aff.print (tensionLue / 100.0);
      aff.setCursor (15 , 1);
      aff.print ("v");
      if (tensionLue > 700) {
        action();
      }
     
      else {
        aff.setCursor (1, 0);
        aff.print ("Batterie faible");
        aff.setCursor (0, 1);
        aff.print ("          ");
      }
    }

  9. #9
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    ça me parait bien avec ce if. Vous ne ferez l'action que si la batterie n'est pas faible (vous répétez les affichages, ça pourrait être optimisé mais ce n'est pas très important )

    PS/ pas besoin de répéter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pinMode (PIN_BUZZER, OUTPUT);
    dans l'action lors de la musique de fin. Vous le faites déjà dans le setup(), ça suffit

  10. #10
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Merci, mais j'ai encore quelques petits soucis d'affichage, le principal c'est que quand la batterie devient faible le décomptage s'arrête ce qui est le cas
    PS: Les 2 musiques sont différentes parce qu'elles ne s'activent pas au même moment.

    Maintenant y plus qu'a trouver une petite boite sympa pour mettre tout ça.

    Merci encore pour ton soutien

  11. #11
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    C’est sûr qu’à chaque tour de loop vous effectuez cet affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     aff.setCursor (11 , 1);
      aff.print (tensionLue / 100.0);
      aff.setCursor (15 , 1);
      aff.print ("v");
    même si la tension est faible.

    Pour la pin, elle est déjà en output, même si la musique est différente.

  12. #12
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonsoir

    J'ai finalisé mon projet et je me suis aperçu qu'en paramétrant la tension basse à 700 (7V) ça affiche ''batterie faible'' malgré une tension de 7,2V affichée et mesurée au multimètre
    Je ne vois pas trop pourquoi d'autant plus que ça marchait auparavant. Et là je sèche

    Avez-vous une idée?

    Le code est le même que celui que j'ai posté sauf que j'ai mis un lcd 2004 avec I2C
    Images attachées Images attachées  

  13. #13
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Salut

    Sans doute vous ne l’effaciez pas une fois affiché

  14. #14
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Merci je vais creuser

  15. #15
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    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 632
    Par défaut Au point ?
    Bonjour,

    Il semble que l'Oled soit en mode point (graphique) et non texte. Quand on lui balance un texte, la bibliothèque calcule la position de chaque caractère et c'est transparent mais quand on veut afficher les caractères isolément il faut calculer le déplacement qui n'est pas 1 mais la largeur du caractère précédent.

    Si je ne me trompe pas, la solution du paresseux serait de stocker les chiffres dans une chaine et d'afficher celle-ci intégralement à chaque ajout d'un chiffre.

    J'ai un doute, je ne vois plus le message sur l'Oled avec son lien vers la vidéo. J'ai rêvé ?

    Salutations

  16. #16
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonsoir Guesset

    En fait comme j'ai résolu le problème j'ai supprimé mon post. C'était une mauvaise utilisation de la librairie Keypad
    Je remets quand même le lien

    https://www.dropbox.com/s/cjaqk752jr..._0004.mp4?dl=0

    Merci d'avoir répondu

  17. #17
    Membre chevronné Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 999
    Par défaut
    Je viens de découvrir ce post

    Ayant moi-même fait beaucoup de photo (concerts et spectacles, paysages, ciel nocturne) ça m'a vivement intéressé

    Je travaille avec du matériel SONY, il y a aussi une prise télécommande, il est également possible de piloter l'appareil photo avec une télécommande infrarouge.

    J'ai bien aimé la version ancienne du système, la nouvelle a l'air prometteuse

    D'ailleurs je me rend compte que j'aurais dû me fabriquer ce dispositif, plutôt que de mitrailler à la main

    http://electroremy.free.fr/28092015Eclipse/

    A bientôt

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