Étape 6: Pour la déclaration
Cet exemple est tout au sujet la déclaration. Je vais présenter la syntaxe et comment l’utiliser. Je vais également utiliser un croquis directement à partir de l’IDE Arduino. Charger le sketch intitulé ForLoopIteration de File/Examples/05.Control.
Vous aurez besoin d’un Arduino, 6 LEDs rouges, 6 220ohms résistances, une maquette et quelques fils de raccordement. Connecter le + ve conduire de chaque LED à une résistance et les visser sur les broches 2,3,4,5,6 et 7 sur l’Arduino. Puis connectez les cordons de liaison – ve à la GND sur l’Arduino.
Le sketch :
int timer = 100 ; Plus le chiffre, le plus lent du calendrier.
void setup() {}
pour (int thisPin = 2; thisPin < 8; thisPin ++) {/ / utiliser une boucle for pour initialiser chaque broche comme sortie
pinMode (thisPin, sortie) ;
}
}
void loop() {}
pour (int thisPin = 2; thisPin < 8; thisPin ++) {/ / boucle de l’axe le plus bas au plus élevé :
digitalWrite (thisPin, HIGH) ; activer le code pin :
Delay(Timer) ;
digitalWrite (thisPin, basse) ; désactiver le code pin :
}
pour (int thisPin = 7; thisPin > = 2; thisPin--) {/ / boucle de la goupille de plus haute au plus bas :
digitalWrite (thisPin, HIGH) ; activer le code pin :
Delay(Timer) ;
digitalWrite (thisPin, basse) ; désactiver le code pin :
}
}
Nous allons disséquer le croquis
Puisque cet exercice est sur la déclaration ou boucle, je vais commencer par expliquer comment l’utiliser.
Syntaxe :
pour (initialisation ; condition ; increment) {}
» ou « États ;
}
Le pour boucle permet de répéter les instructions enfermée dans le bouclés entre parenthèses un certain nombre de fois défini par l’incrémentation et la condition.
Par exemple :
pour (int a = 0; a < 10; a ++) {serial.println(a);}
- Initialisation : int a = 0, déclarez une variable et de lui donner une valeur.
- Condition : utiliser des opérateurs de comparaison pour définir la condition.
- Incrément : augmenter/diminuer la valeur de la variable.
- Déclaration : imprimer la valeur de la variable a.
Dans l’exemple ci-dessus, nous déclarons une variable du type int appelé « a » et nous lui donner la valeur 0. Puis nous avons mis une condition disant que tant que « a » les moins de 10 est imprimer la valeur de « a » puis augmenter « a » en utilisant les opérations arithmétiques composé de 1.
Voici le résultat :
- « a » = 0, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 1, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 2, n’est « a » de moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 3, n’est « a » de moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 4, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 5, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 6, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 7, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 8, est « a » moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 9, n’est « a » de moins de 10 ? Oui ; imprimer « a » puis ajoutez 1 à « a »
- « a » = 10, n’est « a » de moins de 10 ? Non ; arrêter la boucle
Cette boucle a couru 10 fois seulement parce que la condition n’était pas satisfaite quand il a couru la 11e fois.
Affectations arithmétiques ou composées composées :
Voici la notation sténographique une équation arithmétique. Ils peuvent être facilement remplacés par l’équation arithmétique, mais ils ont l’air plus agréable dans le code :
un ++ même comme un = a + de1 a par + 1
a--identique à un = a-1 décrémente un par -1 a et b += identique à un = a + b par incréments un par + b a et b = identique à un = a-b décrémente un par – b un * = b identique à un = un * b incréments un par un * b un / = b identique à un = un / b décrémente un par un / b
Revenons à l’esquisse :
int timer = 100 ;
Déclarez une variable du type int appelé minuterie avec la valeur 100. Cela servira une minuterie plus tard pour créer l’effet de Cylon.
void setup() {}
pour (int thisPin = 2; thisPin < 8; thisPin ++) {}
pinMode (thisPin, sortie) ;
}
}
Il s’agit d’un usage très intéressant de la boucle for. Nous utilisons la boucle for pour définir les modes de goupille sur l’Arduino à la sortie. Cela ne fonctionne que si les broches que nous utilisons sont dans un ordre que nous utilisons les broches 2 à 7. Cette boucle for remplacé les lignes suivantes :
- pinMode (sortie 2) ;
- pinMode (3, sortie) ;
- pinMode (sortie 4) ;
- pinMode (5, sortie) ;
- pinMode (6, sortie) ;
- pinMode (7, sortie) ;
void loop() {}
pour (int thisPin = 2; thisPin < 8; thisPin ++) {}
digitalWrite (thisPin, HIGH) ;
Delay(Timer) ;
digitalWrite (thisPin, basse) ;
}
pour (int thisPin = 7; thisPin > = 2; thisPin--) {}
digitalWrite (thisPin, HIGH) ;
Delay(Timer) ;
digitalWrite (thisPin, basse) ;
}
}
L’objet de cet exercice est pour allumer les LEDs, un à la fois de gauche à droite puis de droite à gauche, mise en caisse un effet Cylon ou la Knight rider.
Nous faisons cet effet en créant deux boucles une fois déplacer la lampe de droite à gauche et une autre à déplacer les lumières dans la direction opposée.
pour (int thisPin = 2; thisPin < 8; thisPin ++) {}
digitalWrite (thisPin, HIGH) ;
Delay(Timer) ;
digitalWrite (thisPin, basse) ;
}
Dans cette boucle, que nous commençons à la broche numéro 2 allumer la LED un à la fois jusqu'à ce qu’il atteigne la broche 7, les LEDs restent allumé pendant un délai de « timer », qui est de 100 millisecondes, ce qui nous donne l’illusion que la lumière a voyagé de droite à gauche.
pour (int thisPin = 7; thisPin > = 2; thisPin--) {}
digitalWrite (thisPin, HIGH) ;
Delay(Timer) ;
digitalWrite (thisPin, basse) ;
}
Dans la seconde boucle for, la lumière commence à broche 7 et s’arrête à pin2, éteindre à nouveau après un délai de « timer ». Ceci termine les effets de la lumière rouge se déplaçant dans les deux sens.