Ruban à leds RGB connecté

Medium k1tpmsml4luhuy32uamf

Difficulté:

Commander la luminosité, la couleur, les effets lumineux d’un ruban à leds RGB depuis un smartphone ou une tablette


Un ruban à leds est livré avec une petite télécommande infrarouge qui a la fâcheuse habitude de disparaître sous les coussins du canapé ou sous les magazines posés sur la table basse.
De plus, le récepteur infrarouge est souvent soudé au bout d’un fil relativement souple et il faut bien viser le récepteur pour que le ruban réagisse. Les couleurs proposées sur la télécommande sont également en nombre restreint.
Tout le monde possède aujourd’hui un smartphone (que ferions nous sans lui) et l’idée m’est venue de commander le ruban à l’aide d’une interface graphique développée sous App Inventor.
L’application fonctionne sous Androïd et permet de modifier les paramètres du ruban via une liaison Bluetooth.

Matériel

Medium iupss4crojsiyxcmaqch

Budget:

60 €

– 1 Arduino Uno (20 euros)
– 1 shield Bluetooth V2.1 Seedstudio (25 euros) pouvant être remplacé par un module HC06 (4 euros)
– 1 shield RGB Velleman KA01 (15 euros) pouvant être remplacé par 3 transistors et 3 résistances (3 à 5 euros le tout)
– 1 morceau de barrette sécable
– 1 smartphone ou 1 tablette
– 1 ruban à leds RGB

Tout le matériel est disponible chez Go…nic (revendeur partenaire du concours Oui Are Arduino)

Etape 1 : L’application Androïd

Medium zoewgorczewyf0paaaro

Pour cette étape, il suffit de télécharger le fichier Ruban_Led.apk, de le coller dans un répertoire du smartphone et de cliquer dessus. L’installation se lance toute seule.
Je reviendrai plus tard sur l’utilisation de cette application car il faut appairer le module Bluetooth et le smartphone.

Etape 2 : Le montage et le code Arduino

Medium kzxdpiake5eehgaowzxn

Cette étape consiste à programmer l’Arduino à l’aide du fichier Ruban.ino et configurer le shield Bluetooth.
J’ai délibérément choisi ce shield car il a l’avantage de pouvoir être enfiché sur l’Arduino sans avoir l’obligation de réaliser un câblage sur une platine d’essai comme pour un modele HC06. De plus, à l’aide de deux petits cavaliers, nous pouvons configurer la liaison série. Pour ce projet, j’ai choisi les broches 2 (RX) et 4 (TX) et il faut placer les cavaliers comme sur la photo.
Après avoir insérer le shield Bluetooth, il faut placer le shield RGB.

Ci-dessous, vous trouverez le code Arduino avec les commentaires pour chaque partie du programme.
//Definition des entrees sorties
const int LED_R = 3;
const int LED_G = 5;
const int LED_B = 6;

//Declaration des variables
int mode;
int red;
int green;
int blue;
int tempo;

//Declaration d’un port serie
#include
SoftwareSerial bluetooth(2, 4); // RX, TX

//Initialisation des E/S et communication
void setup()
{
Serial.begin(9600);
bluetooth.begin(9600);
pinMode(LED_R,OUTPUT) ;
pinMode(LED_G,OUTPUT) ;
pinMode(LED_B,OUTPUT) ;
}

//Programme principal
void loop()
{
while (bluetooth.available()>0)
{
mode = bluetooth.parseInt(); // stockage du premier nombre dans la variable mode
red = bluetooth.parseInt(); // stockage du second nombre dans la variable red
green = bluetooth.parseInt(); // stockage du troisieme nombre dans la variable green
blue = bluetooth.parseInt(); // stockage du quatrieme nombre dans la variable blue
tempo = bluetooth.parseInt(); // stockage du cinquieme nombre dans la variable tempo
if (bluetooth.read() == ‘n’) // lorsque les 5 nombres ont été transmis
{
Serial.println(mode); // permet de verifier dans le moniteur serie, la valeur des parametres
Serial.println(red);
Serial.println(green);
Serial.println(blue);
Serial.println(tempo);
delay(100);
}
if (mode == 0) // extinction
{
analogWrite(LED_R,0);
analogWrite(LED_G,0);
analogWrite(LED_B,0);
}
if (mode == 1) // couleur
{
analogWrite(LED_R,red);
analogWrite(LED_G,green);
analogWrite(LED_B,blue);
}
while ((mode == 2)&&(bluetooth.available()==0)) // fondu
{
for (int i=0; i <= 255; i++)
{
analogWrite(LED_R, 255-i);
analogWrite(LED_G, i);
analogWrite(LED_B, 0);
delay(tempo);
}
for (int i=0; i <= 255; i++)
{
analogWrite(LED_R, 0);
analogWrite(LED_G, 255-i);
analogWrite(LED_B, i);
delay(tempo);
}
for (int i=0; i <= 255; i++)
{
analogWrite(LED_R, i);
analogWrite(LED_G, 0);
analogWrite(LED_B, 255-i);
delay(tempo);
}
}
while ((mode == 3)&&(bluetooth.available()==0)) // clignotement
{
analogWrite(LED_R,red);
analogWrite(LED_G,green);
analogWrite(LED_B,blue);
delay (tempo*5);
analogWrite(LED_R,0);
analogWrite(LED_G,0);
analogWrite(LED_B,0);
delay (tempo*5);
}
while ((mode == 4)&&(bluetooth.available()==0)) // clignotement auto
{
analogWrite(LED_R,255);
analogWrite(LED_G,0);
analogWrite(LED_B,0);
delay (tempo*5);
analogWrite(LED_R,0);
analogWrite(LED_G,255);
analogWrite(LED_B,0);
delay (tempo*5);
analogWrite(LED_R,0);
analogWrite(LED_G,0);
analogWrite(LED_B,255);
delay (tempo*5);
analogWrite(LED_R,255);
analogWrite(LED_G,0);
analogWrite(LED_B,255);
delay (tempo*5);
analogWrite(LED_R,0);
analogWrite(LED_G,255);
analogWrite(LED_B,255);
delay (tempo*5);
analogWrite(LED_R,255);
analogWrite(LED_G,255);
analogWrite(LED_B,0);
delay (tempo*5);
analogWrite(LED_R,255);
analogWrite(LED_G,255);
analogWrite(LED_B,255);
delay (tempo*5);
}
}
}

Etape 3 : Le ruban

Lors de cette étape, il faut réaliser un petit connecteur à l’aide d’une barrette sécable et 4 fils (rouge, vert, bleu et noir). Il faut obligatoirement respecter l’ordre des fils :
– noir
– vert
– rouge
– bleu
Un petit morceau de gaine thermorétractable permettra d’isoler les soudures (voir photo).
Ce petit connecteur se branche de la façon suivant sur le shield RGB :
– fil noir sur la borne + (R ou G ou B)
– fil rouge sur la borne – (R)
– fil vert sur la borne – (G)
– fil bleu sur la borne – (B)
Enfin, il faut brancher une alimentation 12 V sur le bornier PWR du shield RGB. L’alimentation généralement fournie avec le ruban convient parfaitement.

Etape 4 : L’utilisation

Le shield Bluetooth et le smartphone doivent être appairés. Pour cela, il faut détecter le module Bluetooth HMSoft (photo1), l’appairer en choisissant son code PIN 1234 (photo 2). Une fois appairé, le shield Bluetooth apparaît dans la liste des matériels Bluetooth (photo 3).

Nous pouvons maintenant lancer l’application. Il faut dans un premier temps se connecter à l’Arduino en sélectionnant le module HMSoft.
Ensuite, l’utilisation de l’application est très intuitive.
– Un clic sur le bouton Couleur fait apparaître trois curseurs permettant de modifier les couleurs rouge, vert et bleu du ruban.
– Un clic sur Fondu (des couleurs) fait apparaître un curseur permettant de faire varier la vitesse de défilement des couleurs.
– Un clic sur Cligno fait apparaître quatre curseurs; trois pour le choix de la couleur et un pour la fréquence de clignotement.
– Un clic sur Auto fait apparaître un curseur permettant de faire varier la fréquence de l’effet.

Etape 5 : Version “lite”

L’analyse du programme Arduino montre que l’appui sur un bouton de l’application envoie une trame constituée de 5 octets (mode, rouge, vert, bleu et tempo). Libre à vous de modifier le programme Arduino pour créer d’autres effets. Si vous souhaitez davantage de boutons sur l’application, envoyez un petit message et j’ajouterai le nombre de boutons voulus (pas cinquante non plus). Ce sera avec plaisir que je vous enverrai votre nouvelle application sous 8 jours.

Comme évoqué au début du tutoriel, vous pouvez faire de sérieuses économies en remplaçant les deux shields par des composants discrets (un module Bluetooth HC06 et trois transistors IRF510) mais à ce moment là, la réalisation de ce projet n’est plus à la portée de tout le monde car il faut soit faire un câblage sur platine d’essai, soit réaliser un circuit imprimé. Le schéma structurel et le schéma de câblage sont donnés ci-dessus. Avec cette solution, le projet revient à une trentaine d’euros, sans le ruban et le smartphone, bien sur. Ne rêvons pas !!!
Un petit commentaire sur le schéma :
– Attention, le module HC06 fonctionne sous 3.3V. Les résistances R4 et R5 forment un pont diviseur permettant de ramener un niveau haut envoyé par la ligne Tx de l’Arduino à 3.3V afin de protéger l’entrée Rx du module HC06.
– Les transistors supportent des courants de drain de 4A, bien suffisant au regard du courant maximal demandé par le ruban (1.5A par couleur pour un ruban de 5m). Il n’est même pas nécessaire de monter ces transistors sur des dissipateurs thermiques.

Pour finir, il serait souhaitable de mettre le montage dans un joli boitier, mais ma passion pour l’électronique fait que souvent, je préfère visser les cartes que je fabrique sur une plaque de plexiglass ou de contreplaqué. Cela titille la curiosité de mes amis qui passent devant ces cartes. C’est l’occasion de les initier à l’électronique.

Vous aimez ce tutoriel ?


Michel2

07 juil. 2016 à 10:36

Félicitations pour ce projet. Le tutoriel est très clair.

Je ne possède pas de ruban à leds et j'ai testé le projet “Ampoule à leds connectée” , sympa également.

Je voudrais commander mon ampoule avec ton application, est-ce possible ?

Merci

Titchoi

07 juil. 2016 à 10:36

Comme je l'ai écrit dans le tuto, l'application envoie 5 octets à chaque action. Il faut donc mixer les deux programmes Arduino pour commander une ampoule avec mon appli.

Bilippe

07 juil. 2016 à 10:42

Arnaud

07 juil. 2016 à 10:42

Génial, depuis le temps que je devais le faire !

Bravo

Titchoi

07 juil. 2016 à 10:42

Merci.

Miko850

29 oct. 2016 à 00:17

Bonjour. Merci pour ce tutoriel c'est exactement ce que je cherchais, mais je voulais savoir si cela pouvait fonctionner avec un ruban led en 5v afin d'utiliser une batterie (de secours pour portable ou pile 9v) ?

Titchoi

24 nov. 2016 à 23:27

Pas de souci. La tension d'alimentation du ruban doit être appliquée sur le shield.


Oh ça buzz

+ de 1 000 vues pour Ruban à leds RGB connecté



Gotronic

Voir l'espace DIY gotronic


S'inscrire:


  • Vues: 1614
  • J'aime: 32