← Retour au chapitre

Étape 3 / 3

Exo 5 : Knight Rider Pro — Arrays

Stocker les pins dans un tableau pour un code propre et un effet K2000.

Chapitres précédents non terminés
Pour un apprentissage optimal, termine d'abord : Arduino : Hello World !

L'effet Knight Rider (K2000)

Knight Rider (« K2000 » en France) est une série TV des années 80 avec une voiture intelligente nommée KITT. Sa signature visuelle : une barre de LEDs rouges qui balaye de gauche à droite, puis de droite à gauche, en continu — un aller-retour hypnotique.

C'est exactement ce qu'on va programmer avec ton montage de 6 LEDs ! On réutilise le même circuit que l'exercice précédent (chenillard).

Effet K2000 : la LED active balaye de gauche à droite, puis revient.

Astuce utile : sizeof

Plutôt que d'écrire 6 en dur, on peut calculer le nombre d'éléments automatiquement :

int nbLeds = sizeof(leds) / sizeof(leds[0]);
// sizeof(leds) = taille totale en octets (6 × 2 = 12)
// sizeof(leds[0]) = taille d'un int (2 octets sur Arduino)
// Résultat : 12 / 2 = 6

Avantage : si tu ajoutes une LED au tableau, la boucle s'adapte sans rien changer d'autre.

Comment programmer l'aller-retour ?

Le chenillard de l'exercice précédent va uniquement de gauche à droite : la boucle va de i = 0 jusqu'à i = 5. Pour l'effet K2000, il faut deux étapes :

1. Aller →

Boucle montante : i va de 0 à nbLeds - 1. On allume chaque LED puis on l'éteint.

LED 0 → 1 → 2 → 3 → 4 → 5

2. Retour ←

Boucle descendante : i redescend. Mais attention : on ne veut pas répéter les LEDs des extrémités (sinon elles clignotent deux fois).

LED 4 → 3 → 2 → 1 (pas 5, pas 0)

Question clé : dans la boucle retour, pourquoi commencer à nbLeds - 2 et s'arrêter à 1 (et pas nbLeds - 1 et 0) ? Parce que ces deux LEDs sont déjà allumées par la boucle aller !

Défi : écris la boucle retour

Tu as la boucle aller. Écris la condition de la boucle retour pour compléter l'effet K2000 :

// Aller : gauche → droite (déjà fait)
for (int i = 0; i < nbLeds; i++) {
  digitalWrite(leds[i], HIGH);
  delay(100);
  digitalWrite(leds[i], LOW);
}

// Retour : droite → gauche
for (int ) {
  digitalWrite(leds[i], HIGH);
  delay(100);
  digitalWrite(leds[i], LOW);
}

Bonus : inverse le sens du chenillard

Sans toucher au code de la boucle, modifie le tableau pour que le chenillard commence par la LED de droite (pin 7). Et comment décrémenter le compteur ?

int leds[] = ;

// Boucle à l'envers
for (int i = 5; i >= 0; ) {
  digitalWrite(leds[i], HIGH);
}

Synthèse du chapitre

La boucle for répète un bloc de code un nombre défini de fois.

Un tableau stocke plusieurs valeurs accessibles par index (commence à 0).

sizeof calcule la taille d'un tableau — plus besoin de compter à la main.

L'effet Knight Rider combine une boucle montante et une boucle descendante en évitant les doublons aux extrémités.

Récapitulatif du chapitre 6

  • La boucle for répète un bloc de code un nombre défini de fois (init, condition, incrément).
  • Un tableau (array) stocke plusieurs valeurs dans une seule variable, accessibles par index.
  • sizeof permet de calculer automatiquement le nombre d'éléments d'un tableau.
  • Le chenillard et l'effet Knight Rider combinent boucles et tableaux.

Tu maîtrises maintenant les bases de la programmation Arduino : variables, fonctions, boucles et tableaux. Prêt pour des projets plus ambitieux !

Valide cette étape quand tu as terminé la lecture et la manipulation.

← Exo 4 : Chenillard 6 LEDs Aller au quiz du chapitre →

Electro-Lab - support pédagogique Arduino (MVP).

IFOSUP Wavre - Cours Drones et Robotique.