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 :

Le fameux fading, marche sur une lumière mais pas la deuxième..


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut Le fameux fading, marche sur une lumière mais pas la deuxième..
    Bonjour et joyeux noël à tous!
    Bon.. jai une commode à deux portes avec deux reed switchs, une sur chaque.
    J'essaie d'ajouter un fading (éclairage progressif), et j'ai cherché énormément et je me retrouve avec deux series de codes différents mais qui font la même chose.. pratiquement.
    Mon premier code, les deux lumières allument en fading mais ils finissent toujours par s'éteindre et font leur loop comme ça à l'infinie sans que je ferme la porte..

    Le deuxième code, j'ai utilisé le fameux static int qui fait en sorte que la loop ne se fasse pas (c'est ce que j'ai compris), et avec celui la, la lumière de gauche marche bien mais pas la deuxième..

    Voila mon premier sans le static int;

    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
    const byte pinLedGauche = 10;
    const byte pinLedDroite = 11;
    const byte pinReedGauche = 2;
    const byte pinReedDroite = 3;
    int switchState = 0;
    int switchStated = 0;
    #define DELAY 20
     
    void setup()
    {
    pinMode(pinLedGauche, OUTPUT);
    pinMode(pinLedDroite, OUTPUT);
    pinMode(pinReedGauche, INPUT);
    pinMode(pinReedDroite, INPUT);
    }
    void loop()
    {
      switchState = digitalRead (pinReedGauche);
      if (switchState == 1)
      for(int i = 0; i < 160; i++) {
        analogWrite (pinLedGauche, i);
        delay(DELAY);
        }
     else 
        analogWrite (pinLedGauche, LOW);
     
        switchStated = digitalRead (pinReedDroite);
        if (switchStated == 1)
        for(int i = 0; i < 160; i++) {
        analogWrite (pinLedDroite, i);
        delay (DELAY);
        }
        else
        analogWrite (pinLedDroite, LOW);
     
      }
    Et voila la deuxième;

    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
    const byte pinLedGauche = 10;
    const byte pinLedDroite = 11;
    const byte pinReedGauche = 2;
    const byte pinReedDroite = 3;
     
     
    void setup()
     {
      pinMode (pinLedGauche, OUTPUT);
      pinMode (pinLedDroite, OUTPUT);
      pinMode (pinReedGauche, INPUT);
      pinMode (pinReedDroite, INPUT);
        }
    void loop()
     {
    static int fadeValue = 0;
     if (digitalRead (pinReedGauche) == HIGH)
      {
       if (fadeValue < 255)
       {
        fadeValue++;
         analogWrite (pinLedGauche, fadeValue);
         delay(10);
       }
      }
     else
     {
      if (fadeValue > 0)
       { fadeValue--;
        analogWrite (pinLedGauche, fadeValue);
        delay(10);
     
    static int fadeValue =0;
     if (digitalRead(pinReedDroite) == HIGH)
      {
       if (fadeValue < 255)
       {
        fadeValue++;
         analogWrite (pinLedDroite, fadeValue);
         delay(10);
       }
      }
     else
     {
      if (fadeValue > 0)
       { fadeValue--;
        analogWrite (pinLedDroite, fadeValue);
        delay(10);
         }
        }
       }
      }
     }

    J'aimerais comprendre ce que je ne fais pas de correcte.. merci de votre aide!

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Bonjour et bonnes fêtes

    Deux choses

    - vous ne devez pas tester l’état de la broche mais le CHANGEMENT de cet état - c’est ce qui doit déclencher un cycle d’allumage progressif si la transition est LOW -> HIGH (par exemple) et une extinction immédiate (sans doute) si la transition est HIGH -> LOW.

    - idéalement ne faites pas une boucle for pour gérer l’allumage progressif car pendant ce temps là vous ne testez plus l’état des broches. Si vous êtes OK avec l’idée que pendant le temps d’allumage graduel rien ne se passe d’autre alors vous pouvez conserver cette boucle, c’est un choix. Une approche par machine à états serait plus adaptée et on ne met pas de delay() bloquant.


    voici un bout de code (non testé, tapé ici) qui devrait vous donner des idées
    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
    const byte pinLedGauche = 10;
    const byte pinLedDroite = 11;
    const byte pinReedGauche = 2;
    const byte pinReedDroite = 3;
     
    const unsigned long attente = 20ul; // temps d'attente entre 2 gradations
    const byte maxLuminosite = 160;     // luminosité max des LEDs
     
    enum t_etat : byte {ETEINTE, GRADATION, ALLUMEE}; // les états possibles de notre LED
     
    const byte PORTE_FERMEE = LOW;
    const byte PORTE_OUVERTE = HIGH;
     
    // Notre système décrit une porte instrumentée, on regroupe tout ce qui est nécessaire pour une porte
    struct t_porte {
      const byte pinLed;    // pin --- R 220Ω ---- GND
      const byte pinReed;   // le switch dispose d'un pull down externe. LOW veut dire porte fermée, HIGH porte ouverte
      t_etat etatLed;
      byte etatPorte;
      byte gradation;
      byte unsigned long chrono;
    };
     
    t_porte portes[] = {
      {pinLedDroite, pinReedDroite, ETEINTE, PORTE_FERMEE, 0, 0},     // la porte de droite
      {pinLedGauche, pinReedGauche, ETEINTE, PORTE_FERMEE, 0, 0}      // la porte de gauche
    };
     
    const byte nombreDePortes = sizeof portes / sizeof portes[0];
     
    void testerPorte(t_porte& unePorte)
    {
      // on regarde l'état de la porte
      byte etat = digitalRead(unePorte.pinReed);
      if (unePorte.etatPorte != etat) {                         // Si l'état a changé
     
        unePorte.etatPorte = etat;                              // on mémorise le nouvel état
     
        if (unePorte.etatPorte == PORTE_FERMEE) {               // on vient de fermer la porte, on éteint direct
          digitalWrite(unePorte.pinLed, LOW);
          unePorte.etatLed = ETEINTE;
        } else {                                                // on vient d'ouvrir la porte, on lance la gradation
          unePorte.gradation = 0;
          unePorte.chrono = millis();
          unePorte.etatLed = GRADATION;
        }
     
      } else {                                                  // la porte est restée dans le même état
     
        if (unePorte.etatLed == GRADATION)                      // si on était en mode gradation
          if (millis() - unePorte.chrono >= attente) {          // et que le delta T s'est écoulé
            unePorte.gradation++;                               // alors on change la luminosité
            analogWrite(unePorte.pinLed, unePorte.gradation);
            unePorte.chrono = millis();
            if (unePorte.gradation >= maxLuminosite) unePorte.etatLed = ALLUMEE; // on teste si on a fini
          }
      }
    }
     
    void setup()
    {
      for (byte i = 0; i < nombreDePortes; i++) {
        pinMode(portes[i].pinLed, OUTPUT);
        pinMode(portes[i].pinReed, OUTPUT);
      }
    }
     
    void loop()
    {
      for (byte i = 0; i < nombreDePortes; i++) testerPorte(portes[i]);
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    On est rendu à un "Next Level"
    Je vais prendre le temps de comprendre tout ça, parce que c'est quand même complexe, je serais pas arrivé à ça tout seul LOL, ensuite je l'essaie et je te reviens la dessus.
    Merci encore Jay!

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Oui c’est un peu plus structuré

    Testez au moins si ça compile, et éventuellement si ça fonctionne avant d’essayer de comprendre ce que ça fait

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Bon, la compilation fonctionne, il ne montre pas d'erreur donc j'ai fais le upload dans le arduino mais les lumières ne marchent pas, rien n'allume

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    j'avais laissé (au moins) un petit bug... bien sûr c'est pour voir si vous suiviez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void setup()
    {
      for (byte i = 0; i < nombreDePortes; i++) {
        pinMode(portes[i].pinLed, OUTPUT);
        pinMode(portes[i].pinReed, OUTPUT);
      }
    }
    une idée de ce qui ne va pas?

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    eh lala ... le reed doit être INPUT et non OUTPUT haha j'ai pas l'air de suivre LOL
    Je vais le mettre dans le arduino vers midi (il est 9h AM présentement chez moi) et je te reviens, merci pour ce test que j'ai échoué

  8. #8
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    ça marche #1, une seule chose arrive.. si j'ouvre les deux portes, lorsque la porte de droite finit son fading (lumière complètement allumé), celle de gauche commence à "blinker", elle flash de façon régulière.. si je ferme la porte de droite tout redevient normal et elle allume normalement.

  9. #9
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Bonsoir

    Oui en INPUT voire INPUT_PULLUP suivant votre câblage

    Décrivez votre câblage exact et les alimentations

  10. #10
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Rebonsoir, désolé du délais j'ai téléchargé Kicad pour faire le schema mais ça va être trop long donc je vais te montrer des images de comment j'ai fais. (Ce sont des images prises sur google et non les miennes)

    Nom : reedswitch.jpg
Affichages : 141
Taille : 44,9 Ko

    J'ai branché mes reed switchs exactement comme ça avec une mise à la terre commune (ils sont branché ensemble entre les deux reed switchs) avec des resistances de 220 ohm (une pour chaque reed switchs sur l'alimentation).
    La je parle seulement des switchs, les leds sont branchés avec un MOSFETS pour chaque porte (donc 2 mosfets).

    Les leds sont branchés tous ensemble au power du transof. 120V au mur , et ensuite tout est branché comme sur la photo sauf que j'ai remarqué que je n'ai pas mis de resistance sur le GATE, est-ce grave ?

    Nom : arduinomosfet.png
Affichages : 170
Taille : 85,3 Ko

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    faites un petit dessin à main levée (ou avec une règle) de votre montage même si ce n'est pas beau, faites une photo et postez là puisque le schéma ne montre qu'un seul Reed et vous en avez 2.

    ==> où sont vos 2 fils qui vont aux pins 2 et 3 ?

  12. #12
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Nom : circuitcommode.jpg
Affichages : 141
Taille : 1,85 Mo

    Les mises à la terre sont tous reliés ensemble sur le breadboard en passant et mon arduino est alimenté en 5V.

  13. #13
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    OK

    pour les résistances sur les MOSFET: En gros si un fil de connexion à la Gate flotte (est en l'air) il joue l'effet d'une antenne et le condensateur interne risque de se charger tout seul et comme la résistance entre la Gate et la Source est infinie il ne se décharge jamais. Si cette charge atteint un seuil critique, le MOSFET peut devenir passant ce qui dans certains cas est dangereux (activation d'un processus par exemple)

    Avec les gros MosFet (Capacité entre G et S > 3 nF) le courant lors de l'établissement du circuit peut être élevé et incompatible avec ce que peut délivrer une pin de votre micro-processeur. On met parfois une résistance aussi pour limiter cet appel de courant. (faut pas dépasser 40mA, rester sous 20 c'est plus sûr).

    donc par sécurité, on met le plus proche du MOSFET une résistance de 10 kΩ entre la Gate et la Source pour que le condensateur entre G et S puisse se décharger et si c'est un "Gros" on place aussi une résistance de ~200 ohms en série sur le fil de commande de Gate pour limiter le courant. Si on met les deux il faut faire attention aux valeurs retenues car on peut créer un pont diviseur et avec le condensateur interne on aurait un circuit RC avec une constante de temps qui rendrait votre système peu réactif et en phase transitoire un MOSFET chauffe...

    Enfin il faudrait savoir quel MOSFET vous avez retenu. Il faut vous assurer que la tension que vous appliquez (Vgs) soit suffisante pour faire passer assez de courant pour vos LEDs.

    Voici un tuto un peu généraliste qu'il est bon de lire.

    pour le clignotement ça pourrait venir d'une tension Vgs qui n'est pas assez forte par exemple ou fluctuante car on tire trop de jus sur le micro.

  14. #14
    Expert confirmé

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

    Citation Envoyé par Jay M Voir le message
    ...pour le clignotement ça pourrait venir d'une tension Vgs qui n'est pas assez forte par exemple ou fluctuante car on tire trop de jus sur le micro.
    Ou l'alimentation 24 Volts est en limite . Je présume que ce sont des barrettes de leds sur verre : tension et courant de service ? Sans résistance série (même faible), soit la limitation s'opère via l'alimentation (d'où un pompage possible), soit via le Mosfet (le pauvre).

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

  15. #15
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Salut @Guesset

    Effectivement c’est très possible aussi.

  16. #16
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Ce sont des mosfets IRF720 pour les deux.
    Et puis les leds ce sont ceux la que j'utilise:

    Nom : leds.jpg
Affichages : 128
Taille : 1 011,9 Ko

    Nom : leds1.jpg
Affichages : 142
Taille : 1 008,5 Ko

    Que j'ai coupé, soudé et 'shrinké' et testé sans le arduino pour être sûr qu'ils allument bien.
    Ensuite j'ai tout installé avec le arduino.
    Le power supply est capable de tenir 10M de lumières et maintenant j'ai environ 1.5M.

    Pour ce qui est des mofset irf720, dois-je mettre une resistance entre le G et S ?

  17. #17
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Les IRF sont prévus pour être pilotés plutôt à 10V

    Avez vous regardé la courbe du courant obtenu en fonction de VGS Pour un irf720 ?
    Nom : VGS.png
Affichages : 131
Taille : 132,3 Ko

    est-ce suffisant pour alimenter les bandeaux ? (environ 0.8A si on est bien à 5V)

    votre photo montre un consommation de 9,6W par m linéaire de consommation. donc 1.5 x 9.6 = 14,4W
    si vous alimentez en 12V il vous faut 14,4/12 = 1,2A
    si vous alimentez en 24V il vous faut 14,4/24 = 0,6A

    ==> vous êtes peut être un peu juste si vous êtes bien en 24V DC

    un IRF520 serait un peu mieux, à 5V il délivre 3A (sur un max possible de 9.2)
    un IRL540 (le L pour Logic Level) serait plus adapté, à 5V il laissera passer 28 Amps

  18. #18
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2020
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Mon power supply fournis du 24V, je l'ai mésuré..
    Donc je vais interchanger avec des IRF520, ce qui me fatigue un peu c'est que si je ne met pas de fading les deux lumières allument et peuvent être allumé en même temps sans problème (ils ne 'blink' pas comme en fading)..
    Je crois que j'ai des IRF520 dans mon kit, je vais les changer et revenir ici la dessus.
    Merci encore du suivis

  19. #19
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    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 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Si ça fonctionne sans pwm ca veut dire sans doute que même si le MOSFET n’est pas complètement passant, ça suffit pour allumer les bandeaux

    Le fading se fait en PWM qui est uno régime ON/OFF avec oscillation rapide - peut être que les leds n’aiment pas ?

    Un test tout bête à faire serait de faire un petit code qui pilote les deux mosfet en mettant un PWM a différents régîmes pendant 5 secondes et voir ce qu’il se passe

    Si tout va bien il y’a peut être un big dans l’autre code (je suis sur mon iPhone donc peux pas trop tester)

  20. #20
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 324
    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 324
    Points : 4 134
    Points
    4 134
    Par défaut Symétrie et alimentation
    Bonjour Maxime,

    Citation Envoyé par Maximejurj Voir le message
    ... si j'ouvre les deux portes, lorsque la porte de droite finit son fading (lumière complètement allumé), celle de gauche commence à "blinker", elle flash de façon régulière.. si je ferme la porte de droite tout redevient normal et elle allume normalement.
    Est-ce que le phénomène est symétrique ? C'est peut-être difficile à tester car l'une de portes doit naturellement être la première mais en jouant sur les borniers détection et led on doit pouvoir permuter les rôles. Si ce n'est pas symétrique, il y a vraisemblablement une asymétrie de câblage ou de code.

    Autre piste. Comment est produit le 5 volts de la carte Arduino ? Si c'est à partir du 24 V il faudrait vérifier que le 5 volts produit est propre (multimètre en alternatif ou mieux oscilloscope) notamment durant le fading.

    Par ailleurs, l'alimentation 24 Volts semble une alimentation pour les bandes de LED. Or souvent ces alimentations à découpage fournissent un résultat peu filtré, laissant la rémanence rétinienne faire le job. Nous pourrions donc être en train de faire un découpage (PWM) sur une alimentation découpée dont le rythme va évoluer avec la charge d'où possibilité de battements visibles. Il faut donc vérifier non seulement la tension moyenne mais également l'ondulation sur le 24 V (idem, multimètre en alternatif ou mieux oscilloscope, ou bien remplacer temporairement l'alimentation 24 Volts par une alimentation de laboratoire - si c'est possible ).

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

Discussions similaires

  1. Code qui marche sur un poste mais pas sur un autre
    Par TOSCAN dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2008, 21h09
  2. Réponses: 8
    Dernier message: 19/05/2008, 09h00
  3. Réponses: 0
    Dernier message: 03/04/2008, 15h14
  4. Fade in sur plusieurs images mais pas simultanément
    Par dynexd dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/02/2007, 09h10
  5. Réponses: 5
    Dernier message: 02/10/2006, 19h24

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