Commande de LEDs RVB (RGB) ou « bonjour et bonne nuit ».

Démarré par Ph Blondé, 07 Novembre 2019 à 09:58:20

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

Ph Blondé

Il s'agit de piloter une rampe lumineuse constituée d'un ruban de LEDs RVB (RGB en anglais) afin de donner l'impression de passer du jour vers la nuit et de la nuit vers le jour.
Si pour autant le code (le programme) ne pose pas de grosses difficultés par la mise en œuvre de 3 broches de sortie en PWM, il faut trouver une interface pilotée par l'ARDUINO et capable de délivrer suffisamment de puissance pour alimenter les 3 m de ruban RVB.

Avec son max de 100mA par broche de sortie, un Arduino est tout à fait incapable délivrer une puissance importante pour alimenter un moteur ou un ruban de LEDs. Il faut donc trouver quelque chose qui fasse l'interface entre cet Arduino et l'ensemble commandé. Ici il s'agit d'un ruban de LEDs RVB qui demande facilement dans les 1 A par couleur.

Cette interface existe, c'est l'ULN2803 (0.34 €). C'est un « driver » capable de délivrer jusqu'à 500mA par canal. Il a 8 canaux qui commandent donc 8 sorties. Rien n'empêche de brancher 1, 2, 3 (voire plus) canaux en parallèle, augmentant ainsi la puissance disponible en sortie.

Ces canaux sont des « darlington » ou, dit plus simplement, des interrupteurs commandés. Chacun de ces 8 canaux peut être ouvert ou fermé indépendamment des autres. L'ULN2803 accepte un maximum de 40V pour une puissance totale de 0,7W dans une température ambiante de 85°C.

Le dessin symbolique du circuit montre des diodes. Elles sont là pour protéger les drivers lors de l'utilisation de systèmes à selfs (moteurs par exemple).
Philippe Blondé
Un 59 dans le 22

Ph Blondé

#1
Deux ULN 2803 sont utilisés ici, ce qui donne 16 drivers disponibles.
En les couplant par 5 en //, on dispose donc de 3 ensembles de commande pouvant délivrer, chacun, jusqu'à 2,5A.
Il reste un driver non utiliser, il est impératif de ne pas le laisser « en l'air » ; son entrée sera mise à la masse (GND) (parce que la masse est juste à côté  ::) )

L'alimentation de ces 2 ULN2803 demande un minimum : 2 condensateurs de filtrage. Le chimique pourra être plus important en fonction du bloc secteur utilisé.

La diode 1N4007 évite tout incident en cas d'inversion des polarités d'alimentation. On ne sait jamais.  ::)

Pour le ruban de LEDs RGB, (longueur de 3m) il faut être certain que le commun est au plus (cas le plus général).

Comme d'habitude il faut relier tous les « moins » (GND) : alimentation extérieure, les ULN 2803 et l'ARDUINO.
Philippe Blondé
Un 59 dans le 22

Ph Blondé

Le code :

// ACTUELLEMENT TEMPS DE DESCENTE ET DE MONTEE EN +- 45s
int ROUGE = 11;
int VERT = 10;
int BLEU = 9;
int valeur_JOUR_NUIT_RVB;
int valeur_NUIT_JOUR_RVB;
void setup()
{
pinMode(ROUGE, OUTPUT);
pinMode(VERT, OUTPUT);
pinMode(BLEU, OUTPUT);
}
void loop()
{
// Passage JOUR > NUIT
valeur_JOUR_NUIT_RVB = 255;
analogWrite(ROUGE,255);
analogWrite(VERT, 255);
analogWrite(BLEU, 255);
delay (100);
do
  {
    analogWrite(ROUGE, valeur_JOUR_NUIT_RVB);
    analogWrite(VERT, valeur_JOUR_NUIT_RVB);
    valeur_JOUR_NUIT_RVB = valeur_JOUR_NUIT_RVB - 1;
    delay(180);
  }
while (valeur_JOUR_NUIT_RVB > 0);
analogWrite(ROUGE,0);
analogWrite(VERT, 0);
analogWrite(BLEU, 255);
delay (20000);// délai de 20s pour les tests
// Passage NUIT > JOUR
valeur_NUIT_JOUR_RVB = 0;
analogWrite(ROUGE,0);
analogWrite(VERT, 0);
analogWrite(BLEU, 255);
delay (100);


do
  {
    analogWrite(ROUGE, valeur_NUIT_JOUR_RVB);
    analogWrite(VERT, valeur_NUIT_JOUR_RVB);
    valeur_NUIT_JOUR_RVB = valeur_NUIT_JOUR_RVB + 1;
    delay(180);
  }
while (valeur_NUIT_JOUR_RVB < 255);
analogWrite(ROUGE,255);
analogWrite(VERT, 255);
analogWrite(BLEU, 255);
delay (20000);// délai de 20s pour les tests
}
Philippe Blondé
Un 59 dans le 22

Ph Blondé

On passe en +- 45s du jour vers la nuit et autant de la nuit vers le jour. C'est la magie de Noël... :) :)

En espérant que le père Noël (ou la mère) passe au-dessus de tout cela. ::) ::)

Photos : Hervé - 03 - Montmarault  http://forum.espacetrain.com/index.php?topic=2279.msg16361#msg16361
Philippe Blondé
Un 59 dans le 22

AntoineB69

Des boîtes à ozone croisent de vieilles vapeur sous la ficelle du Midi dans les années 50.