Code de recherche

Leçon 98-7 : Marche lumineuse avec Arduino et 5 LED

Leçon 98-7 : Marche lumineuse avec Arduino et 5 LED

Une lumière courante (aussi appelée lumière « chasing » ou « Knight Rider ») est l'un des projets Arduino classiques pour débutants — et pour une bonne raison. Elle vous apprend à contrôler plusieurs sorties en séquence, à chronométrer des événements et à réfléchir aux résistances de limitation de courant, tout en produisant quelque chose de visuellement satisfaisant. Dans ce projet, vous câblerez cinq LED à un Arduino et les programmerez pour que chacune s'allume à tour de rôle, créant l'illusion d'une seule lumière qui « marche » le long de la rangée.

5 leds on breadboard with resistor shown connected to Arduino UNO
5 leds on breadboard with resistor shown connected to Arduino UNO

Une fois que vous comprenez le motif, vous pouvez le réutiliser dans un nombre surprenant de réalisations concrètes :

  • Éclairage décoratif : une bordure courante pour une étagère, un cadre photo ou une maquette.
  • Indicateurs de direction : un effet de clignotant séquentiel pour un véhicule factice ou un vélo électrique.
  • Affichage de progression ou d'état : une rangée de LED qui avance à mesure qu'un processus se termine.
  • Accessoires de jeu et de tableau de score : une « cible mobile » ou un indicateur de niveau.
  • Outil pédagogique : la démonstration la plus claire possible des sorties numériques et de la synchronisation.

Le même câblage à cinq LED est réutilisé dans plusieurs autres projets de ce cours, donc le matériel que vous construisez ici devient une plateforme réutilisable.

Comment fonctionne la lumière courante

Le principe est exactement le même que pour allumer une seule LED — il est simplement répété cinq fois (dans la vidéo à 30:47). Chaque LED est connectée à sa propre broche Arduino via sa propre résistance de limitation de courant, et toutes les résistances partagent un rail de masse commun. Le croquis met ensuite une broche à HIGH, attend, la met à LOW, attend, et passe à la broche suivante. Comme une seule LED est allumée à la fois, l'œil perçoit la séquence comme un mouvement.

Les deux valeurs de temporisation sont ce qui donne son caractère à l'effet. Le temps allumé contrôle la durée pendant laquelle chaque LED reste allumée, et le temps éteint contrôle l'intervalle avant que la LED suivante ne s'allume. Un temps allumé court avec un temps éteint long produit un point unique qui se déplace rapidement ; un temps allumé long avec un temps éteint court produit un balayage plus fluide et plus continu (dans la vidéo à 35:00).

Matériel et composants

  • 1 × carte Arduino (Uno, Nano ou similaire)
  • 5 × LED (n'importe quelle couleur ; mélanger les couleurs rend l'effet plus facile à lire)
  • 5 × résistances — 300 Ω à 1 kΩ fonctionnent bien
  • 1 × plaque de prototypage
  • Fils de liaison
  • Câble USB ou pack de batteries pour l'alimentation

Si vous souhaitez ajouter plus tard une variante avec bouton-poussoir, vous aurez également besoin d'un bouton-poussoir momentané et de deux fils de liaison supplémentaires.

Choisir la valeur de la résistance

Une LED a une tension directe d'environ 2 V et souhaite environ 10 mA pour une luminosité maximale (dans la vidéo à 03:49). Avec une alimentation de 5 V, la résistance doit chuter les 3 V restants. En appliquant la loi d'Ohm, R = V / I = 3 V / 0,01 A = 300 Ω. En pratique, tout ce qui va de 300 Ω jusqu'à environ 1 kΩ fonctionnera — plus la résistance est élevée, plus la LED est faible, mais plus le circuit est sûr et efficace (dans la vidéo à 05:33).

Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button

Guide de câblage

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino

Insérez les cinq LED dans la plaque de prototypage avec leurs anodes (la patte la plus longue) orientées dans la même direction. Connectez chaque cathode (la patte la plus courte, à face plate) à sa propre résistance, et reliez l'extrémité libre des cinq résistances à un rail de masse commun. Ensuite, reliez chaque anode à une broche Arduino avec un fil de liaison.

Dans cette réalisation, les LED sont assignées aux broches 3, 4, 5, 6 et 7 (dans la vidéo à 31:29). Les numéros de broche sont définis en haut du croquis, donc si vous préférez une autre disposition, vous n'avez qu'à modifier ces cinq lignes.

Explication du code

Le croquis est délibérément simple afin qu'un débutant puisse suivre chaque ligne. Seul le bloc tout en haut doit être modifié pour votre propre configuration.

const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30;  // the time each LED waits in the OFF state
int onTime = 100;  // the time each LED is ON

Définitions des broches. Les cinq lignes const int associent chaque LED à une broche Arduino physique. Comme elles sont déclarées const, les valeurs ne peuvent pas être modifiées plus tard dans le programme — c'est une habitude de sécurité qui évite toute réaffectation accidentelle. Si vous câblez vos LED sur des broches différentes, modifiez les numéros ici et rien d'autre.

onTime et offTime. Ces deux entiers sont les seules variables de « comportement » du projet, et ce sont celles avec lesquelles vous voudrez expérimenter :

  • onTime — combien de temps (en millisecondes) chaque LED reste allumée. Des valeurs plus grandes rendent chaque étape plus lente et plus délibérée.
  • offTime — la pause après qu'une LED s'éteint avant que la suivante ne s'allume. Des valeurs plus petites font que la lumière se déplace plus rapidement.

Essayez onTime = 200 et offTime = 200 pour une chenillard régulier à vitesse moyenne, ou onTime = 30 et offTime = 30 pour un effet très rapide, presque flou (dans la vidéo à 36:06).

La fonction setup() s'exécute une fois et configure simplement les cinq broches en mode OUTPUT. La fonction loop() répète ensuite le même schéma en quatre étapes pour chaque LED : mettre la broche à HIGH, attendre onTime, la mettre à LOW, attendre offTime. Lorsque la cinquième LED termine, la boucle redémarre depuis la première, produisant un défilement sans fin.

Projet en direct et démonstration

Avec les valeurs par défaut, les LED défilent le long de la rangée à un rythme détendu. Téléverser le sketch avec onTime et offTime réglés à 200 ms donne une marche régulière et uniforme ; les réduire tous les deux à 30 ms fait que la lumière traverse la rangée presque trop vite pour être suivie (dans la vidéo à 36:21).

Deux expériences utiles à essayer une fois que cela fonctionne :

  • Rendre le temps d'allumage plus court que le temps d'extinction pour créer un point voyageur distinct.
  • Rendre le temps d'allumage plus long que le temps d'extinction pour créer une lueur douce et superposée.

Le même câblage à cinq LED est réutilisé dans le projet suivant, où un bouton-poussoir fait avancer la lumière d'un pas à la fois. Cette réalisation est couverte dans Leçon 98-8 : Chenillard avec bouton-poussoir et LED avec Arduino.

Si vous préférez piloter la rangée à partir d'une entrée analogique plutôt que d'un bouton, consultez Leçon 98-9 : Voltmètre à niveau de tension à LED utilisant Arduino ou chenillard avec potentiomètre.

Pour aller plus loin

Une fois le chenillard de base fonctionnel, une prochaine étape naturelle consiste à faire rebondir la lumière d'un bout à l'autre au lieu de sauter de la dernière LED à la première. C'est un pur exercice de code — aucun matériel supplémentaire — et c'est un bon moyen de s'exercer avec les boucles et les tableaux. Vous pouvez également combiner ce projet avec la version à bouton-poussoir pour construire un affichage avancé manuellement.

Projets associés de cette vidéo

Chapitres

  • [00:00] Aperçu des dix projets à LED
  • [01:22] Introduction au cours Arduino étape par étape
  • [02:29] Ce qu'est une LED et comment identifier ses broches
  • [03:49] Calcul de la résistance de limitation de courant
  • [30:47] Présentation du projet de chenillard
  • [31:06] Schéma de câblage pour cinq LED
  • [32:52] Explication du code du chenillard
  • [34:39] Démonstration et modification des valeurs de temporisation
  • [36:41] Faire avancer la lumière avec un bouton-poussoir (tutoriel séparé)
  • [42:25] Barre de tension à LED avec potentiomètre (tutoriel séparé)
  • [49:25] Feu de circulation Arduino (tutoriel séparé)

Images

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
5 leds sur plaque de prototypage avec résistance connectée à Arduino UNO
5 leds sur plaque de prototypage avec résistance connectée à Arduino UNO
939-Lessson 98-LED-7: Arduino code walking LED light
Langue: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Fichiers📁

Bibliothèques Arduino (zip)

Manuel de l'Utilisateur