Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino exercice

    2 mai 2020 à 13:19:27

    Bonjour,

    est ce que ces deux codes sont similaires ?

    Celui- la :

    /*
    
    */
    int ledPin [5] = { 1, 2, 3, 4, 5 };
    boolean allumee;
    
    void setup() {
        
        for (int x = 0; x < 5; x++)
        { digitalWrite(ledPin [x], OUTPUT);
         digitalWrite(ledPin[x], LOW); //
        }
        allumee = true ;
    //
    }
    
    void loop() {
      if(allumee)
      {
        for (int y = 5 ; y > 0 ; y--)  
      {
       
       digitalWrite(ledPin[y], HIGH);
        delay(1000); 
        
      }
      }
         for (int f = 0 ; f < 5 ; f++)  
      {
       
       digitalWrite(ledPin[f], LOW);
        delay(1000); 
        
      }
      
    }

    et celui-ci :

    /*
    On utilise pour ce programme 5 LED
    connectées sur les pins 2,4,6,8 et 10
    */
    
    int pinLed[5]={2,4,6,8,10}; // Tableau listant les pins
    //Tableau à double entrée listant l’état (booléen 1 allumé, 0 éteint) des LED à chaque séquence
    boolean affichage[25][5]={
      0,0,0,0,0,
      0,0,0,0,1,
      0,0,0,1,0,
      0,0,1,0,0,
      0,1,0,0,0,
      1,0,0,0,0,
      0,0,0,0,0,
      1,0,0,0,0,
      0,1,0,0,0,
      0,0,1,0,0,
      0,0,0,1,0,
      0,0,0,0,1,
      0,0,0,0,0,
      1,1,1,1,1,
      1,1,1,1,0,
      1,1,1,0,0,
      1,1,0,0,0,
      1,0,0,0,0,
      0,0,0,0,0,
      1,1,1,1,1,
      0,1,1,1,1,
      0,0,1,1,1,
      0,0,0,1,1,
      0,0,0,0,1,
      0,0,0,0,0};
    
    void setup() {
      for (int i=0;i<5;i++)
      {
        pinMode(pinLed[i],OUTPUT);
        digitalWrite(pinLed[i],LOW);
      }
      
    }
    
    void loop() {
      for (int i=0;i<25;i++) // boucle de séquence d'affichage
      {
        for (int p=0;p<5;p++) // boucle pour chaque pin
        {
          boolean etat=affichage[i][p]; // on va chercher l'état pour le pin
          digitalWrite(pinLed[p],etat); // on met le pin concerné à l'état
        }
        //tous les pins sont dans l'état de la séquence en cours
        delay(300); //petite pause d'affichage
        // on passe à la séquence suivante
      }
      // fin des séquences et on repart au début de la loop()
    
    }

    mercii

    • Partager sur Facebook
    • Partager sur Twitter
      4 mai 2020 à 8:20:49

      Tout dépend de ce que tu appels par "similaire"...

      Le premier se contente de faire clignoter 5 LEDs en même temps.

      Le seconds joue une animation décrite par le tableau affichage.

      Ce n'est pas exactement la même chose.

      Mais dans les 2 cas, ces codes pilotent 5 LEDs avec un Arduino.

      • Partager sur Facebook
      • Partager sur Twitter
        10 mai 2020 à 17:25:01

        Merci ! Pourtant dans le premier j'ai mis 

         delay(1000);

        ce qui devrait faire afficher une lumiere A pendant 1 s, puis la deuxieme...jusqu'a la led E, et enfin les éteindre l'un a la suite de l'autre en commençant par la dernière led E.

        • Partager sur Facebook
        • Partager sur Twitter
          17 août 2020 à 14:16:10

          Dans ton premier programme tu change l'état des pin 5,4,3,2,1 dans ta première boucle et 0,1,2,3,4 dans ta deuxième boucle. Tu devrais revoir les conditions de ta deuxième boucle for.
          • Partager sur Facebook
          • Partager sur Twitter

          Arduino exercice

          × 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