LED RGB
Les LED RGB (Red – Green – Blue) sont des LED polychromatiques : elles permettent de proposer une vaste gamme de couleurs.
On les nomme RGB car elles disposent de 3 connecteurs (en plus de la masse), un pour chaque couleur primaire : le rouge, le vert et le bleu.
Câblage
Pour connecter une LED RGB à l’Arduino, il faut donc procéder comme si on avait 3 LEDs :
Remarque : pour pouvoir obtenir des niveaux de couleur variables, il faudra utiliser le mode « sortie analogique PWM » des ports numériques, et par conséquent, utiliser des ports qui en sont capables, c’est à dire ceux qui ont le symbole « ~ ».
Programmation
Initialisation
int redpin = 9; int bluepin =10; int greenpin = 11; void setup() { pinMode(redpin, OUTPUT); pinMode(bluepin, OUTPUT); pinMode(greenpin, OUTPUT); }
Mode binaire
En mode binaire, pour allumer/éteindre une couleur, il faut utiliser la fonction digitalWrite() :
digitalWrite(redpin, HIGH); // allumage de la couleur rouge digitalWrite(redpin, LOW); // extinction de la couleur rouge
Mode analogique
En mode analogique, on utilisera la fonction analogWrite() :
analogWrite(redpin, 127); // allumage de la couleur rouge à 50% (127 étant la moitié de 255)
Allumer les différentes couleurs primaires
Pour allumer tour à tour les 3 couleurs primaires de la LED, il suffit de passer le port numérique de cette couleur à l’état HAUT, et les ports des autres couleurs à l’état BAS :
void loop() { digitalWrite(redpin, HIGH); digitalWrite(bluepin, LOW); digitalWrite(greenpin, LOW); delay(1000); digitalWrite(redpin, LOW); digitalWrite(bluepin, HIGH); digitalWrite(greenpin, LOW); delay(1000); digitalWrite(redpin, LOW); digitalWrite(bluepin, LOW); digitalWrite(greenpin, HIGH); delay(1000); }
Faire varier l’intensité d’une couleur
Pour faire varier l’intensité d’une couleur, il faut utiliser une boucle for afin de faire passer l’intensité de la couleur par toutes les valeurs de 0 à 255 :
for (int r = 0; r < 256; r++) { analogWrite(greenpin, r); delay(10); }
Modifier le programme précédent pour que l’intensité diminue après avoir augmenté.
Modifier le programme pour que la LED changer de couleur progressivement selon le cercle chromatique :