Description
Module RGB 10mm
Le module LED RGB 10mm est un dispositif lumineux qui combine des diodes électroluminescentes rouges, vertes et bleues dans une seule unité. Ce module permet de produire une large gamme de couleurs en ajustant les intensités de chaque LED via des signaux PWM (modulation de largeur d’impulsion). Il est couramment utilisé dans les projets de bricolage, les indicateurs de statut et les effets lumineux décoratifs.
Caractéristiques en détails
- Tension de fonctionnement : DC 5V
- Courant de fonctionnement : 0.6A (max)
- Puissance maximale : 0.3W
- Température de fonctionnement : -25°C à +65°C
- Interface : Connecteur à 4 broches (pas de 2.54mm)
- Diamètre des trous de fixation : 3mm
- Dimensions : 30mm x 20mm
- Conformité environnementale : ROHS
Fonctionnement
Le module utilise une LED RGB à anode commune, ce qui signifie que le pin commun est connecté au positif (Vcc), et les autres broches sont contrôlées individuellement pour le rouge, le vert et le bleu via des signaux PWM. Cela permet de mélanger les couleurs en ajustant les intensités de chaque couleur primaire.
Applications
- Projets de bricolage
- Éclairage décoratif
- Indicateurs de statut
- Affichages de couleurs personnalisées
Brochage
- Vcc : Tension d’alimentation (+5V)
- R : Contrôle de la LED rouge
- G : Contrôle de la LED verte
- B : Contrôle de la LED bleue
- GND : Masse (terre)
Comment l’utiliser avec Arduino Uno
Exemple de code Arduino de base
int redPin = 11; // broche pour la LED rouge
int greenPin = 9; // broche pour la LED verte
int bluePin = 10; // broche pour la LED bleue
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(0, 255, 255); // rouge
delay(1000);
setColor(255, 0, 255); // vert
delay(1000);
setColor(255, 255, 0); // bleu
delay(1000);
setColor(120, 10, 10); // blanc
delay(1000);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}
But du code
Ce code change la couleur de la LED RGB toutes les secondes, en alternant entre rouge, vert, bleu et blanc.
Composants nécessaires pour le code de base
- Arduino Uno
- Module LED RGB 10mm
- Résistances (220Ω) pour chaque LED
Explication détaillée du code
- Inclusion des bibliothèques et définition des broches :
int redPin = 11;
,int greenPin = 9;
,int bluePin = 10;
: Définition des broches de connexion pour chaque LED.
- Configuration des broches dans
setup()
:pinMode(redPin, OUTPUT);
: Configure la brocheredPin
en sortie.pinMode(greenPin, OUTPUT);
: Configure la brochegreenPin
en sortie.pinMode(bluePin, OUTPUT);
: Configure la brochebluePin
en sortie.
- Boucle principale
loop()
:setColor(0, 255, 255);
: Change la couleur de la LED à rouge.delay(1000);
: Attend une seconde avant de changer la couleur suivante.
- Fonction
setColor()
:analogWrite(redPin, redValue);
: Ajuste l’intensité de la LED rouge.analogWrite(greenPin, greenValue);
: Ajuste l’intensité de la LED verte.analogWrite(bluePin, blueValue);
: Ajuste l’intensité de la LED bleue.
Exemple de code Arduino avancé
const int RED_PIN = 11; // Broche pour la LED rouge
const int GREEN_PIN = 9; // Broche pour la LED verte
const int BLUE_PIN = 10; // Broche pour la LED bleue
void setup() {
// Configurer les broches comme sorties
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void loop() {
// Parcourir toutes les combinaisons de couleurs possibles
for (int i = 0; i < 16777216; i++) { // 2^24 combinaisons de couleurs possibles
int r = (i >> 16) & 0xFF; // Extraire la valeur rouge
int g = (i >> 8) & 0xFF; // Extraire la valeur verte
int b = i & 0xFF; // Extraire la valeur bleue
setColor(r, g, b); // Définir la couleur
delay(100); // Attendre 0,1 seconde
}
}
// Fonction pour définir la couleur
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(RED_PIN, redValue); // Ajuster l'intensité de la LED rouge
analogWrite(GREEN_PIN, greenValue); // Ajuster l'intensité de la LED verte
analogWrite(BLUE_PIN, blueValue); // Ajuster l'intensité de la LED bleue
}
But du code
Ce code parcourt toutes les combinaisons possibles de couleurs en utilisant les valeurs des LEDs rouge, verte et bleue. Chaque combinaison de couleur est affichée pendant 0,1 seconde avant de passer à la suivante, permettant de visualiser une transition continue entre toutes les couleurs possibles.
Composants nécessaires pour le code avancé
- Arduino Uno
- Module LED RGB 10mm
- Résistances (220Ω) pour chaque LED
Explication détaillée du code
- Définition des constantes de broches :
const int RED_PIN = 11;
,const int GREEN_PIN = 9;
,const int BLUE_PIN = 10;
: Définition des broches de connexion pour chaque LED.
- Configuration des broches dans
setup()
:pinMode(RED_PIN, OUTPUT);
: Configure la brocheRED_PIN
en sortie.pinMode(GREEN_PIN, OUTPUT);
: Configure la brocheGREEN_PIN
en sortie.pinMode(BLUE_PIN, OUTPUT);
: Configure la brocheBLUE_PIN
en sortie.
- Boucle principale
loop()
:for (int i = 0; i < 16777216; i++)
: Parcourt toutes les combinaisons possibles de 24 bits pour les couleurs RGB.int r = (i >> 16) & 0xFF;
: Extrait les 8 bits les plus significatifs pour la valeur rouge.int g = (i >> 8) & 0xFF;
: Extrait les 8 bits intermédiaires pour la valeur verte.int b = i & 0xFF;
: Extrait les 8 bits les moins significatifs pour la valeur bleue.setColor(r, g, b);
: Ajuste la couleur de la LED en fonction des valeurs actuelles de rouge, vert et bleu.delay(100);
: Attend 0,1 seconde avant de passer à la combinaison de couleur suivante.- Nombre de couleurs possibles : 16 777 216
- Délai par couleur : 0,1 seconde
- Le temps total nécessaire pour parcourir toutes les combinaisons de couleurs serait: 1 677 721,6 secondes (19,39 jours)
- Fonction
setColor()
:analogWrite(RED_PIN, redValue);
: Ajuste l’intensité de la LED rouge.analogWrite(GREEN_PIN, greenValue);
: Ajuste l’intensité de la LED verte.analogWrite(BLUE_PIN, blueValue);
: Ajuste l’intensité de la LED bleue.
Brochage
- Vcc : Connecté au +5V de l’Arduino
- R : Connecté à la broche 11 de l’Arduino via une résistance de 220Ω
- G : Connecté à la broche 9 de l’Arduino via une résistance de 220Ω
- B : Connecté à la broche 10 de l’Arduino via une résistance de 220Ω
- GND : Connecté à la masse (GND) de l’Arduino
En réduisant le nombre de bits utilisés pour les valeurs de couleur, on diminue le nombre total de combinaisons de couleurs, ce qui réduit le temps total nécessaire pour les parcourir. Voici comment cela affecterait le temps total pour différents niveaux de bits :
- 8 bits par couleur (24 bits au total)
- Nombre de couleurs possibles :
- Temps total à 0,1 seconde par couleur : environ 19,39 jours
- Nombre de couleurs possibles :
- 6 bits par couleur (18 bits au total)
- Nombre de couleurs possibles :
- Temps total à 0,1 seconde par couleur : environ 7,3 heures.
- Nombre de couleurs possibles :
- 4 bits par couleur (12 bits au total)
- Nombre de couleurs possibles :
- Temps total à 0,1 seconde par couleur : environ 6,8 minutes.
- Nombre de couleurs possibles :
- 3 bits par couleur (9 bits au total)
- Nombre de couleurs possibles :
- Temps total à 0,1 seconde par couleur : environ 51,2 secondes.
- Nombre de couleurs possibles :
Exemple de code Arduino ajusté pour 4 bits par couleur
Nous allons utiliser 4 bits par couleur, ce qui donne 4096 combinaisons de couleurs. Cela rend le temps total raisonnable pour une démonstration.
const int RED_PIN = 11; // Broche pour la LED rouge
const int GREEN_PIN = 9; // Broche pour la LED verte
const int BLUE_PIN = 10; // Broche pour la LED bleue
void setup() {
// Configurer les broches comme sorties
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void loop() {
// Parcourir toutes les combinaisons de couleurs possibles avec 4 bits par couleur
for (int r = 0; r < 16; r++) { // 2^4 valeurs possibles pour le rouge
for (int g = 0; g < 16; g++) { // 2^4 valeurs possibles pour le vert
for (int b = 0; b < 16; b++) { // 2^4 valeurs possibles pour le bleu
setColor(r * 17, g * 17, b * 17); // Multiplier par 17 pour étendre les valeurs de 0 à 255
delay(100); // Attendre 0,1 seconde
}
}
}
}
// Fonction pour définir la couleur
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(RED_PIN, redValue); // Ajuster l'intensité de la LED rouge
analogWrite(GREEN_PIN, greenValue); // Ajuster l'intensité de la LED verte
analogWrite(BLUE_PIN, blueValue); // Ajuster l'intensité de la LED bleue
}
Mots clés: light, color.