Partage
  • Partager sur Facebook
  • Partager sur Twitter

Blinkind LED

    21 novembre 2012 à 13:34:38

    Bonjour à tous ! :D
    Comme cela est dit dans le titre ( allumer une led pour ceux qui sont nul en anglais :p ), j'aimerais
    allumer une led, cela marche très bien quand je ne me sert pas de ma breadboard mais quand je m'en sert plus rien de fonctionne (la led reste éteinte et c'est le bouton de la carte qui clignote.) pourtant je suis sur que cela devrait marcher.
    Voila mon schéma:
    Image utilisateur

    Le fil rouge est relié au pin 13.
    La résistance fait 243 Ohm.
    Le fil noir est relié au gnd.

    Le code :
    void setup() {
      
      pinMode(13, OUTPUT); 
    } 
    
    void loop() {
      
      digitalWrite(13, HIGH); 
      delay(1000); 
      digitalWrite(13, LOW); 
      delay(1000); 
    }
    


    Mais rien ne se passe ...
    Voila Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      21 novembre 2012 à 13:37:44

      Ou là c'est normal que rien ne se passe.

      Les connexions internes à la breadboard sont uniquement sur les lignes verticales.

      Ce qui veut dire que ton fil rouge et la patte gauche de ta résistance doivent être sur la même verticale pour qu'il y ait contact. Pareil pour la patte droite de la résistance et la LED, ainsi que pour la LED et le fil noir.
      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2012 à 13:49:05

        Merci :)
        J'ai rectifier l'erreur mais cela ne fonctionne toujours pas :( :
        Voila mon nouveau schéma :
        Image utilisateur

        Je précise que j'ai mi l'anode a gauche et la cathode à droite.
        • Partager sur Facebook
        • Partager sur Twitter
          21 novembre 2012 à 14:19:06

          Toujours le meme problème, la breadboard est reliée par colonne

          Image utilisateur
          • Partager sur Facebook
          • Partager sur Twitter
            21 novembre 2012 à 15:56:08

            Merci :D
            J'ai ensuite essayer de faire un chenillard a 2 leds.
            Mais je me suis servi de ce code :
            int timer = 100;           // The higher the number, the slower the timing.
            
            void setup() {
              // use a for loop to initialize each pin as an output:
              for (int thisPin = 2; thisPin < 8; thisPin++)  {
                pinMode(thisPin, OUTPUT);      
              }
            }
            
            void loop() {
              // loop from the lowest pin to the highest:
              for (int thisPin = 2; thisPin < 8; thisPin++) {
                // turn the pin on:
                digitalWrite(thisPin, HIGH);  
                delay(timer);                  
                // turn the pin off:
                digitalWrite(thisPin, LOW);    
              }
            
              // loop from the highest pin to the lowest:
              for (int thisPin = 7; thisPin >= 2; thisPin--) {
                // turn the pin on:
                digitalWrite(thisPin, HIGH);
                delay(timer);
                // turn the pin off:
                digitalWrite(thisPin, LOW);
              }
            }
            


            Sachant que mes pins sont le 0 et 1, je l'ai arranger comme cela:
            int timer = 170;           // The higher the number, the slower the timing.
            
            void setup() {
              // use a for loop to initialize each pin as an output:
              for (int thisPin = 0; thisPin < 2; thisPin++)  {
                pinMode(thisPin, OUTPUT);      
              }
            }
            
            void loop() {
              // loop from the lowest pin to the highest:
              for (int thisPin = 0; thisPin < 2; thisPin++) {
                // turn the pin on:
                digitalWrite(thisPin, HIGH);  
                delay(timer);                  
                // turn the pin off:
                digitalWrite(thisPin, LOW);    
              }
            
              // loop from the highest pin to the lowest:
              for (int thisPin = 1; thisPin >= 2; thisPin--) {
                // turn the pin on:
                digitalWrite(thisPin, HIGH);
                delay(timer);
                // turn the pin off:
                digitalWrite(thisPin, LOW);
              }
            }
            

            Mais les LED s’allument a basse tension mais rien ne se passe ...
            Merci !
            • Partager sur Facebook
            • Partager sur Twitter
              21 novembre 2012 à 19:13:14

              Tout d'abord comme expiqué dans le tuto on essai d'éviter d'utiliser les broches 0 et 1 (qui sont à se réserver en premier lieu pour la voie série, et naturellement "squatté" par le bootloader donc peut poser des problèmes bizarres des fois)

              Ensuite, la deuxième boucle est fausse, tu n'y fait même pas un tour, donc on retourne tout de suite à la première boucle...
              A ce propos as tu compris pourquoi l'auteur original fait des boucles entre 2 et 8 pour le premier for et 7 et 2 pour le second ?

              Enfin, je n'ai pas compris la dernière phrase ^^
              • Partager sur Facebook
              • Partager sur Twitter
                21 novembre 2012 à 19:56:06

                Yop ! :)
                Merci de continuer à m'aider ! :D

                Voila ou j'en suis, donc j'ai trois LED brancher sur le pin 10, 11, 12.
                Donc j'ai changer pour éviter les bugs ^^
                Pour la première boucle for, tout simplement au lieu de marquer pin 10, 11 et 12.
                La boucle permet de récupérer les 3 à la fois.

                Pour les 2 autres boucles, on récupère la première valeur du pin. (10)
                et on lui dit que tant que c'est inférieur à 13 alors on incrémente.
                Mais je n'ai toujours pas compris pourquoi la boucle deux est fausse.
                A mon avi, je n'ai pas bien cerné ce code, pourrait tu m'en dire plus ?
                Voila Merci! ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  21 novembre 2012 à 21:33:04

                  Effectivement, le code "digitalWrite" dans les boucles utilisent directement l'index du for pour adresser les broches. C'est pratique pour économiser quelques grammes de mémoire mais moins bien pour faire du code propre.

                  Tu as trois LED, branchés sur 10, 11 et 12. Il faut donc parcourir pour "thisPin" commençant à 10 et tant que elle est inférieur ou égal à 12 pour le premier for (en incrémentant à chaque tour).
                  Pour faire le "retour" du chenillard, on fait un autre fort qui devrait commencer à 12 et agir tant que thisPin est supérieur ou égal à 10 (et on décrémente à chaque tour).

                  Partant de ca je te laisse taper le code ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Blinkind LED

                  × 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