Bon et bien je n'ai pas lâché l'affaire et j'ai réussi ! J'ai trouvé comment changer le char en const char c'est des trucs tout bête mais qui peuvent prendre du temps à un débutant..
Je suis maintenant capable d'allumer une LED RGB de la même couleur que l'objet qui ce trouve devant le détecteur ! Enfin même couleur, je me trouve quand même pas mal limité dans la gamme de couleur et la led tire un peu trop sur le bleu. en tout cas voici mon code : (il est sujet à être améliorer selon moi... et n'hésitez à donner votre avis pour que je puisse l'améliorer)
#include <SoftwareSerial.h>
SoftwareSerial Color90(2, 3);
const int buttonPin = 7;
int buttonState = 0;
int range = 0;
char rByte[9];
int Red = 9;
int Green = 11;
int Blue = 10;
//valeur RGB de la led
int r = 0;
int g = 0;
int b = 0;
int xx ;
int yy ;
int zz ;
/*====================================================
/ Connect ColorPAL SIG signal to Arduino pin 2 and 3
/ Baud Rate = 9600 kbps
/
/====================================================*/
void setup()
{
Serial.begin(9600);
Color90.begin(4800);
pinMode(Red,OUTPUT);
pinMode(Green,OUTPUT);
pinMode(Blue,OUTPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);
digitalWrite(2,HIGH); // Enable the pull-up resistor
digitalWrite(3,HIGH); // Enable the pull-up resistor
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
pinMode(2,INPUT);
pinMode(3,INPUT);
Serial.println("Pass 1");
while( digitalRead(2) != HIGH || digitalRead(3) != HIGH ) {
Serial.println("In the loop");
delay(50);
}
Serial.println("Pass 2");
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
delay(80);
pinMode(2,INPUT);
pinMode(3,OUTPUT);
delay(100);
}
//---------------------------------
void loop()
{
//lecture de l'état du bouton
buttonState = digitalRead(buttonPin);
analogWrite(Red,xx);
analogWrite(Green,yy);
analogWrite(Blue,zz);
if(buttonState == HIGH){
range = 1;
}
if(range == 1){
//Serial.print("etat: 1\n");
Color90.begin(4800);
Color90.print("= (00 $ m)!");
pinMode(3,INPUT);
rByte[0] = Color90.read();
if( rByte[0] == '
Et vous pouvez voir ce que ça donne sur youtube
) {
for(int i=0; i<9; i++) {
rByte[i] = Color90.read();
rByte[0] = *" ";
rByte[3] = *" ";
rByte[6] = *" ";
Serial.print(rByte[i]);
if(i == 8){
range = 2;
Serial.print("\n");
}
}
//Serial.println();
}
}
if(range == 2){
sscanf(rByte, "%x %x %x", &xx, &yy, &zz);
Serial.print(xx);
Serial.print(" ");
Serial.print(yy);
Serial.print(" ");
Serial.print(zz);
Serial.print("\n");
range = 0;
}
}
Et vous pouvez voir ce que ça donne sur youtube :)
http://www.youtube.com/watch?v=ckiKDRLtdks