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);
}
}
}
Génial, depuis le temps que je devais le faire !
Bravo