Étape 4:.: 8 LED Fun:. (Plusieurs del) - CIRC02
Ce que nous faisons :
Nous y avons fait une LED clignote, maintenant son temps à mettre les enjeux. Permet de connecter les huit. Nous aurons également l’occasion pour étirer l’Arduino un peu en créant diverses séquences d’éclairage. Ce circuit est aussi une belle configuration d’expérimenter avec vos propres programmes d’écriture et de se faire une idée de comment fonctionne l’Arduino.
Ainsi que de contrôler les voyants nous commencer à chercher dans quelques méthodes de programmation simples pour garder vos programmes petit.
boucles for () - utilisés lorsque vous souhaitez exécuter un morceau de code plusieurs fois.
[tableaux] - utilisé pour rendre plus facile de gestionnaires variables (c’est un groupe de variables)
(vous pouvez également télécharger la feuille du schéma maquette du fond de cette étape)
Les parties :
- Feuille de CIRC-02 Breadboard
- Réglette à broches 2 (x4)
- LED de 5mm verte (x8)
- 560 ohm résistance (vert-bleu-brun) (x8)
Le Circuit et brancher tout :
Une petite vidéo de tout étant branché
Le Code :
/* --------------------------------------------------------- * | Code de Kit exemple expérimentation Arduino | * | CIRC-02.: 8 LED Fun:. (Plusieurs del) | *---** Quelques animations Simple LED ** pour plus d’informations sur ce http://tinyurl.com/d2hrud circuit * * ///LED Pin Variablesint ledPins [] = {2,3,4,5,6,7,8,9} ; Un tableau de tenir la broche chaque LED est reliée à / / c'est-à-dire LED #0 est connecté à la broche 2, LED #1, 3 et donc sur l’adresse //to un tableau utiliser ledPins [0], cela équivaudrait à 2 //and ledPins [7] serait égal à 9 / * * setup() - cette fonction est exécutée une fois quand vous allumez votre Arduino * nous les tiges de trois contrôle sorties * / void setup() {//Set chaque broche reliée à une LED pour le mode de sortie (traction élevé (activé) ou faible (off) pour (int i = 0 ; J’ai < 8 ; i ++) {//this est une boucle et répéter huit fois pinMode(ledPins[i],OUTPUT) ; //we utiliser ceci pour définir chaque broche de LED pour la sortie} //the code cela remplace est ci-dessous / * (a commenté le code ne s’exécutera pas) * ce sont les lignes remplacés par la pour la boucle ci-dessus, ils font exactement la * même chose celui ci-dessus utilise juste moins frappe pinMode (ledPins [0] SORTIE) ; pinMode(ledPins[1],OUTPUT) ; pinMode(ledPins[2],OUTPUT) ; pinMode(ledPins[3],OUTPUT) ; pinMode(ledPins[4],OUTPUT) ; pinMode(ledPins[5],OUTPUT) ; pinMode(ledPins[6],OUTPUT) ; pinMode(ledPins[7],OUTPUT) ; (End of commented code) * /} / * * loop() - cette fonction débutera une fois l’installation terminée et puis répétez * on appelle une fonction nommée oneAfterAnother(). Si vous désirez un comportement différent * décommenter (supprimer les deux barres obliques) une des autres lignes * / void loop() / / run maintes et maintes fois {oneAfterAnotherNoLoop() ; //this volonté allumer chaque LED un tourner à chaque arrêt / / oneAfterAnotherLoop() ; //does le même qu’oneAfterAnotherNoLoop, mais avec beaucoup moins de taper / / oneOnAtATime() ; //this volonté tourner une LED sur le tour puis celle qui suit sur éteindre la //former (une LED va ressembler il défile le long de la ligne / / inAndOut() ; //lights le deux du milieu se déplace les sortir puis insérez-la à nouveau ensuite les LEDs} / * * oneAfterAnotherNoLoop() - s’allume une LED puis retarder pour /Delay puis lumière * la LED suivante jusqu'à ce que toutes les diodes sont là-dessus sera puis désactivez-les l’un après l’autre ** cela est-il sans utiliser une boucle qui fait pour beaucoup de frappe. * oneOnAtATimeLoop() fait exactement la même chose avec moins de typage * / void oneAfterAnotherNoLoop() {int delayTime = 100 ; //the temps (en millisecondes) pour faire une pause entre LEDs //make plus petite pour une commutation plus rapide et plus grande pour plus lent digitalWrite (ledPins [0], HIGH); //Turns sur LED #0 (connecté à la broche 2) delay(delayTime) ; //waits delayTime millisecondes digitalWrite (ledPins [1], HIGH); //Turns sur LED #1 (connecté à la broche 3) delay(delayTime) //waits /Delay millisecondes digitalWrite (ledPins [2] ÉLEVÉ) ; Allume la LED #2 (connecté à la borne 4) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [3], HIGH) ; Allume la LED #3 (relié à la broche 5) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [4], HIGH) ; Allume la LED #4 (relié à la broche 6) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [5], HIGH) ; Allume la LED #5 (relié à la broche 7) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [6], HIGH) ; Allume la LED #6 (connecté à la broche 8) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [7], HIGH) ; Allume la LED #7 (relié à la broche 9) delay(delayTime) ; attend /Delay millisecondes //Turns chaque LED éteinte digitalWrite (ledPins [7], faible) ; Allume la LED #0 (connecté à la broche 2) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [6], faible) ; Allume la LED #1 (connecté à la broche 3) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [5], faible) ; Allume la LED #2 (connecté à la borne 4) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [4], faible) ; Allume la LED #3 (relié à la broche 5) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [3], faible) ; Allume la LED #4 (relié à la broche 6) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [2], faible) ; Allume la LED #5 (relié à la broche 7) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [1], faible) ; Allume la LED #6 (connecté à la broche 8) delay(delayTime) ; attend /Delay millisecondes digitalWrite (ledPins [0], faible) ; Allume la LED #7 (relié à la broche 9) delay(delayTime) ; attend /Delay millisecondes} / * * oneAfterAnotherLoop() - s’allume une LED puis retarder pour /Delay puis lumière * la LED suivante jusqu'à ce que toutes les diodes sont là-dessus sera puis désactivez-les l’un après l’autre ** ceci le fait à l’aide d’une boucle qui rend beaucoup moins typage. * que oneOnAtATimeNoLoop() fait exactement la même chose avec moins de typage * / void oneAfterAnotherLoop() {int /Delay = 100 ; //the temps (en millisecondes) pour faire une pause entre LEDs //make plus petite pour une commutation plus rapide et plus grande pour plus lentement / / allumer chaque LED l’un après l’autre pour (int j’ai = 0; j’ai < = 7; i ++) {digitalWrite (ledPins [i], HIGH); //Turns LED #i chaque fois que cela fonctionne j’ai delay(delayTime) ; //gets on ajoute donc cela se répète} //8 fois la première fois que j’ai va = 0 le //time final j’est égale à 7; //Turn chaque LED éteinte l’un après l’autre pour (int j’ai = 7; j’ai > = 0; i--) {//same comme ci-dessus, mais plutôt que commençant par 0 et compter jusqu'à //we commencer à sept ans et compte à rebours digitalWrite (ledPins [i], basse); //Turns del #i chaque fois que cela fonctionne j’ai delay(delayTime) ; //gets un il soustrait donc cela se répète} //8 fois la première fois j’ai sera = 7 la //time final j’est égale à 0 ; } / * * oneOnAtATime() - sera une lumière mena ensuite la prochaine éteindre tous les autres * / void oneOnAtATime() {int /Delay = 100 ; //the temps (en millisecondes) pour faire une pause entre LEDs //make plus petite pour une commutation plus rapide et plus grande pour plus lentement pour (int j’ai = 0; j’ai < = 7; i ++) {int offLED = i - 1; //Calculate qui LED a été tourné sur la dernière fois par if(i == 0) {//for j’ai = 1 à 7 C’est j’ai moins 1 (c'est-à-dire que si j’ai = 2, nous allons offLED = 7; //turn LED 2 et hors LED 1)} //however si j’ai = 0 on ne veut pas tourner de led -1 (n’existe pas) //instead nous éteindre la LED 7, (boucle autour) digitalWrite (ledPins [i], HIGH) ; allumer LED #i digitalWrite (ledPins [offLED], faible) ; éteindre la LED que nous avons tourné sur le dernier temps delay(delayTime) ; }} / * * inAndOut() - cela se met en marche les deux LEDs milieu puis les deux suivants sur * faisant un à regarder * / void inAndOut() {int /Delay = 100 ; //the temps (en millisecondes) pour faire une pause entre LEDs //make plus petite pour une commutation plus rapide et plus grande pour //runs plus lent les LEDs à partir du milieu pour (int j’ai = 0; j’ai < = 3; i ++) {int offLED = i - 1; //Calculate qui LED a été tourné sur la dernière fois par if(i == 0) {//for j’ai = 1 à 7, il s’agit J’ai moins 1 (c'est-à-dire que si j’ai = 2, nous allons offLED = 3; //turn LED 2 et éteindre la LED 1)} //however si j’ai = 0 on ne veut pas tourner de led -1 (n’existe pas) //instead nous éteindre la LED 7, (boucle autour) int onLED1 = 3 - i ; Il s’agit de la première LED pour aller ie. # LED3 lorsque j’ai = 0 et 0 # LED lorsque j’ai = 3 int onLED2 = 4 + i ; Il s’agit de la première LED pour aller ie. LED #4 lorsque j’ai = 0 et LED #7 quand j’ai = 3 int offLED1 = 3 - offLED ; s’éteint le voyant nous avons tourné sur dernier moment int offLED2 = 4 + offLED ; s’éteint le voyant nous avons tourné sur le dernier temps digitalWrite (ledPins [onLED1], HIGH) ; digitalWrite (ledPins [onLED2], HIGH) ; digitalWrite (ledPins [offLED1], faible) ; digitalWrite (ledPins [offLED2], faible) ; Delay(delayTime) ; } //runs les LED au milieu pour (int j’ai = 3; J’ai > = 0; i--) {int offLED = i + 1; //Calculate qui LED a été tourné sur la dernière fois par if(i == 3) {//for j’ai = 1 à 7 C’est j’ai moins 1 (c'est-à-dire que si j’ai = 2, nous allons offLED = 0; //turn LED 2 et éteindre la LED 1)} //however si j’ai = 0 on ne veut pas tourner de led -1 (n’existe pas) //instead nous éteindre la LED 7 , (boucle autour) int onLED1 = 3 - i ; Il s’agit de la première LED pour aller ie. # LED3 lorsque j’ai = 0 et 0 # LED lorsque j’ai = 3 int onLED2 = 4 + i ; Il s’agit de la première LED pour aller ie. LED #4 lorsque j’ai = 0 et LED #7 quand j’ai = 3 int offLED1 = 3 - offLED ; s’éteint le voyant nous avons tourné sur dernier moment int offLED2 = 4 + offLED ; s’éteint le voyant nous avons tourné sur le dernier temps digitalWrite (ledPins [onLED1], HIGH) ; digitalWrite (ledPins [onLED2], HIGH) ; digitalWrite (ledPins [offLED1], faible) ; digitalWrite (ledPins [offLED2], faible) ; Delay(delayTime) ; }}
Ne fonctionne ne pas ?
- Certains voyants ne parviennent pas à la lumière - il est facile d’insérer une LED en arrière. Vérifiez les voyants qui ne fonctionnent pas et qu’ils assurent la bonne manière autour.
- Fonctionnement hors séquence - avec huit fils il est facile de traverser un couple. Vérifier que la première LED est branchée sur broche 2 et chaque pin là après.
- À partir de zéro - est facile à égarer accidentellement un fil sans s’en apercevoir. Tout en tirant et commençant par une ardoise de frais sont souvent plus facile que d’essayer de traquer le problème.
Ce qui en fait mieux :
Passage à boucles :
dans la fonction loop() il y a 4 lignes. Le dernier trois tous commencent avec un ' / /' cela signifie que la ligne est traitée comme un commentaire (ne fonctionne ne pas). Pour passer au programme d’utiliser les boucles modifier le code de void loop() pour :
Télécharger le programme et constate que rien n’a changé. Vous pouvez jeter un oeil à deux fonctions, chacun fait la même chose, mais utiliser différentes approches (allusion à la deuxième utilise une boucle for)
Animations supplémentaires :
Fatigué de cette animation ? Ensuite, essayez les deux autres animations de l’échantillon. Décommentez les lignes et télécharger le programme sur votre planche et profiter des lumière de nouvelles animations. (supprimer les barres obliques en face de la ligne 3, puis 4)
Tester vos propres Animations :
Plongez dans le code inclus et commencer à changer les choses. Le point principal est de transformer une LED sur utilisation digitalWrite (pinNumber, HIGH) ; puis de le désactiver utiliser digitalWrite (pinNumber, LOW);. Type de suite, peu importe ce que vous changez, vous ne cassez rien.