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 :

Tension d'alimentation Vin


Sujet :

Arduino

  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 : 63
    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 Tension d'alimentation Vin
    Bonjour,

    Pour alimenter des pompes d'arrosage j'utilise un minuteur mm/ss programmable via un clavier. Lorsque le minuteur arrive à 0 un mosfet est rendu non passant et coupe l'autoalimentation de l'arduino et par le fait de la pompe. Quand la tension de la batterie li-ion (12,6V) est en dessous de 10,5V il y a une alerte sur l'afficheur et au bout de 2 sec. l'arduino s’éteint.

    Ça fonctionne sauf que si je paramètre dans le if <10,5V en début de loop alors que la tension est encore à 11,8V c'est vu comme une tension faible.
    Je ne vois pas où est le problème ou alors j'ai loupé quelque chose..

    Si vous avez une idée je suis preneur

    Merci pour vos avis

    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
     
     
    #include <Arduino.h>
    #include <U8g2lib.h>
    #include <U8x8lib.h>
     
    #define I2C_ADDRESS 0x3C
    U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
    U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
     
    #define ENTREE_ANALOGIQUE 6
    int tensionLue = 0;
    int valeurLue = 0;
     
    #include <Keypad.h>
    const byte ROWS = 4;
    const byte COLS = 3;
    char keys[ROWS][COLS] = {
      {'1', '2', '3'},
      {'4', '5', '6'},
      {'7', '8', '9'},
      {'*', '0', '#'}
    };
    byte rowPins[ROWS] = {2, 3, 4, 5};
    byte colPins[COLS] = {8, 9, 10};
     
     
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
     
    String action;
    long timein[6], countdown_time = 0, initialsecond = 0;
    int i = 0;
    const byte mosfet = 15;
    const byte led = 13;
     
     
    void setup() {
      analogReference (INTERNAL);
     
      pinMode  (mosfet, OUTPUT);
      pinMode  (led, OUTPUT);
      digitalWrite(mosfet, LOW);
      digitalWrite(led, LOW);
     
      u8g2.begin();
      u8x8.begin();
     
      for (int i = 0; i < 3; i++) {
        u8x8.setFont(u8x8_font_8x13B_1x2_r);
        u8x8.setCursor (1, 0);
        u8x8.print("Saisir  mn/sec");
        delay(250);
        u8x8.clear();
        delay (250);
      }
     
      u8x8.setFont(u8x8_font_profont29_2x3_n);
      u8x8.setCursor (3, 4);//colonne/rangée
      u8x8.print("00:00");
      u8x8.setFont(u8x8_font_8x13B_1x2_r);
      u8x8.setCursor (1, 2);
      u8x8.print("------**------");
     
      u8x8.setCursor (1, 0);
      u8x8.print("Saisir  mn/sec");
    }
     
    void loop() {
      int valeurLue = analogRead (ENTREE_ANALOGIQUE);
      float tensionLue = (valeurLue * 12.25 / 1024.0);
      if (tensionLue < 10.5) {
        u8x8.setFont(u8x8_font_8x13B_1x2_r);
        u8x8.clear();
        u8x8.setCursor (3, 1);
        u8x8.print ("Battterie");
        u8x8.setCursor (5, 4);
        u8x8.print ("faible");
        delay(2000);
        digitalWrite (mosfet , HIGH);
      }
      char key = keypad.getKey();
      if (key) {
        switch (key) {
     
          case '*'  :
            u8x8.setCursor (3, 4);
            action = "set_time";
            i = 2;
            break;
     
          case '#'  :
            action  = "start_countdown";
            u8x8.clear();
            break;
          default :
            u8x8.setFont(u8x8_font_profont29_2x3_n);
            if (action == "set_time") {
              i++;
              int c = i - 1;
              timein[c] = key - 48;
              initialsecond = 0;
              long hour = (timein[0] * 10) + timein[1];
              long minute = (timein[2] * 10) + timein[3];
              long second = (timein[4] * 10) + timein[5]; //second
              countdown_time = (hour * 3600) + (minute * 60) + second;
     
              u8x8.print(key);
     
              if (i % 2 == 0 && i < 6) {
     
                u8x8.print(":");
     
              }
              break;
           }
        }
      }
     
     
      if (action  == "start_countdown") {
        if (initialsecond == 0) {
          initialsecond = millis() / 1000;
        }
        long countdowntime_seconds = countdown_time - (millis() / 1000) + initialsecond;
        if (countdowntime_seconds >= 0) {
          long countdown_hour = countdowntime_seconds / 3600;
          long countdown_minute = ((countdowntime_seconds / 60) % 60);
          long counddown_sec = countdowntime_seconds % 60;
     
          u8x8.setFont(u8x8_font_profont29_2x3_n);
          u8x8.setCursor (0, 4);
     
          if (countdown_hour < 10) {
            u8x8.print("0");
          }
          u8x8.print(countdown_hour);
     
          u8x8.print(":");
     
          if (countdown_minute < 10) {
            u8x8.print("0");
     
          }
          u8x8.print(countdown_minute);
     
          u8x8.print(":");
     
          if (counddown_sec < 10) {
            u8x8.print("0");
          }
     
          u8x8.setFont(u8x8_font_profont29_2x3_n);
          u8x8.print(counddown_sec);
     
          int valeurLue = analogRead (ENTREE_ANALOGIQUE);
          float tensionLue = (valeurLue * 12.25 / 1024.0);
     
     
          u8x8.setFont(u8x8_font_8x13B_1x2_r);
          u8x8.setCursor (37, 0);
          u8x8.print (tensionLue);
          u8x8.setCursor (0, 0);
          u8x8.print ("Bat:");
          u8x8.setCursor (43, 0);
          u8x8.print ("Volts");
     
     
          if ( counddown_sec < 1 && countdown_minute == 0 && countdown_hour == 0) {
            digitalWrite (mosfet , HIGH);
            digitalWrite (led , HIGH);
            u8x8.setFont(u8x8_font_8x13B_1x2_r);
          }
        }
      }
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    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 332
    Points : 4 153
    Points
    4 153
    Par défaut Infos SVP
    Bonjour,

    Il faut déjà bien comprendre le problème. Le mosfet alimente la pompe et l'Arduino (enfin un régulateur qui fournit le 5 Volts) ? La mise en marche consiste à court-circuiter temporairement ce mosfet ?

    C'est quoi ces 12.6 Volts pour des accus Li-ion ? Avec des éléments à 3.6V ou 3.7V, 3 éléments en série donnent un nominal à 10.8 V ou 11.1 V et 4 éléments donnent entre et 14.4 V et 14.8 V. Il y a un convertisseur ? Ou ce ne sont pas des LI-ion (mais 10 NIMH à 1.2 V de nominal ne font pas non plus 12.5 V).
    Si les 12.6 sont un maxi, il correspondent à 3 éléments en fin de charge (3x4.2 V) donc à une tension nominale entre 10.8 et 11.1 V pour un minimum absolu de 7.5 V soit avec une marge de sécurité 9 V si le reste du montage le supporte. Le 10.5 V semble très (trop ?) proche de la valeur nominale.

    Comment est prise la tension ? Pont diviseur pour fournir au max 1.1 V ? Quelles valeurs de résistances ? Y a t-il une capacité de filtrage sur ce pont ? Si oui qu'elle est sa valeur ?

    Un schéma de câblage serait utile.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Le mosfet alimente l'arduino ainsi que 2 récepteurs 433Mhz mais pas directement les pompes.. Je mets le schéma mais je ne pense pas que ça apportera grand chose au sketch, le but étant de mettre la pin 6 au niveau haut de façon à bloquer le mosfet quand la tension mesurée passe en dessous de 10,8V. Je ne les décharge pas en dessous de 3,6V par élément.
    Quand je paramètre 10,8V en début de loop alors que la tension de la batterie est bien au dessus la pin 6 passe à l'état haut donc l'ensemble n'est plus alimenté. Il faut que je paramètre le seuil à 10V voir moins pour qu'elle reste à l'état bas


    La tension est prise via un pont diviseur, je ne me souviens plus des valeurs de résistance mais c'est autour de 7/8K pour l'une et 800 ohms pour l'autre et 10 Nano pour le condensateur.

    Pour info la tension affichée pendant le décompte est stable à 1 ou 2 centièmes et correspond à la valeur mesurée avec un métrix

    PS: Les 12,6V évoqués c'est la tension des 3S en sortie de chargeur.
    Images attachées Images attachées  

  4. #4
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    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 332
    Points : 4 153
    Points
    4 153
    Par défaut
    Bonsoir,

    Je ne suis pas sûr que les explications soient en phase avec le croquis (inversion de 15 et 6 apparemment.

    Les 12.6 Volts correspondent à la fin de charge. Cette tension n'est pas maintenue très longtemps avant que la batterie atteigne son niveau nominal qui avec 3S donnera entre 10.8 et 11.1 selon la batterie.

    De plus, dans ce montage, cette tension est réduite par la perte ohmique dans le second mosfet. Or c'est cette tension plus faible qui est mesurée. Il n'est donc pas étonnant que cela soit limite.

    Je conseillerai donc de mettre de l'ordre de 9 V comme seuil car le but n'est pas de rester exactement à la tension nominale mais d'arrêter le tout quand on quitte sensiblement cette valeur afin d'éviter d'atteindre la valeur critique de 7.5 V (2.5 pour un élément). On conseille en général de prévoir une sécurité en prenant 3 V (de plus en 3S, 7.5 V ne garantirait pas que l'un des éléments soit en dessous de 2.5 V).

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Oui désolé la broche 15 et la 6 sont inversées dans l'explication
    Pour ce qui est de la perte dans le mosfet elle est négligeable, inférieure au dixième de volt, Ce qui n'explique pas le fait que quand le seuil programmé est à 10,8V et la tension de la batterie à 11,9V le résultat du if est vu comme tension inférieure à 10,8V
    Je peux mettre 9V comme seuil mais si la batterie est encore à 10V il y a quand même une alerte. Pour être tranquille je mets 8V mais c'est pas bien normal tout ça

    Bonne soirée

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 714
    Points : 5 393
    Points
    5 393
    Par défaut
    Citation Envoyé par Fermor Voir le message
    Ce qui n'explique pas le fait que quand le seuil programmé est à 10,8V et la tension de la batterie à 11,9V le résultat du if est vu comme tension inférieure à 10,8V
    Affichez le résultat du calcul - le if ne ment pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float tensionLue = (valeurLue * 12.25 / 1024.0);
    Comment avez vous calculé cette formule ? D’où vient le 12.5? les résistances du pont ont probablement une tolérance de 5% si vous n’avez pas de bol…

    1023 correspond à 1.1V derrière le pont diviseur et cette Vref du CAN c’est 1.1 (vous n’en tenez pas compte dans la formule??) vaut 1,1 V +/- 0,1 V selon les lots de fabrication (près de 10% d’écart)

    Avez vous mesuré cette valeur interne? Elle est présente sur la broche Aref quand on sélectionne la référence interne. Il faudrait étalonner sans doute pour tenir compte des approximations un peu partout

  7. #7
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    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 332
    Points : 4 153
    Points
    4 153
    Par défaut
    Bonjour,

    Pour compléter ce que dit Jay M. :

    Si b est le coefficient de conversion (actuellement 12.25), il doit correspondre pour 1023 à Vmax = 12.6 V. Soit b.1023/1024 = 12.6 et donc b = 1024/1023*12.6 = 12.61. On n'a donc pas vraiment le choix.

    Si a est le ratio du pont (donc < 1) on a : 1023.a.V/Vref = n soit V = n.Vref /(1023.a) = b.n/1024. Donc a = Vref/b.1024/1023 soit simplement a = Vref/Vmax (c'est le scoop du jour !).

    Pour tenir compte des variations de Vref, il faut fixer la somme des résistances Rs =Vhi+Vlo et calculer les valeurs pour 1.0V et 1.2V. Le Rs - Rhi_1.2 - Rlo_1.0 (ce sont les minimums) déterminera approximativement la valeur du potentiomètre à intercaler entre ces deux résistances Rhi_1.2 et Rlo_1.0. Il faut plutôt prévoir le potentiomètre avec une valeur un peu plus élevée que ce que donne le calcul, ne serait-ce que pour pouvoir gommer les incertitudes sur les autres résistances.

    Ensuite il faut supprimer temporairement le if de désactivation et son bloc de code (mise en commentaire) pour avoir un affichage continu de la valeur lue.

    Puis on met un multimètre sur la tension présentée au pont (V).

    On règle le potentiomètre pour que les deux mesures soient identiques.

    That's all !

    En analogique, debug s'écrit réglage

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Bonjour Jay M, bonjour Guesset

    Pour calculer les résistances j'ai pris comme tension max 12,6V et 1,1 au pont
    Les mesures en fonctionnement donnent 1,05V sur le pont et 1,11V sur AREF. Compte tenu de la valeur approximative des résistances j'ai pris comme coefficient de conversion 12,25 V.

    La valeur affichée (tensionLue) correspond bien à la valeur mesurée avec un métrix dans la plage 12,6V - 9V à quelques centièmes de millivolts près, la précision n'étant pas primordiale à ce niveau. C'est juste pour couper l'alimentation pour éviter une décharge profondeur en cas d'oubli.

    Merci de votre contribution

  9. #9
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 714
    Points : 5 393
    Points
    5 393
    Par défaut
    Citation Envoyé par Fermor Voir le message
    La valeur affichée (tensionLue) correspond bien à la valeur mesurée avec un métrix dans la plage 12,6V - 9V à quelques centièmes de millivolts près
    si tensionLue est correcte, le if dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     int valeurLue = analogRead (ENTREE_ANALOGIQUE);
     float tensionLue = (valeurLue * 12.25 / 1024.0);
     if (tensionLue < 10.5) {
       ....
    ne peut pas ne pas fonctionner... si vous rentrez dans le if, c'est que tensionLue est inférieure à 10.5

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Citation Envoyé par Fermor Voir le message
    Bonjour Jay M, bonjour Guesset

    Pour calculer les résistances j'ai pris comme tension max 12,6V et 1,1 au pont
    Les mesures en fonctionnement donnent 1,05V sur le pont et 1,11V sur AREF. Compte tenu de la valeur approximative des résistances j'ai pris comme coefficient de conversion 12,25 V.

    La valeur affichée (tensionLue) correspond bien à la valeur mesurée avec un métrix dans la plage 12,6V - 9V à quelques centièmes de millivolts près, la précision n'étant pas primordiale à ce niveau. C'est juste pour couper l'alimentation pour éviter une décharge profondeur en cas d'oubli.

    Merci de votre contribution
    À quelques centièmes de volts plutôt que millivolts

    J'ai essayé avec une alim stabilisée et réglable à la place de la batterie
    En dessous de 11,7/11,8V normalement je ne devrais pas rentrer dans le if, sauf que là j'y suis.
    Je passe certainement à côté de quelque chose

  11. #11
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Bonjour,
    Dans ton schéma, plus haut dans cette discussion,

    - peux tu donner les références des MOSFET et les valeurs des résistances du pont diviseur pour la mesure.

    - fais tu tes manipulations sur une plaque d'essai (plaque à trou / breadboard) ou un circuit imprimé de protoypage ?

    - en aval de ton montage je vois un transceiver RF, y a t-il autre chose d'alimentée ?

    Merci
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Pour le P irfd9
    Pour le N. Irfz44
    R1=10K. R2=995

    Le montage est soudé et terminé dans un boîtier
    Il n'y que le transceiver RF sur la charge
    Images attachées Images attachées  

  13. #13
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Est ce que tu as la doc de ce transceiver RF ?

    Je soupçonne le P-MOS, peux tu le court-circuiter et nous dire si tu observes toujours le problème ?

    Au vu de ton schéma ça ne posera pas de problème, ça va juste bloquer ton système d'alimentation par l'appuie du bouton.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  14. #14
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Je n'ai pas fait l'essai de court-circuiter le P-MOS je le ferai prochainement à tête reposée
    De toute façon j'ai le problème sans brancher le récepteur mais avec seulement l'arduino
    Peux-tu me dire pourquoi tu soupçonne le P-MOS? Ne serait-il pas complètement saturé? Ce qui n'est pas impossible

    Je m'oriente plutôt côté programmation pour essayer de comprendre pourquoi il y a une différence d'environ 1V entre la tensionLue par le if et la tensionLue quand on valide par la touche dièse


    Le récepteur est celui là:

    https://www.amazon.fr/r%C3%A9cepteur...%2C128&sr=8-10

  15. #15
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Quelques essais avec une alim réglable

    Avec un if 10,5V:

    - À la mise sous tension et en attente de l'appui sur la touche étoile le if fonctionne si la tension d'entrée sous 11,4/11,5V
    - Pendant le décompte le if fonctionne dès que la tension d'entrée est à 10,5V

    On approche on approche.

  16. #16
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Mince je voulais dire le N-MOS, si tu peux le court circuiter et nous dire si ça fonctionne ou si ca fait toujours pareil ? (Avec la batterie, pas avec l'alim réglable)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  17. #17
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    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 332
    Points : 4 153
    Points
    4 153
    Par défaut
    Bonjour,

    J'avais imaginé un courant de démarrage mais les 2 secondes du setup m'en avaient dissuadé.

    Pourtant cela ressemble à un courant fort tiré durant très peu de temps au démarrage et qui écrase suffisamment l'alimentation pour passer en dessous du seuil du if mais suffisamment peu de temps pour que le multimètre ne le voit pas.

    Avec une alimentation de laboratoire il serait facile de le contrôler en faisant varier la limitation de courant à chaque démarrage. Encore faut il en avoir une sous la main.

    Comme c'est une mesure d'évolution lente, il est possible de mettre sur l'entrée de mesure de la tension un petit condensateur chimique de, par exemple, 4.7 uF. S'ii y a une perturbation fugitive au démarrage, il y a des chances qu'elle soit absorbée par ce filtre sommaire. Bien sûr, en l'absence de qualification du problème (i.e. un oscillo ) cela reste au doigts mouillé. Même si cela marche cela n'explique la cause.

    A la place du condensateur, il est possible d'utiliser un peu de code. Au lieu d'un if on peut mettre une boucle qui, en cas de valeur en dessous du seuil, répète plusieurs fois la mesure avec une temporisation, l'arrêt n'ayant lieu que si la valeur moyenne est en dessous du seuil.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  18. #18
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    C'est un peu pour ça que j'ai mis 2 sec.au démarrage
    Je vais regarder à l'oscillo d'une part et régler la limitation de courant de l'alim. au mini pour voir
    Je pense que si l'alim. s'effondre un court instant c'est dû au mosfet de sortie ou une mauvaise connexion mais pas à l'accu

    Autre observation que je fais depuis le début: en appuyant sur le bouton l'arduino s'allume instantanément mais il faut attendre pratiquement 2 secondes pour que l'afficheur s'allume aussi. En décommentant les 2 sec. du setup c'est pareil.

    Je vous tiens au courant

  19. #19
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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
    Bon je crois que le problème est là sans être à cent pour cent sûr
    Images attachées Images attachées  

  20. #20
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Le problème que je vois avec le N-MOS c'est ses éléments parasites

    Le RDSon est donné à 0.024Ω pour un VGS de 10V ce qui est grosso modo ton cas. Le Icc du micro est de 9mA s'il tourne à 16MHz, environ 1mA par LED allumée, est ce que le courant de l'afficheur passe aussi dans le N-MOS ? et il y aura le courant du transceiver. Même si la somme des courants était de 100mA, on perdrait 2,4mV dans RDSon sauf qui si le courant est impulsionnel les inductances parasites vont faire augmenter fortement l'impédance du transistor.

    La datasheet du IRFZ44N donne 12nH pour Ldrain et Lsource.

    Nom : Capture021.PNG
Affichages : 94
Taille : 393,0 Ko

    Des courants impulsionnels de 1MHz (du SPI par exemple) et l'impédance du transistor devient √(0.024² + 0.075Ω²) = 0.078Ω
    Des courants impulsionnels de 16MHz (clock du Arduino) et l'impédance du transistor devient √(0.024² + 1.2Ω²) = 1.20Ω
    Des courants impulsionnels de 433MHz (transceiver) et l'impédance du transistor devient √(0.024² + 32.63Ω²) = 32.63Ω

    La tension impulsionnelle résultant du courant impulsionnel traversant de telles impédances peuvent fausser les mesures.



    Pour débugguer la première chose que j'écarterai c'est le N-MOS, après peut être que ce n'est pas ça, mais tout du moins je m'en assurerai en le court-circuitant le temps d'un essai.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/12/2016, 19h06
  2. WINDOWS 7 CMD tension alimentation
    Par philippe13 dans le forum Windows
    Réponses: 0
    Dernier message: 14/09/2015, 21h24
  3. [PC fixe] Allumage du PC quand l'alimentation est mise sous tension
    Par flamme34 dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 26/02/2013, 17h49
  4. [Alimentation] Alimentation en panne avec PC hors tension
    Par katoyi dans le forum Composants
    Réponses: 5
    Dernier message: 12/01/2009, 14h04
  5. tension d'alimentation pour une carte vidéo G4 MX440-T8X
    Par dirty_boy dans le forum Composants
    Réponses: 3
    Dernier message: 30/03/2006, 17h55

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