Chenillard de LEDs (K2000)
Cinq LEDs alignées, une lumière qui va et vient comme la voiture K2000 ou la lampe de Cylon. Tu apprends les boucles `for`.
SunuMake Découverte
Tes premiers pas avec Arduino — 8 composants inclus.
Les étapes
- 1
Matériel
5 LEDs (peu importe la couleur, mais préfère 5 LEDs identiques), 5 résistances 220 Ω, 6 fils.
- 2
Aligne les LEDs
Plante les 5 LEDs côte à côte sur la breadboard, toutes dans le même sens (patte longue vers le haut). Chaque patte courte va au rail bleu via une résistance 220 Ω. Les pattes longues vont sur les broches 2, 3, 4, 5 et 6 de l'Arduino.
- 3
Relie GND
Un fil entre le rail bleu et la broche GND.
- 4
Téléverse et regarde
Téléverse. Une lumière parcourt les 5 LEDs de gauche à droite, puis revient de droite à gauche, en boucle. C'est l'effet « K2000 ».
- 5
Joue avec la vitesse
Change la valeur de `VITESSE` (en millisecondes) au début du code pour aller plus vite ou plus lentement. Avec 50 ms, ça devient hypnotique.
Le programme à téléverser
Copie ce code dans l'IDE Arduino, branche ta carte en USB et clique sur le bouton « Téléverser » (la flèche en haut à gauche).
// Chenillard K2000 — 5 LEDs sur les broches 2 à 6const int LEDS[] = {2, 3, 4, 5, 6};const int N = 5;const int VITESSE = 120; // ms entre chaque LEDvoid setup() { for (int i = 0; i < N; i++) { pinMode(LEDS[i], OUTPUT); }}void loop() { // Aller : de gauche à droite for (int i = 0; i < N; i++) { digitalWrite(LEDS[i], HIGH); delay(VITESSE); digitalWrite(LEDS[i], LOW); } // Retour : de droite à gauche (sauf les extrémités déjà faites) for (int i = N - 2; i > 0; i--) { digitalWrite(LEDS[i], HIGH); delay(VITESSE); digitalWrite(LEDS[i], LOW); }}Comment ça marche ?
Un tableau (int LEDS[] = {2, 3, 4, 5, 6}) regroupe plusieurs valeurs sous un seul nom. On accède à chaque LED avec un index : LEDS[0] = la première, LEDS[1] = la deuxième, etc. (oui, on commence à compter à zéro en programmation — habitude à prendre).
La boucle for est l'outil qui répète une action plusieurs fois sans écrire 5 lignes identiques. for (int i = 0; i < 5; i++) se lit : « commence avec i=0, tant que i < 5, fais le bloc, puis ajoute 1 à i ». Sans cette boucle, il faudrait écrire 5 digitalWrite() à la suite — beaucoup moins élégant.
L'effet « va-et-vient » se fait avec deux boucles : la première va de 0 à 4 (gauche → droite), la seconde de 3 à 1 (droite → gauche, en sautant les extrémités déjà allumées au passage précédent). C'est la même technique qui anime les pixels d'un écran ou les frames d'un film.