2016-06-02 1 views
0

Im travaillant sur un proramming arduino où je dois à l'un puis le conduit puis sur le prochain .. 16 LED tous tgt et im en utilisant le registre à décalage MC74HC595AN aka 595 registre. Je trouve vraiment difficile de les coder tout seul car j'apprends toujours à programmer avec Arduino. Quelqu'un ayant le code ou pourrait travailler sur le code le partager avec moi s'il vous plaît? Toute forme d'aide sera très appréciée! Je vous remercie!Difficulté dans la programmation Arduino sur LED

Voici le code que j'ai fait, mais ne semble pas fonctionner.

const int button0Pin = 15; 
    const int button1Pin = 1; 
    const int button2Pin = 2; 
    const int button3Pin = 3; 
    const int button4Pin = 4; 
    const int button5Pin = 5; 
    const int button6Pin = 6; 
    const int button7Pin = 7; 



    void setup() { 
     // put your setup code here, to run once: 
    pinMode(button0Pin, OUTPUT); 
    pinMode(button1Pin, OUTPUT); 
    pinMode(button2Pin, OUTPUT); 
    pinMode(button3Pin, OUTPUT); 
    pinMode(button4Pin, OUTPUT); 
    pinMode(button5Pin, OUTPUT); 
    pinMode(button6Pin, OUTPUT); 
    pinMode(button7Pin, OUTPUT); 
    pinMode(14, INPUT); 

    Serial.begin(9600); 

    } 

    void loop() { 
     // put your main code here, to run repeatedly: 



    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 1); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 1); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 1); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 1); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 1); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 1); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 0); 
    digitalWrite(button1Pin, 1); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 

    digitalWrite(button0Pin, 1); 
    digitalWrite(button1Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    digitalWrite(button2Pin, 0); 
    delay(5000); 
    } 

Répondre

0

Donc, pour être clair, vous initialisez la broche 14 comme quelque chose pour recevoir une entrée, mais vous utilisez jamais réellement dans votre boucle principale pour vérifier si vous obtenez une entrée. Pour vous simplifier la vie, pensez à nommer les noms abrégés des épingles par des noms abrégés (

, , ,

). Au lieu de "button0Pin" que diriez-vous juste de "b0"?

En outre, vous pouvez essayer d'utiliser une boucle au lieu de ce que vous faites (écrire des blocs séparés de code, chacun avec la sortie de 1 broches à un autre endroit)

Vous pouvez lire le arduino guides de référence (je lis à chaque fois que je suis la programmation) ici: https://www.arduino.cc/en/Reference/HomePage

et ce lien: https://electronics.stackexchange.com/questions/17975/arduino-uno-light-leds-right-to-left-and-then-reversed peut être similaire à la boucle for dont vous avez besoin.

Espérons que cela a aidé, au moins un peu.

+1

Ne recommande jamais de renommer une variable pour quelque chose qui obscurcit son but. –

+0

Je suis désolé. Je donnais juste un exemple, puisqu'il l'écrit tellement de fois. S'il faisait une note au début du code en disant "b #" se réfère au numéro de la broche du bouton, cela ne devrait pas poser de problème. Quoi qu'il en soit, étant donné que ce programme spécifique n'a pas d'autres variables que les variables des boutons, peu importe comment il choisit de raccourcir les noms des variables "bouton # Pin". – fionerd

+0

Ignacio Vazquez-Abrams, je vois que vous aidez beaucoup en Python. Ça vous dérange de vérifier ma question? J'ai des problèmes et c'est vraiment frustrant pour moi. Merci beaucoup! – fionerd

0

Vous initialisez les modes de broche correctement, mais vous faites énormément d'écriture à button2Pin.

De même, si la broche 14 n'est pas connectée à une alimentation, vous devez plutôt la paramétrer sur INPUT_PULLUP afin de ne pas consommer inutilement l'énergie excédentaire.