Ruban à leds RGB connecté

image principale Ruban à leds RGB connecté

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 :

Budget : Non défini

  • – 1 ruban à leds RGBTout le matériel est disponible chez Go…nic (revendeur partenaire du concours Oui Are Arduino) (disponible ici)
  • – 1 shield RGB Velleman KA01 (15 euros) pouvant être remplacé par 3 transistors et 3 résistances (3 à 5 euros le tout) (disponible ici)
  • – 1 Arduino Uno (20 euros) (disponible ici)
  • – 1 shield Bluetooth V2.1 Seedstudio (25 euros) pouvant être remplacé par un module HC06 (4 euros)
  • – 1 morceau de barrette sécable
  • – 1 smartphone ou 1 tablette

Etape 1 : L’application Androïd


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


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 : 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.

Etape 5 : 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.

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

Merci.

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

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.

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) ?

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

Bonjour, Bonjour, Merci pour ce tutoriel de qualité. J'aimerais pouvoir télécharger le fichier Ruban_Led.apk. Le lien n'est pas indiqué : où peut-on le trouver ?(...)

Bonsoir, Il est impossible de mettre un lien de téléchargement autre qu'un fichier PDF, texte sur Oui are Maker. Désolé.

Bonjour, Merci beaucoup pour votre réponse mais vous dite dans votre tuto : "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 comprends qu'il n'est pas possible de télécharger ce fichier sur "Oui are makers" mais où trouver ce fichier ailleurs ? (...) Merci par avance.

Voilà, la manipulation a fonctionné. Il y a eu un bug quelque part !!!

salut Titchoi j'essai ton prog. et je bute sur ces lignes dans l'arduino #include SoftwareSerial bluetooth(2, 4); // RX, TX faut il declarer le bluetooth plus tot dans le programme? version ide arduino 1.8.3 ou 1.4 Merci Marcus

Voilà les deux instructions qu'il faut mettre pour déclarer un port série virtuel : #include SoftwareSerial Bluetooth(RX,TX); avec RX et TX le numéro des deux broches sur lesquelles les données série transitent. Il y a parfois des bugs sur OAM lors de copier/coller. Désolé.

Merci je l ai declare au debut apres #include SoftwareSerial bluetooth (2,4); Et ca marche...

Bonjour

Peut on envisager de coupler une bande led a  un système de centrale de clignotant s et feux stop moto via un mode bluetooth ?

Merci

Bonjour Maximilien

Je ne connais pas du tout les centrales mais avec Arduino, tout est faisable à condition de prendre son temps et de bien analyser les tensions qui arrivent. Elles ne doivent pas dépasser 5V.

Salut !!!
Déjà bravo pour le tuto c'est super clair !!!
Est-il possible de récupérer le code de l'application mobile pour essayer quelques idées d'améliorations ?
Bien-sûr je le partagerai (si j'y arrive) :p
Bonne soirée
Antoine

Bonjour, j'ai un probleme avec #include SoftwareSerial bluetooth (2,4), est ce que cela a un rapport avec ruban.ino ?

D'ailleur je ne trouve pas ce fichier, si vous pouvez m'aider ...

Ces tutoriels devraient vous plaire

vignette L’imprimante 3D pour 60€: EWaste
L’imprimante 3D pour 60€: EWaste
vignette Préparer un fichier pour une découpe et une gravure laser
Préparer un fichier pour une découpe et une gravure laser
vignette Fabriquer une lampe à lave
Fabriquer une lampe à lave

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers