Partage
  • Partager sur Facebook
  • Partager sur Twitter

Allumer des LED 12v avec la PWM sur arduino

    3 septembre 2016 à 18:33:05

    Bonjour, j'ai réalisé le circuit ci-dessous pour allumer une série de LED fonctionnant sous du 12v et ce de manière progressif. Il s'agit d'une lampe pour aquarium que je souhaite faire allumer et éteindre dans un laps de temps de quelque secondes. Ceci avec un mosfet IRF520N.

    Malheureusement le circuit ne fonctionne pas correctement : en effet la lampe s'allume mais je ne peut pas contrôlé son état avec arduino, le code n'est pas pris en compte et si je débranche les deux pin reliés à l'arduino la lampe reste allumé. J'ai réalisé exactement le même montage.

    const int led = 9;
    
    void setup() {
    
      pinMode(led, OUTPUT);
      analogWrite(led, 0);
    
    }
    
    void loop() {
    
      analogWrite(led, 255);
    
    }

    Le code est pourtant correcte, analogWrite(led, 255); ou analogWrite(led, 0); font la même chose.

    Merci d'avance pour vos solutions, 

    • Partager sur Facebook
    • Partager sur Twitter
    Mr Spock
      4 septembre 2016 à 21:49:13

      Dans ton code, tu mets const int led = 9; alors que dans ton montage, la gate du transistor est reliée à la pin 3 et non la pin 9.

      Alors forcément, cela ne peut pas marcher...

      Soit tu mets const int led = 3; dans ton code, soit tu connectes sur fil jaune à la pin 9.

      ----------

      Il y a aussi le fait que ton code demande d'allumer la lampe et ne fait rien d'autre.

      Donc cela va être compliqué de voir si il marche bien.

      Pour tes tests, tu devrais faire un code qui alterne différentes luminosités :

      void loop() {
      
          // A fond pendant 2 secondes
          analogWrite(led, 255);
          delay(2000);
      
          // Puis à 50% pendant 3 secondes
          analogWrite(led, 128);
          delay(3000);
      
          // Et enfin OFF pendant 1 seconde
          analogWrite(led, 0);
          delay(1000);
      
      }

      ----------

      Vérifies aussi ton câblage, tu as peut-être inverser 2 pins du transistor.

      • Partager sur Facebook
      • Partager sur Twitter
        5 septembre 2016 à 10:04:19

        J'ai corrigé le problème mais rien n'y faisait. Après quelques recherches j'ai réalisé ce montage : 

        Cette fois si le montage fonctionne à moitié : le système d'éclairage s'allume progressivement jusqu'à son maximum mais reste tout de même allumé (à la moitié de sa capacité à peut près) lorsque la PIN 9 est à l'état 0. Ceci avec ce code : 

        const int led = 9;
        
        void setup() {
        
          pinMode(led, OUTPUT);
        
        }
        
        void loop() {
        
          for(int i = 0; i < 255; i++) {
            analogWrite(led, i);
            delay(10);
          }
        
        }



        • Partager sur Facebook
        • Partager sur Twitter
        Mr Spock
          5 septembre 2016 à 12:12:06

          Utiliser un MOSFET canal P dans cette configuration n'est pas une bonne idée.

          Mieux vaut rester sur le premier montage avec un MOSFET canal N.

          Il te manque aussi une résistance sur la LED, ce qui risque de la cramer...

          Et le GND de ton arduino n'est pas relié au GND de l'alimentation externe donc ça ne pourra pas marcher correctement.

          • Partager sur Facebook
          • Partager sur Twitter

          Allumer des LED 12v avec la PWM sur arduino

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown