Qu'est-ce qu'un bandeau de LED ? Comment le choisir ? Comment le contrôler ?

Introduction

Les bandeaux de LED aussi appelés ruban de LED, sont une suite de LED contrôlables depuis une carte Arduino.  

Celle-ci va vous permettre de contrôler votre ruban depuis une télécommande, un téléphone ou bien de façon automatique.

Si votre bandeau fait moins d’une dizaine de LED, vous pouvez le brancher directement sur la carte Arduino. 

Néanmoins un bandeau de LED possède souvent beaucoup de LED, vous allez donc avoir besoin d’une alimentation externe pour faire fonctionner votre ruban car la carte Arduino ne peut pas fournir la puissance nécessaire. 

Pour contrôler votre ruban et le connecter à votre alimentation externe vous pouvez utiliser l’un de ces deux composants : le relais ou le transistor

Quelle est la différence entre un relais et un transistor ?

Ces deux composants permettent de faire la liaison entre la carte Arduino et votre ruban de LED. Néanmoins le relais ne permet pas de faire varier l’intensité lumineuse de vos LED, contrairement au transistor.  De plus vous ne pourrez pas changer de couleur vos LED avec un relais, mais ceci est possible avec un transistor.

Broche du bandeau de LED

Le bandeau de LED possède trois broches : 

Vcc : à connecter au 5V de la carte Arduino ou au transistor/relay. 

GND : à connecter à la masse de la carte Arduino ou au transistor/relay. 

DIN (Signal) : à connecter à la carte Arduino ou au transistor/ relay 

Les différents rubans de LED

Deux types de rubans LED existent : les adressables, où chaque LED peut prendre une couleur différente, et les non adressables, où toutes les LED affichent la même couleur.

On va maintenant voir quels sont les différents rubans de LED afin que vous puissiez faire votre choix :

C’est sous forme de ruban de LED que l’on retourne le plus souvent les LED. Ici pour les contrôler vous aurez besoin d’une alimentation externe au vu du nombre de LED.

Ce cercle de led, proposé par Neopixel, est composé de 16 LED adressables et mesure 12 x 8 x 0.3 centimètres. Il peut-être alimenté en 5V et ne nécessite pas d’alimentation externe.

Ce rond de led, aussi proposé par Neopixel, possède 7 LED. Il a une dimension de 12 x 8 x 0.3 centimètres.

On va maintenant voir comment contrôler ces LED avec les librairies.

Librairie Neopixel

Plusieurs librairies peuvent être utilisées  pour programmer votre ruban de LED. On peut notamment citer Adafruit_NeoPixel, PololuLedStrip ou FastLED.h

Dans notre cours nous allons utiliser la librairie Neopixel. Celle-ci va vous permettre de programmer la plus part des rubans de LED.

Comment installer la librairie ?

Pour pouvoir contrôler votre ruban de LED, il va vous falloir installer la librairie sur arduino ide.

 Pour cela vous devez aller dans “sketch” puis “include library” et “manage library” et taper Adafruit Neopixel  :

Si vous avez du mal à l’installer, on vous conseille notre cours sur les librairies.

Comment utiliser la librairie Adafruit Neopixel ?

On va voir quelques fonctions de la librairie qui pourraient vous être utiles.

Voici comment importer la librairie Neopixel dans votre programme :

#include <Adafruit_NeoPixel.h> // Librairie utilisée

Voici comment configurer la librairie. Vous mettez en paramètre la broche où le bandeau de LED est branché et le nombre de LED de votre bandeau :

int broche = 2; // Broche du bandeau de led
int nombre_de_led = 4; //nombre de led contenant le ruban
// On déclare la librairie avec les données précédente
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(nombre_de_led,broche, NEO_GRB + NEO_KHZ800); 

Permet de commencer à utiliser la librairie :

pixels.begin(); //On initialise la librairie

Permet d’éteindre les leds :

 pixels.clear(); //On éteint les leds allumées

Permet d’associer une couleur à une LED du bandeau. Ici on met la couleur Bleu à la led 1 :

pixels.setPixelColor(1, pixels.Color(0,0,255)); // On assigne la couleur bleu à la led

Pour la couleur verte vous devez écrire : (0,255,0)

Pour la couleur rouge, vous devez écrire : (255,0,0)

Voici le code pour allumer votre led  :

pixels.show(); //On allume la led avec la couleur

Bandeau de led sans alimentation externe

On va maintenant voir comment allumer des LED sur un petit bandeau de LED. Celui-ci ne nécessite donc pas d’alimentation externe. Voici le circuit :

Dans notre programme, on allume les LED en bleu avec un intervalle de 0.2 seconde :

#include <Adafruit_NeoPixel.h> // Librairie utilisée
int PIN = 2; // Broche du bandeau de led
int numPixel = 4; //nombre de led contenant le ruban
// On déclare la librairie avec les données précédente
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(numPixel,PIN, NEO_GRB + NEO_KHZ800); 
void setup() {
	pixels.begin(); //On initialise la librairie
}

void loop(){
  pixels.clear(); //On éteint les leds allumé
  for(int i=0; i<numPixel; i++){ // On parcour toute les leds
    pixels.setPixelColor(i, pixels.Color(0,0,255)); // On assigne la couleur bleu à la led
    pixels.show(); //On allume la led avec la couleur
    delay(200); // On fait une pause de 0.2 seconde avant d'allumer l'autre led.
  }
      }

Voici le résultat une fois le projet terminé :

Bandeau de LED avec alimentation externe

SI vous avez besoin d’alimenter un bandeau contenant beaucoup de LED, vous allez avoir besoin d’une alimentation externe. Pour cela on vous conseille l’utilisation d’un transistor pour faire le lien entre la carte Arduino et votre bandeau.

Voici un exemple de circuit pour faire fonctionner votre bandeau de LED :

Le programme est exactement le même que pour contrôler un bandeau de LED sans alimentation.

Cercle de LED

On va maintenant voir comment faire fonctionner le cercle de LED. Ici vous n’aurez pas besoin d’alimentation externe au vue du nombre de LED. De plus le cercle de LRD s’alimente en 5V.

Voici le circuit :

Ici le programme créer une couleur aléatoire et allume les LED progressivement 

#include <Adafruit_NeoPixel.h> // La librairie Neopixel

#define PIN 2          // La broche ou l'on a branché le cercle de led
#define NUMPIXELS	12 // Le nombre de led contenu dans le cercle
// On utilise la librairie avec le modèle du cercle de led
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int rouge_couleur = 0; // On initialise la couleur rouge     
int vert_couleur = 0;// On initialise la couleur verte  
int bleu_couleur = 0;// On initialise la couleur bleu  
long nombre_aleatoire; // On initialise une nombre aléatoire

void setup() {
 pixels.begin(); // On initialise les leds
 pixels.show(); // On allume les leds
 randomSeed(analogRead(0)); //nombre aléatoire permettant de changer de couleur
 delay(100); // On fait une pause d'un dixième de seconde
}

void loop() {
 randomSeed(analogRead(0)); // changement de nombre aléatoire permettant de changer de couleur
 Couleur(); // Appel de la fonction Couleur
  
for(int i=0;i<NUMPIXELS;i++){ // On fait une boucle for pour toute les leds
pixels.setPixelColor(i, pixels.Color(rouge_couleur, vert_couleur, bleu_couleur)); // On associe la couleur au pixel
pixels.show(); // On affiche le pixel
  
delay(100); //on fait une pause d'un dixième de seconde entre deux allumages de led
if (i == 0){// si la boucle débute, on éteint les leds et on prends un nouveau nombre aléatoire
  pixels.clear(); // On eteint les leds
  nombre_aleatoire = random(256);
  delay (100);
}
}
}

void Couleur(){// Fonction couleur
rouge_couleur = random(0, 255); // couleur aléatoire autour du rouge
vert_couleur = random(0,255); // couleur aléatoire autour du vert
bleu_couleur = random(0, 255); // couleur aléatoire autour du bleu
}

Voici le résultat quand on met le projet sous tension :