Nous avons vu précédemment un montage pilotant plusieurs leds, ici on va piloter une ou plusieurs leds RVB ou un bandeau de leds.
Le Schéma
Le schéma est assez simple, on utilise ici un ATM328 avec le bootloader UNO, un module bluetooth, quelques composants et 3 transistors MOSFET permettant de driver jusqu'a 4A sans chauffer.
Comme vous pouvez le voir sur le schéma, il nous faut deux alimentations 1x12V et 1x5V il suffit de mettre un régulateur 7805 sur l'alimentation 12V, je ne l'ai pas mis sur le schéma (peut être un peu de fainéantise lol).
Le circuit terminé.
Pour gagner de la place, celui-ci est en double faceComme vous pouvez le voir sur la face 2, j'ai apporté quelques modifications de dernière minutes, a la base j'étais parti sur le pilotage via un ULN 2803 mais vu le courant que consomme un bandeau de leds, j'ai laissé cette solution de coté et opter pour des transistors MOSFET. J'ai malgré tout laissé le dessin du circuit intégré, cela permet d'utiliser l'une ou l'autre des solution suivant l’utilisation que l'on veut faire du montage.
En vidéo
Désolé, on ne voit pas bien les couleurs de la leds. Une petite précision concernant les leds, on a toujours tendance a prendre des leds haute luminosité c'est bien lorsqu'elle sont derrière un diffuseur sinon le mélange RVB ne se voit pas. L'idéal est de prendre des leds RVB diffusantes. Idem pour le bandeau de leds, attention il en existe deux sortes l'une ne permet pas le mélange des couleur (une couleur par led), la seconde est full color (les 3 couleurs sont dans la même led).
Le sketch
J'ai crée un programme permettant de piloter les leds par couleur- Rouge
- Vert
- Bleu
- Jaune
- Blanc
- Blanc clair
- Rose
- Variation de couleur automatique
/*Commande de leds RVB en Bluetooth via Android
Mode de fonctionnement par couleurs
Rouge
Bleu
Jaune
Rose
Bleu clair
Blanc
Automatique
By Jojo Bricolo*/
int ldr = 9;
int ldv = 10;
int ldb = 11;
#define FADESPEED 10 // Vitesse de transition
int state;
int flag=0;
void setup() {
pinMode (ldr,OUTPUT);
pinMode (ldv,OUTPUT);
pinMode (ldb,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available() > 0){
state = Serial.read();
flag=0;
}
if (state == 'a') {
digitalWrite (ldr,HIGH);
digitalWrite (ldv,HIGH);
digitalWrite (ldb,HIGH);
if(flag == 0){
Serial.println("Led Blanc");
flag=1;
}
}
else
if (state == 'z') {
digitalWrite (ldr,HIGH);
digitalWrite (ldv,HIGH);
digitalWrite (ldb,LOW);
if(flag == 0){
Serial.println("Led Jaune");
flag=1;
}
}
else
if (state == 'e') {
digitalWrite (ldr,HIGH);
digitalWrite (ldv,LOW);
digitalWrite (ldb,HIGH);
if(flag == 0){
Serial.println("Led Rose");
flag=1;
}
}
else
if (state == 'r') {
digitalWrite (ldr,LOW);
digitalWrite (ldv,HIGH);
digitalWrite (ldb,HIGH);
if(flag == 0){
Serial.println("Led Bleu clair");
flag=1;
}
}
else
if (state == 't') {
digitalWrite (ldr,LOW);
digitalWrite (ldv,LOW);
digitalWrite (ldb,HIGH);
if(flag == 0){
Serial.println("Led Bleu");
flag=1;
}
}
else
if (state == 'y') {
digitalWrite (ldr,LOW);
digitalWrite (ldv,HIGH);
digitalWrite (ldb,LOW);
if(flag == 0){
Serial.println("Led vert");
flag=1;
}
}
else
if (state == 'u') {
digitalWrite (ldr,HIGH);
digitalWrite (ldv,LOW);
digitalWrite (ldb,LOW);
if(flag == 0){
Serial.println("Led Rouge");
flag=1;
}
}
else
if (state == 'h') {
digitalWrite (ldr,LOW);
digitalWrite (ldv,LOW);
digitalWrite (ldb,LOW);
if(flag == 0){
Serial.println("Led : Arret");
flag=1;
}
}
else
if (state == 'i') {
Serial.println("Led Automatique");
int r, g, b;
for (r = 0; r < 256; r++) {
analogWrite(ldr, r);
delay(FADESPEED);
}
for (b = 255; b > 0; b--) {
analogWrite(ldb, b);
delay(FADESPEED);
}
for (g = 0; g < 256; g++) {
analogWrite(ldv, g);
delay(FADESPEED);
}
for (r = 255; r > 0; r--) {
analogWrite(ldr, r);
delay(FADESPEED);
}
for (b = 0; b < 256; b++) {
analogWrite(ldb, b);
delay(FADESPEED);
}
for (g = 255; g > 0; g--) {
analogWrite(ldv, g);
delay(FADESPEED);
}
if(flag == 0){
flag=1;
}
}
}
void setColor(int red, int green, int blue)
{
analogWrite(ldr, 255-red);
analogWrite(ldv, 255-green);
analogWrite(ldb, 255-blue);
}
J'ai utilisé les lettres "a-z-e-r-t-y-u-i" pour les diverse couleurs et "h" pour l'arrêt mais rien ne vous empêche de modifier ces lettres. Petit détail, dans le programme j'utilise la fonction "delay" pour le mode fondue de couleur, cela ralenti la fonction suivante demandée quand ce mode est en cours. Donc si le module en fondu, que vous appuyer sur une couleur fixe le programme attends la fin de la séquence avant de valider la commande demandée.
Si cela vous intéresse, je suis en mesure de vous faire un kit ou même vous réaliser ce montage !!!
N'hésitez pas a me contacter.
Bonjour Jojo!
RépondreSupprimerMerci pour ton blog, on peut y trouver un tas d'infos très intéressantes! :-)
Comment peut on te contacter?
Merci pour le compliment!
SupprimerOui on peut me contacter, je t'envoie un mail
A++
Jojo
heim.joel68@gmail.com
Supprimer