Piloter une LED RGB connectée sur une carte Arduino, à l’aide d’une application Android

Il est possible de piloter une LED RGB à l’aide d’une application Android.

Nous allons ici, étudier la mise en place de cette solution en plusieurs étapes :

  • Branchement du module RGB et du module Bluetooth
  • Configuration du Bluetooth
  • Mise en œuvre de l’application Android sous APP Inventor.
  • Mise en œuvre du code Arduino

Branchement du module RGB et du module Bluetooth :

Il est possible que vous possédiez déjà un module d’une led RGB de ce type :

… Si oui, il n’est donc pas nécessaire d’ajouter les résistances présentes dans le schémas de câblage précédent.

 

Configuration du Bluetooth

Nous utilisons un module HC05 :

Tous les modules Bluetooth HC-05 possèdent la même configuration. Le nom du module est « HC 05 » et le code d’appareillage est « 1234 ».

Si vous souhaitez garder cette configuration, passez au paragraphe suivant, sinon, mettre en place ces étapes :

  • Brancher l’interface EN du module HC-05 au 5V, par l’intermédiaire d’un câble
  • Débrancher puis rebrancher l’alimentation de votre carte Arduino. Normalement, le capteur HC-05 doit clignoter lentement.
  • Téléverser le code suivant :
#include <SoftwareSerial.h>

char message;

SoftwareSerial bluetooth(2,3); // (TX, RX)

void setup()
{
// Ouvre la voie série avec l'ordinateur
Serial.begin(9600);
// Ouvre la voie série avec le module BT
bluetooth.begin(38400);
}

void loop() // run over and over
{
if (bluetooth.available()) {
message = bluetooth.read();
Serial.print(message);
}
if (Serial.available()) {
message = Serial.read();
bluetooth.print(message);
}
}
Configuration du module HC-05

 

  • Dans le moniteur série, vous devez déjà sélectionner « NL et CR » puis envoyer le message AT, et attendre la réponse OK.
  • Changer le nom :
    AT+NAME=Votre_Nom (Attention, il faut utiliser 12 caractères maximum et ne pas utiliser de lettres accentuées, ni d’espaces.)
    Changer le PIN :
    AT+PSWD=XXXX (Avec XXXX des chiffres de 0 à 9)
  • Une fois le changement effectué, le module nous répond OK
  • Débrancher le fil KEY ou EN du module HC-05
  • Débrancher et rebrancher la carte Arduino
Normalement, le module HC-05 doit clignoter plus rapidement (ce qui signifie qu’il est en attente d’une connexion).

 

Mise en œuvre de l’application Android sous App Inventor

L’application finale est disponible au format .apk ici et au format .aia (qu’il est possible de modifier dans App Inventor) ici.

La partie liée au Bluetooth reste très classique : un bouton permettant de se connecter, un autre de se déconnecter :

Il faut ensuite créer 3 variables permettant d’enregistrer la valeur de rouge, de vert et de bleu. Une trame sera envoyée au  format « Rouge, Vert, Bleu », avec chacune des composantes utilisant la plage de valeurs 0 – 255. Nous initialisons donc une trame à la valeur maximale :

Dans cette application, nous avons créé 3 ascenseurs, permettant de gérer les trois composantes de couleurs : rouge, vert et bleu. Le bloc arrondi permet de ne récupérer que la valeur entière de l’ascenseur. Ne pas oublier d’ajouter, dans le bloc de configuration à droite, la valeur minimale à 0, et la valeur maximale à 255.


Nous utilisons un bouton permettant l’affichage de la couleur sélectionnée avec les ascenseurs. Lorsque nous appuyons sur le bouton, la couleur est appliqué au bouton « Boite_couleur » et si la liaison Bluetooth est disponible, les couleurs sont envoyés par cette liaison sous la forme d’une trame « Rouge;Vert;Bleu ».

Mise en œuvre du code Arduino :

Nous allons donc récupérer la trame complète, puis extraire les éléments, qui sont séparés par des « ;« .
Nous utiliserons la commande ParseInthttp://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.StreamparseInt

// Bibliothèque pour création de l'objet bluetooth
#include <SoftwareSerial.h>


// Définition des broches utilisées pour la LED RGB
int PinRouge = 11; // R sur broche 11
int PinBleu = 10; // B sur la broche 10
int PinVert = 9; // V sur la broche 9

// Initialisation des variables qui contiendront les valeurs de RGB à affecter aux interfaces
int rouge;
int vert;
int bleu;
// Création de la liaison Bluetooth
SoftwareSerial bluetooth(2, 3); // TX, RX

// Variable permettant l'enregistrement de la trame reçue en Bluetooth
char message;

void setup()
{
// Définir les interfaces de la LED RGB en sortie
pinMode(PinRouge, OUTPUT);
pinMode(PinVert, OUTPUT);
pinMode(PinBleu, OUTPUT);

// Ouvre la voie série avec le module BT
bluetooth.begin(9600);
}


void loop()
{
// Si la liaison Bluetooth est disponible
if (bluetooth.available()) {
// Format de transmission = rouge;vert;bleu
// Exemple : 50;150;250
rouge = bluetooth.parseInt(); //rouge = XXX, reste dans le buffer XXX;XXX;
vert = bluetooth.parseInt(); // vert = XXX, reste dans le buffer XXX;
bleu = bluetooth.parseInt(); // bleu = XXX, reste dans le buffer ;
delay (100); //Attendre la fin de la transmission
while (bluetooth.available()) bluetooth.read(); // Vider le buffer bluetooth, s'il reste des caractères
}

// Affichage de la couleur
analogWrite(PinRouge, rouge); // Afficher sur l'interface PinRouge la valeur rouge reçue en Bluetooth
analogWrite(PinVert, vert); // Afficher sur l'interface PinVert la valeur vert reçue en Bluetooth
analogWrite(PinBleu, bleu); // Afficher sur l'interface PinBleu la valeur bleu reçue en Bluetooth

}
Piloter une LED RGB en Bluetooth

Il ne vous reste plus qu’à vous connecter à votre module Bluetooth à l’aide de votre smartphone. Une fois les deux périphériques associés, vous pouvez lancer l’application et tester la mise en place d’une couleur !

5 commentaires

  1. Bonjour,

    J’ai un message d’erreur à la compilation du code Arduino pour le pilotage LED
    pour toutes les couleurs j’ai:
    error ‘bleu’ was not declared in this scope

    Avez vous testé avec le même message?

Rejoignez la conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.