Probleme detection de couleur avec capteur

Bonjour,

Je suis un étudiant en 2ème année de GEII, et dans le cadre de mon projet, je dois réaliser un programme pour afficher sur le moniteur série le nom de la couleur détectée avec l’aide d’un capteur TSC3200.

J’utilise alors une carte Arduino Mega, et voici le programme que j’essaie de rentrer:

// LCD Keypad Shield

#include <LiquidCrystal.h>

// Création de l’objet lcd (avec les différents ports numériques qu’il utilise)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Variables
int lcd_key = 0;
int adc_key_in = 0;

// Constantes
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5

//Capteur couleur
#define S0 19
#define S1 18
#define S2 17
#define S3 16
#define sensorOut 15
int frequency = 0;
int ValeurR = 0;
int ValeurG = 0;
int ValeurB = 0;
int ValeurRG = abs(ValeurR - ValeurG);
int ValeurGB = abs(ValeurG - ValeurB);
int ValeurBR = abs(ValeurB - ValeurR);
int ValeurRGB = abs(ValeurRG - ValeurGB - ValeurBR);

void setup() {
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(sensorOut, INPUT);

// Setting frequency-scaling to 20%
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);

Serial.begin(9600);

lcd.begin(16, 2); // Démarrage de l’écran
lcd.setCursor(0,0); // Positionnement du curseur au début
lcd.print(“Test:couleur”); // Message
}

void loop() {
{

// Setting red filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
//Remaping the value of the frequency to the RGB Model of 0 to 255
ValeurR = map(frequency, 25,72,255,0);
// Printing the value on the serial monitor
Serial.print("R= “);//printing name
Serial.print(ValeurR);//printing RED color frequency
Serial.print(” ");

// Setting Green filtered photodiodes to be read
digitalWrite(S2,HIGH);
digitalWrite(S3,HIGH);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
//Remaping the value of the frequency to the RGB Model of 0 to 255
ValeurG = map(frequency, 30,90,255,0);
// Printing the value on the serial monitor
Serial.print("G= “);//printing name
Serial.print(ValeurG);//printing RED color frequency
Serial.print(” ");
delay(100);

// Setting Blue filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,HIGH);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
//Remaping the value of the frequency to the RGB Model of 0 to 255
ValeurB = map(frequency, 25,70,255,0);
// Printing the value on the serial monitor
Serial.print("B= “);//printing name
Serial.print(ValeurB);//printing RED color frequency
Serial.println(” ");
delay(100);

if (ValeurR<=0 && ValeurG<=0 && ValeurB<=0)
{
Serial.print("NOIR ");
delay(100);
}
else if (ValeurRGB<=10)
{
Serial.print("BLANC ");
delay(100);
}
else if (ValeurR>ValeurG && ValeurR>ValeurB && ValeurRGB>10)
{
Serial.print("ROUGE ");
delay(100);
}
else if (ValeurG>ValeurR && ValeurG>ValeurB && ValeurRGB>10)
{
Serial.print("VERTE ");
delay(100);
}
else if (ValeurB>ValeurR && ValeurB>ValeurG && ValeurRGB>10)
{
Serial.print("BLEU ");
delay(100);
}

Ce programme contient alors plusieurs variables:
-ValeurR pour la couleur rouge
-ValeurG pour la couleur verte
-ValeurB pour la couleur bleue
-ValeurRG : valeur absolue de la différence entre ValeurR et ValeurG
-ValeurGB : valeur absolue de la différence entre ValeurG et ValeurB
-ValeurBR : valeur absolue de la différence entre ValeurB et ValeurR
-ValeurRGB : valeur absolue de la différence entre ValeurRG, ValeurGB et ValeurBR

Ce programme a pour but de détecter les 5 couleurs Rouge, Vert, Bleu, Noir et Blanc. A la base, j’étais supposé faire afficher le nom de la couleur sur un écran LCD également connecté avec la carte Arduino, mais je préfere d’abord avancer étape par étape et vérifier si mon algorithme fonctionne.

Cependant, après avoir compilé et téléversé mon programme, lorsque je fait détecter les 5 couleurs par le capteur avec des filtres, le moniteur série n’affiche que “BLANC” peu importe les valeurs de couleurs RGB, ou noir dans le cas où les valeurs RGB sont inférieurs ou égales à 0:

Quelqu’un pourrait-il m’aider à régler ce problème aussi vite que possible ?!

Merci d’avance !

pas de doublons sur ce forum

l'autre message a été déjà été délplacé ici :

+tenir compte (aussi vite que possible...) de la demande sur la manière de présenter le code adns le corps du message (balises appropriées)