Commander une LED RGB via le Serial Monitor

Bonjour tout le monde,
je suis actuellement en Terminale STI2D SIN, et pour le bac, nous devons faire un projet.
Je dois créer un projecteur, de type LYRE 25. Nous avons pour objectif de commander ce projecteur via une application, à l’aide d’un shield bluetooth.
J’ai quelques problèmes, je vais commencer par le premier, la commande de couleur des LEDs RGB.
J’aimerai pouvoir changer la couleur via le Serial Monitor pour l’instant, l’application n’étant pas encore terminé.
Voici le programme

const int ledRouge=5; 
const int ledVert=6; 
const int ledBleu=7; 
int rouge=0;
int vert=0;
int bleu=0;
int ReceptionOctet=0;



void setup()   { 
 pinMode (ledVert,OUTPUT); 
 pinMode (ledRouge,OUTPUT); 
 pinMode (ledBleu,OUTPUT); 
Serial.begin(115200);

} 
void loop(){ 


 while (Serial.available()>0) { 

    ReceptionOctet= Serial.read(); 
    ReceptionOctet=ReceptionOctet-48;
    if ((ReceptionOctet>=0)&&(ReceptionOctet<=9))     rouge = (rouge*10)+ReceptionOctet;
   

    delay(1);

  }


   while (Serial.available()>0) { 

    ReceptionOctet= Serial.read(); 
    ReceptionOctet=ReceptionOctet-48;
    if ((ReceptionOctet>=0)&&(ReceptionOctet<=9))     vert = (vert*10)+ReceptionOctet;
    
    delay(1); 
   }


  { while (Serial.available()>0) { 

    ReceptionOctet= Serial.read(); 
    ReceptionOctet=ReceptionOctet-48; 

    if ((ReceptionOctet>=0)&&(ReceptionOctet<=9))     bleu = (bleu*10)+ReceptionOctet;
 
    delay(1); 
  }
  }
  Serial.println(rouge);
  Serial.println(vert);
  Serial.println(bleu);
  delay(500);
  analogWrite(ledRouge,rouge);
analogWrite(ledVert,vert);
analogWrite(ledBleu,bleu);
  
}

Ce que j’aimerai faire, c’est pouvoir changer les 3 valeurs via le Serial Monitor, en tapant “255, 127,189” par exemple, et que j’obtienne la couleur qui correspond à ce code RGB.
Hors ici, lorsque que je tape 255, la LED devient rouge, le serial monitor affiche :
255
0
0
Et lorsque je tape un deuxième nombre, le premier nombre qui s’affiche est du genre -6000
Quelles modifications devrait-je apporter à mon programme pour que je puisse configurer les 3 nombres ?
Merci d’avance.

Salut,

Pour le coup ça va être difficile de mieux te répondre :
http://www.cs.unca.edu/bruce/Spring13/180/ASKManualRev5.pdf ==> page 58

Bonjour,

Trois ParseInt() à la place de tes trucs à base de puissance de 10 et le problème est réglé :wink: