Tous les éléments pour concevoir une animation lumineuse avec des rubans de LED WS2812 et une carte Arduino. La commande pourra se faire à l’aide de boutons à levier ou en digital (DCC).
L’animation lumineuse a été conçue pour éclairer des bâtiments et créer des ambiances :
- Eclairage des pièces d’une maison de manière aléatoire avec des couleurs différentes (blanc chaud, blanc naturel, blanc froid, …) ;
- Effet télévision dans une pièce ;
- Effet feu pour une ambiance de cheminée ou feu de bois ;
- Effet arc électrique pour simuler de la soudure dans un atelier.
Sommaire
- Le principe des LED WS2812
- Présentation du programme d’animation lumineuse avec un Arduino
- Simulateur en ligne avec Wokwi
- Commande et paramétrage
- Fichiers Source
Le principe des LED WS2812
Les LED WS2812, souvent appelées LED adressables, sont des diodes électroluminescentes intégrant directement un circuit de contrôle. Chaque LED est composée d’une LED RVB (Rouge, Vert, Bleu) – ou plutôt de 3 leds de couleur différentes intégrées dans un même boîtier – et d’un microcontrôleur intégré. Ce microcontrôleur permet de définir individuellement la couleur et l’intensité lumineuse de chaque LED RVB à l’aide d’un simple signal numérique.

Assemblée dans un ruban, le principe repose sur une communication en série : les LED sont reliées les unes aux autres en cascade, et un seul fil de données suffit pour piloter une chaîne complète. La carte Arduino envoie une suite d’impulsions codées correspondant aux valeurs de rouge, vert et bleu pour chaque LED. La première LED reçoit le signal, garde pour elle les données qui la concernent, puis transmet le reste à la LED suivante, et ainsi de suite.
Tension d’alimentation
Les LED WS2812 fonctionnent avec une tension d’alimentation de 5 volts. Il est important de respecter cette valeur, car une surtension peut endommager les LED, tandis qu’une tension trop basse peut provoquer des couleurs incorrectes ou un fonctionnement instable.
Le courant consommé dépend directement du nombre de LED et de la couleur affichée. En pleine intensité (blanc à 100 %, soit rouge + vert + bleu à 100%), chaque LED peut consommer jusqu’à environ 60 milliampères. Il faut donc prévoir une alimentation adaptée au nombre total de LED utilisées.
Les couleurs
Chaque LED peut ainsi afficher plus de 16 millions de couleurs grâce à la combinaison des trois canaux RVB codés sur 8 bits (256 valeurs). L’ensemble permet de créer facilement des animations lumineuses complexes comme des effets de clignotement, de dégradés ou de déplacements lumineux.
Quelques exemples de valeurs RVB pour des couleurs principales (valeurs RVB de 0 à 255).
On rencontre également des références RGB, pour en anglais, Red, Green et Blue.
| Couleur | R (rouge) ou R (red) | V (vert) ou G (green) | B (bleu) ou B (blue) |
|---|---|---|---|
| Blanc | 255 | 255 | 255 |
| Rouge | 255 | 0 | 0 |
| Vert | 0 | 255 | 0 |
| Bleu | 0 | 0 | 255 |
| Jaune | 255 | 255 | 0 |
| Ambre orange chaud | 255 | 100 | 0 |
| Violet | 128 | 0 | 128 |
Présentation du programme d’animation lumineuse avec un Arduino
Aucune connaissance en programmation des cartes Arduino n’est requise !
Fonctions
Le programme permet un fonctionnement en analogique et digital (DCC).
En analogique, on peut :
- Allumer toutes les LED des 2 rubans ;
- Commander les LED de chaque ruban de manière aléatoire ;
- Commander une animation lumineuse sur le ruban N°1 : effet télévision, effet Soudure, effet feu pour toutes les mêmes LED, effet feu pour différentes LED du ruban N°1;
- Commander la LED N°1 du ruban N°1 ;
- Commander la LED N°2 du ruban N°1.
En digital, on dispose des mêmes fonctions et on peut commander individuellement chaque LED qui dispose d’une propre adresse DCC configurable.
Configuration
Aucune connaissance n’est nécessaire en programmation des cartes Arduino : il suffit de savoir téléverser un programme dans une carte Arduino UNO ou NANO.
Dans l’onglet « configuration.h« , on pourra choisir l’effet lumineux en notant le numéro correspondant avant de téléverser le programme (cf. ligne 12 du fichier « configuration.h ») :
- Effet TV (par défaut)
- Effet Soudure Effet 1
- Effet Soudure Effet 2
- Effet Feu pour toutes les mêmes LED
- Effet Feu pour différentes LED du bandeau
Le programme Arduino a été conçu afin de le paramétrer via le moniteur série. Le projet Arduino comprend plusieurs fichiers afin de faciliter la lecture ou l’écriture du programme.
Les données de configuration sont enregistrées dans la mémoire Eeprom de la carte. Pour cela, une interface graphique a été réalisée avec le logiciel gratuit Processing pour faciliter la saisie des paramètres. Tout est proposé en téléchargement gratuit et modifiable si on souhaite l’adapter.
Le paramétrage permet d’enregistrer dans la mémoire Eeprom de la carte :
- le nombre de LED pour chaque ruban ;
- les couleurs RVB de chaque LED (jusqu’à 30 LED) ;
- les adresses DCC de chaque LED ;
- l’adresse DCC pour gérer l’intensité lumineuse ;
- l’adresse DCC pour la commande On/Off de toutes les LED ;
- la temporisation minimale et maximale pour la commande aléatoire de la gestion des rubans N°1 et N°2 (entre 1 et 255 secondes) ;
- l’adresse DCC pour la gestion aléatoire des rubans N°1 et N°2 ;
- l’adresse DCC pour la gestion de l’animation lumineuse (effet TV ou soudure ou …) ;
- le nombre de LED de l’animation lumineuse pour le ruban N°1.
Conception
Aucune connaissance n’est nécessaire en électronique : le montage du circuit est assez simple : chaque ruban comprend 3 fils à relier au +5 Volts de la carte Arduino, à la masse (GND) et à une borne de la carte (3 ou 5 pour le programme proposé).
Si on souhaite une commande en digital, il faut ajouter quelques composants pour décoder le signal DCC. La carte de commande des servomoteurs ou lecteur MP3 est parfaitement adaptée. Cette carte a été conçue par la section Modélisme de l’UAICF Nevers-Vauzelles.
Platine circuit PCB pour commander en analogique ou DCC des servomoteurs ou un lecteur MP3 ou bandeau de LED WS2812
Les rubans de LED WS2812 sont à relier aux bornes 3 et 5 nommées ‘SERVO1‘ et ‘SERVO3‘ sur la carte.
Simulateur en ligne avec Wokwi
Wokwi est une plateforme en ligne qui permet de simuler des circuits électroniques, notamment avec des microcontrôleurs comme Arduino, ESP32 ou Raspberry Pi Pico, directement dans le navigateur.
Pour simuler le fonctionnement du programme, la configuration retenue est de 2 rubans avec 4 et 2 LED WS2812. Des couleurs primaires ont été configurées pour la démonstration pour visualiser les contrastes de couleur. Il ne sera pas possible de piloter la carte en DCC avec le simulateur en ligne.
On peut réaliser les tests de fonctionnement en ligne depuis le navigateur Internet à l’aide des boutons à levier. Les durées de temporisation sont assez courtes pour visualiser rapidement les fonctions.
Commande et paramétrage
La commande et le paramétrage de la carte Arduino peuvent se faire via le Moniteur Série ou à l’aide de l’application développée avec le logiciel gratuit Processing.
L’application est proposée en téléchargement avec un fichier exécutable qui ne nécessite pas une installation préalable.
Principe
Les données chiffrées sont à valider avec les bouton « >>> » dédié.
Une mire permet de se projeter pour la couleur de chaque LED RGB en modifiant les 3 valeurs.
En l’absence d’une carte Arduino connectée, il suffit d’appuyer sur la touche « C » pour visualiser l’interface du programme.

Fichiers source
Le fichier ZIP comprend les fichiers source du programme Arduino et le programme exécutable sous Windows sans installation pour paramétrer la carte Arduino.
Les fichiers sont disponibles pour fonctionner sous Windows, Macintosh, Linux et Raspberry.

