LE SHIELD DE PUISSANCE POUR RUBAN A LED RGB VELLEMAN
Le shield de puissance pour ruban à led RGB développé par Velleman comporte essentiellement trois transitors MOS permettant de piloter les trois couleurs sous 24 V et 6 A max.
Trois led permettent de tester le shield sans y brancher un ruban à led RGB.
Ce shield est vendu sous forme de kit et son montage ne nécessite pas une grande maîtrise technique.
Les sorties de la carte Arduino Uno pilotant les trois couleurs du ruban sont respectivement le broches numériques N°3, 5 et 6. Pour rappel, ces sorties peuvent délivrer des signaux PWM (Pulse Width Modulation).
L' alimentations du ruban (en général 12 V) est reliée au bornier entouré en ROUGE.
Le ruban est connecté au bornier entouré en JAUNE.
Dans l'univers Arduino, le shield de puissance pour ruban à led RGB est principalement utilisé pour piloter un ruban à led mais nous pouvons également l'utiliser pour alimenter des charges non inductives (il n'y a pas de diode de roue libre pour protéger les transistors)
Exemple :
Nous souhaitons modifier la luminosité de chaque couleur d'un ruban à led, à l'aide de trois potentiomètres.
Liste du matériel :
-
1 Arduino Uno
-
1 plaquette d'essai
-
3 potentiomètres de 10 KΩ
-
1 shield de puissance pour ruban à led RGB
-
1 ruban à led RGB
-
1 alimentation 12 V/5 A
Câblage :
Il faut insérer le shield Velleman sur la carte Arduino Uno.
Programme :
/* Shield_Velleman est un programme qui commande la couleur d'un ruban à led RGB
en fonction de la position de trois potentiomètres */
#define pot_R A0 // affectation des broches
#define pot_G A1
#define pot_B A2
#define led_R 3
#define led_G 5
#define led_B 6
int R;
int G;
int B;
void setup()
{
pinMode(led_R, OUTPUT); // la broche led_R est en sortie
pinMode(led_G, OUTPUT); // la broche led_G est en sortie
pinMode(led_B, OUTPUT); // la broche led_B est en sortie
}
void loop()
{
R=analogRead(pot_R); // conversion AN
G=analogRead(pot_G;
B=analogRead(pot_B);
R=map(R, 0, 1023, 0, 255); // mise à l'échelle
G=map(G, 0, 1023, 0, 255);
B=map(B, 0, 1023, 0, 255);
analogWrite(led_R,R); // luminosité
analogWrite(led_G,G);
analogWrite(led_B,B);
}