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 :

Delai timelapse programmable


Sujet :

Arduino

  1. #21
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Bonsoir Guesset

    C'est la tension de surveillance de la batterie, une 2S li-ion. Il vaut mieux éviter avec ce genre de batterie que la tension descende trop bas.

    La prochaine étape est le remplacement des 3 boutons par un clavier 12 touches comme sur l'ancien modèle

  2. #22
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    Par défaut
    Bonjour

    Merci pour le partage (on dirait que les 2 liens sont identiques cependant)

    Vous pourriez envisager de "condenser" un peu le système, mettre un piezo par exemple au lieu du gros haut parleur et pour simplifier le câblage vous pourriez aussi opter pour un écran 1602 avec un adaptateur I2C intégré.

    Citation Envoyé par Fermor Voir le message
    La prochaine étape est le remplacement des 3 boutons par un clavier 12 touches comme sur l'ancien modèle
    il existe la bibliothèque Keypad qui vous simplifiera grandement la vie

  3. #23
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Merci j'ai corrigé

    L'ancien montage qui date
    https://www.dropbox.com/s/uby7qykqeo...00854.MP4?dl=0

  4. #24
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Bonjour

    Merci pour le partage (on dirait que les 2 liens sont identiques cependant)

    Vous pourriez envisager de "condenser" un peu le système, mettre un piezo par exemple au lieu du gros haut parleur et pour simplifier le câblage vous pourriez aussi opter pour un écran 1602 avec un adaptateur I2C intégré.


    il existe la bibliothèque Keypad qui vous simplifiera grandement la vie

    Je trouve que le piezzo ne restitué pas bien les fréquences moyennes (2000Hz/3000Hz) par rapport à un petit haut parleur. A moins que mon piezzo soit défectueux
    Pour l'I2C c'est prévu, car il me faudra de la place pour le futur clavier.

    Mais pour l'instant je peaufine pour rendre inactif les 3 boutons si la tension de la batterie est inférieure à 7V. J'ai mis des "si" dans le setup, ça fonctionne au niveau de l'affichage mais pas au niveau du bloquage des boutons (on peut quand même lancer le timelapse).

    Je vais essayer avec un while dans le void loop
    Images attachées Images attachées  

  5. #25
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    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?

  6. #26
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    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

  7. #27
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    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
      }
    }

  8. #28
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

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

  9. #29
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    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

  10. #30
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    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 ("          ");
      }
    }

  11. #31
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    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

  12. #32
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    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

  13. #33
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    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.

  14. #34
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    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  

  15. #35
    Membre émérite

    Homme Profil pro
    savant fou :)
    Inscrit en
    septembre 2019
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : savant fou :)

    Informations forums :
    Inscription : septembre 2019
    Messages : 1 266
    Points : 2 348
    Points
    2 348
    Par défaut
    Salut

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

  16. #36
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    décembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : décembre 2020
    Messages : 19
    Points : 6
    Points
    6
    Par défaut
    Merci je vais creuser

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 04h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 15h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 09h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 12h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 10h43

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