Bonjour à tous,
nous sommes des lycées actuellement en train de travailler sur un projet,
et nous projetons d'utiliser le détecteur de couleurs TCS3200. Voici notre code actuel :
[code]
//définition des pins
#define S0 (mettre pin)
#define S1 (mettre pin)
#define S2 (mettre pin)
#define S3 (mettre pin)
#define sensorOut (mettre pin)
//initialisation de la variable fréquence
int frequence = 0;
void setup() {
//définition des pins comme sorties ou entrées
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(sensorOut, INPUT);
//fréquence échelonnée à 20%
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
Serial.begin(9600);
}
void loop() {
// préparer les photodiodes "rouge"
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
//lire la frréquence de sortie
frequence = pulseIn(sensorOut,LOW);
//redéfinition de la fréquence sur le modèle RGB de 0 à 255
frequence = map(frequence, //fréquence mini, //fréquence maxi,255,0);
//afficher la valeur sur le moniteur série
Serial.print("R=");
Serial.print(frequence);
Serial.print(" ");
delay(100);
//préparer les photodiodes "vert"
digitalWrite(S2,HIGH);
digitalWrite(S3,HIGH);
//lire la fréquence de sortie
frequence = pulseIn(sensorOut, LOW);
//redéfinition de la fréquence sur le modèle RGB de 0 à 255
frequence = map(frequence, //fréquence mini, //fréquence maxi,255,0);
//afficher la valeur sur le moniteur série
Serial.print("G=");
Serial.print(frequence);
Serial.print(" ");
delay(100);
//préparer les photodiodes "rouge"
digitalWrite(S2,LOW);
digitalWrite(S3,HIGH);
//lire la fréquence de sortie
frequence = pulseIn(sensorOut, LOW);
//redéfinition de la fréquence sur le modèle RGB de 0 à 255
frequence = map(frequence, //fréquence mini, //fréquence maxi,255,0);
//afficher la valeur sur le moniteur série
Serial.print("B=");
Serial.print(frequence);
Serial.println(" ");
delay(100);
}
[/Code]
Remarquez qu'il nous manque encore certaines valeurs, nous n'avons pas encore acheté le détecteur, et donc nous n'avons pu faire de tests.
Nous avons donc un code qui arrive à détecter la couleur et afficher les valeurs RGB dans le moniteur de série. C'est déjà bien, mais pour notre projet, nous aimerons récupérer ces valeurs, les comparer avec des valeurs de base (avec une certaine marge) pour ensuite faire différentes actions en fonction de la couleur détectée. J'espère avoir été assez clair...
Merci en avance de votre aide
PS : Est-ce vraiment nécessaire d'afficher les valeurs sur le moniteur de série, ou peut-on directement les exploiter, même si dans ce cas je suppose qu'il vaudrait mieux créer trois variables "frequence" différentes ?