LE MODULE CAPTEUR DE COULEUR V2.0
Le module capteur de couleur comporte un circuit intégré TCS3472 délivrant 4 valeurs numériques relatives à la couleur détectée. Ces 4 valeurs sont :
-
la composante rouge (filtrée)
-
la composante verte (filtrée)
-
la composante bleue (filtrée)
-
la composante de clarté (sans filtre)
Avec ce module, nous pouvons mesurer la chromaticité de la couleur de la lumière ambiante lorsque la led du module est éteinte ou la couleur des objets lorsque la led du module est allumée.
Ce module doit être relié à un connecteur I2C de la base.
La bibliothèque gérant ce module est téléchargeable ici et ses principales fonctions sont :
-
Adafruit_TCS34725 capteur = Adafruit_TCS34725(). Cette fonction permet de créer l'objet.
-
capteur.begin() initialise l'objet.
-
capteur.getRawData(&r, &g, &b, &c) permet d'acquérir les 4 valeurs délivrées par le capteur..
-
capteur.calculateColorTemperature(r, g, b) où r, g, b représentent les composantes RGB de la couleur. Cette fonction permet de calculer la température de la couleur.
-
capteur.calculateLux(r, g, b) permet de calculer le flux lumineux.
Exemple :
Nous souhaitons afficher dans le moniteur série les 4 composantes délivrées par le module, la température de la couleur et le flux lumineux .
Liste du matériel :
-
1 base RIP
-
1 module capteur de couleur "Grove" avec support RIP
Câblage :
Module "Grove"
Module capteur de couleur
Connecteur Base
I2C
Programme :
/* Couleur_Grove est un programme qui affiche les 4 composantes, la température de la couleur et le flux lumineux*/
#include <Wire.h> // appel des bibliothèques
#include "Adafruit_TCS34725.h"
int r;
int g;
int b;
int c;
int temp;
int flux;
Adafruit_TCS34725 capteur = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X); // création de l'objet capteur
void setup()
{
Serial.begin(9600); // initialisation du moniteur série
capteur.begin(); // initialisation du capteur
}
void loop()
{
capteur.getRawData(&r, &g, &b, &c); // acquisition des 4 valeur de la température
temp = capteur.calculateColorTemperature(r, g, b); // calcul de la température
flux = capteur.calculateLux(r, g, b); // calcul du flux
Serial.print("R: ");
Serial.print(r, DEC);
Serial.print(" ");
Serial.print("G: ");
Serial.print(g, DEC);
Serial.print(" ");
Serial.print("B: ");
Serial.print(b, DEC);
Serial.print(" ");
Serial.print("C: ");
Serial.print(c, DEC);
Serial.println(" ");
Serial.print("Temperature: ");
Serial.print(temp, DEC);
Serial.println(" degre Kelvin");
Serial.print("Flux: ");
Serial.print(flux, DEC);
Serial.print(" lux");
Serial.println(" ");
Serial.println(" ");
delay(1000);
}