Dans cette exemple, vous allez voir comment utiliser une boucle for() qui est très pratique notamment pour automatiser une action.
Ensuite on ajoutera une valeur boolean pour apporter un autre comportement à notre bouton et nos leds.
for()+boolean from Studio Objet Augmente on Vimeo.
Pour cette exemple, on va utiliser:
– 7 leds
– un bouton
On fait un circuit assez simple, les leds sont connectés aux pins digitals 13, 12, 11, 10, 9, 8, 7 et le bouton à la pin 6.
On commence par déclarer nos leds, pour ceci on utilise le signe [] après la valeur pour définir une liste et ensuite on énumère les pins qu’on utilise.
Ensuite dans le setup, on déclare les pins des leds en OUTPUT et pour ce faire on utilise la fameuse boucle for().
for ( on déclare la valeur; la condition à vérifier pour effectuer la boucle; ce qu’on effectue)
Autrement dit:
for (initialization; condition; increment)
Dans notre code, on déclare une valeur i qui va augmenter tant que i est inférieure à 7 (le nombre de leds). Dès que i atteint 7 le code sort de la boucle for().
Ici, le code va déclarer les leds une par une en tant que OUTPUT, ce qui nous évite d’écrire la ligne pinMode (pin, OUTPUT); 7 fois.
On lit la valeur digitale de notre bouton connecté en pin 6 et si le bouton est allumé alors on effectue la boucle for() qui va allumer les leds une par unes. On met un delay de 50ms pour percevoir les leds s’allumer au fur à mesure.
Si notre bouton n’est pas allumé, on effectue une autre boucle for() qui éteint les leds une par une dans le sens inverse avec le même principe que la boucle d’allumage.
On va rajouter une valeur boolean qui va nous permettre de laisser les leds allumer en appuyant une fois sur le bouton et lorsqu’on ré-appuie dessus les leds s’éteignent.
Pour allumer les leds on utilise une condition if() mais au lieu de verifier l’état de notre bouton (HIGH ou LOW), la condition est l’état de la valeur boolean buttonValue si elle true ou false.
On déclare deux nouvelles variables, buttonValue qui est la valeur boolean et PrecedentButton qui nous servira à enregistrer le dernier statut de notre bouton.
On déclare que si notre bouton est HIGH (si on appuie dessus) et que l’état de notre bouton est différent de son dernier état (ceci nous permet d’éviter les conflits si on reste appuyer sur le bouton), notre valeur boolean s’inverse.
Si la valeur boolean est true les leds s’allume est reste allumées.
Si la valeur boolean est false les leds s’éteignent est reste éteintes.
On enregistre la valeur du bouton qui nous servira au début de la boucle.
Code commenté avec la boucle for(): for_example
Code commenté avec la boucle for() + la valeur boolean: for_boolean_example