Les rubans de LED sont constitués d’une succession de LED RGB adressables, c’est à dire que l’on peut définir la luminosité et la couleur de chaque LED indépendamment. Il existe plusieurs modèles de ruban : couleurs unique, non-adressable, 5 ou 12V, etc. Faites attention au modèle que vous voulez utiliser.
Matériel
- Ordinateur
- Arduino UNO
- Câble USB A Mâle/B Mâle
- Ruban de LED WS2812b
Schéma

Le ruban de LED utilise une broche PWM du microcontrôleur pour déterminer la couleur, l’intensité et la LED à allumer. Veillez à utiliser une alimentation externe pour alimenter les LED. En effet, un ruban de LED peut être très gourmand en courant surtout si il est long et si plusieurs ruban sont alimentés en série. Pour un ruban de LED WS2812B, il faut compter 50mA par LED soit 2.5A pour 50 LED. Vérifiez bien le nombre et le type de LED que vous souhaitez éclairer afin de choisir au mieux la source de tension.
Code
Plusieurs librairies peuvent être utilisées selon la marque du ruban de LED comme Adafruit_NeoPixel ou PololuLedStrip. Dans ce tutoriel nous utilisons la librairie FastLED.h. Pour initialiser la librairie, il vous faut préciser le type et le nombre de LED utilisées ainsi que l’ordre des couleurs (Rouge,Vert,Bleu) qui peuvent être différents selon les modèles de ruban.
Une fois l’objet initialisé, il est possible d’accéder à chaque LED via le tableau led. Il est possible de définir la couleur et l’intensité lumineuse de la LED i à l’aide la fonction led[i].setRGB() puis en validant avec la fonction FastLED.show().
//Libraries #include <FastLED.h>//https://github.com/FastLED/FastLED //Constants #define NUM_STRIPS 1 #define NUM_LEDS 60 #define BRIGHTNESS 10 #define LED_TYPE WS2812B #define COLOR_ORDER BRG//RGB #define FASTLED_ALLOW_INTERRUPTS 0 #define FASTLED_INTERRUPT_RETRY_COUNT 1 #define FRAMES_PER_SECOND 60 #define COOLING 55 #define SPARKING 120 //Parameters const int stripPin = 3; //Variables bool gReverseDirection = false; //Objects CRGB leds[NUM_LEDS]; void setup() { //Init Serial USB Serial.begin(9600); Serial.println(F("Initialize System")); //Init led strips FastLED.addLeds<LED_TYPE, stripPin, COLOR_ORDER>(leds, NUM_LEDS); FastLED.setBrightness( BRIGHTNESS ); } void loop() { ledScenario(); } void ledScenario(void ) { /* function ledScenario */ ////LEDS Strip scenario for (int i = 0; i < NUM_LEDS; i++) { //leds[i] = CRGB::Goldenrod; leds[i].setRGB(255, 0, 255); leds[i + 3].setRGB(255, 0, 255); FastLED.show(); delay(100); leds[i] = CRGB::Black; FastLED.show(); delay(100); } }
Applications
- Créer une ambiance lumineuse dans votre appartement
- Créer une lampe qui change de lumière en fonction de la musique
Sources
- Modifiez la couleur d’une LED RGB
- https://github.com/adafruit/Adafruit_NeoPixel
- https://github.com/pololu/pololu-led-strip-arduino
- https://github.com/FastLED/FastLED
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie
Bonjour, je cherche à faire un logo animé (changement de couleur style chenillard) avec environ 50 chips led WS2812E.
Par exemple, les 25 premiers chips en dégradé de rouge à orange, les 25 suivants en dégradé du bleu au vert; l’ensemble rouge orange tournant en chenillard, ne se mélangeant pas avec les bleu vert.
Merci de me faire un tuto, même succinct, de cette idée lumineuse.
« Pourriez-vous m’aider à réaliser cette animation lumineuse ? » ou encore « N’ayant pas les compétences pour réaliser une telle animation, pourriez-vous me guider dans une telle réalisation s’il)-vous-plait ? »
Jsais pas, mettez un minimum les formes, si vous ne voulez pas faire l’effort de chercher vous même sur les internets… C’est déjà sympa de proposer ce genre d’articles, boutique ou pas…
Bonjour, je cherche à relier un détecteur sonore à un ruban LED connecté pour pouoir associer chaque son à une couleur afin d’aider une personne malentedante ( par exemple : couleur jaune = reveil, rouge = alarme incendie, bleu= sonnerie porte; violet = bip micro-onde ou four…)
Je ne sais pas comment m’y prendre.
Merci de me répondre.
Bonjour,
l’Arduino ne peut détecter que des niveaux sonore.
Si les niveaux ne sont pas assez distincts, je pense qu’il faut une analyse du son plus poussée.
Avec un Raspberry Pi par exemple ou un ESP32
Sinon il faut brancher physiquement les appareils au microcontrôleur
Bonjour,
Sur des leds adressables, l’alimentation est externe et l’on commande la couleur avec Arduino ?
Mais est-ce que les leds restent toujours sous tension et l’on éteint éclair via la commande Arduino ?
Bonjour, s’il n’y a pas de gestion de l’alimentation. les leds restent sous tension mais éteintes.
Bonjour je cherche à modifier la luminausité d’une bande led WS2812. Je veux utiliser l’exemple PRIDE qui est disponible dans la librairie FastLed.
Quand je modifie bêtement BRITHGNESS, rien ne fonctionne
comment modifiez-vous brightness? rien ne fonctionne veut dire que le code ne fonctionne plus?