#5Intermédiaire

Marcher à l'aide d'une longeur d'onde

4.6(83)
185 terminé
Marcher à l'aide d'une longeur d'onde
Projet qui crée un effet de lumière de marche en allumant 6 LED en séquence. Il enseigne l'utilisation d'un tableau et d'un contrôle à broches multiples avec une boucle for.

Vidéo

Schéma du circuit

Marcher à l'aide d'une longeur d'onde - Circuit

Code source

Arduino (C++)
1int ledPins[] = {2, 3, 4, 5, 6, 7};
2
3void setup() {
4  for(int i = 0; i < 6; i++) {
5    pinMode(ledPins[i], OUTPUT); 
6  }
7}
8
9void loop() {
10  for(int i = 0; i < 6; i++) {
11    digitalWrite(ledPins[i], HIGH);
12    delay(150);
13    digitalWrite(ledPins[i], LOW);  
14  }
15}

FAQ

Pourquoi est-il préférable d'utiliser un tableau (array) ?▾

En stockant les numéros de broches dans un tableau, tu peux parcourir toutes les LED sur une seule ligne à l'aide d'une boucle « for ». Pour modifier le nombre de LED, il te suffit de mettre à jour le tableau ; tu n'as pas besoin d'écrire une ligne distincte pour chaque LED.

Si les 6 LED s'allument en même temps, cela risque-t-il d'endommager l'Arduino ?▾

Avec une résistance de 330 Ω, chaque LED consomme environ 9 à 10 mA ; les 6 LED représentent au total environ 60 mA, ce qui reste dans les limites de sécurité de l'Uno. La limite maximale recommandée pour une broche est de 20 mA, tandis que le courant d'E/S total de la carte est de 200 mA.

Comment inverser le sens de marche ?▾

Définis la boucle « for » de la fin vers le début : for (int i = 5 ; i >= 0 ; i--). Ainsi, la lumière se déplace dans le sens inverse. Si tu enchaînes les deux boucles, tu obtiendras un effet « éclair noir ».

L'une des LED ne s'allume pas, quelle pourrait en être la cause ?▾

Soit cette LED est montée à l'envers, soit sa patte n'est pas bien enfoncée dans la plaque d'essai, soit la résistance se trouve sur une autre rangée. Tu peux déterminer s'il s'agit d'une LED défectueuse ou d'un problème de connexion en la remplaçant par une LED qui fonctionne.

Marcher à l'aide d'une longeur d'onde | BlueGrays