pepe:
BonjourLa première chose à faire avant d'utiliser un matériel, c'est de lire la documentation qui le concerne afin de savoir comment l'utiliser et chercher à comprendre comment il fonctionne.
La recherche documentaire est rapide. En moins d'une minute, on peut trouver :
- le schéma du module, sur lequel figure la référence des composants et leur branchement,
- la datasheet du capteur TCS34725,
- la datasheet du modèle led utilisé,
- la datasheet du transistor BSS138 qui pilote la led,
- le code source de la bibliothèque Adafruit_TCS34725,
- etc.
On peut tout d'abord constater que la seule entrée susceptible de faire varier la luminosité de la led est la broche LED_EN (#7).
Toutefois, une commande directe par PWM ne semble pas convenir. En effet, comme celle-ci se contente d'allumer et d'éteindre la led très rapidement avec un rapport cyclique réglable, il faut s'attendre à ce que la led se retrouve complètement allumée ou bien complètement éteinte, aléatoirement, chaque fois que le capteur fait une mesure. Quand bien même ce clignotement mènerait à réduire l'amplitude des mesures finales, cette réduction ne peut pas être finement contrôlée du fait de la désynchronisation entre le signal PWM et le processus de mesure, et cela ne règle pas le problème d'éblouissement instantané du capteur. Bref, au mieux, les mesures risquent d'être faussées en partie.
Il me semble qu'une commande par une tension continue serait plus indiquée. Ceci pourrait être réalisé à l'aide d'un signal PWM suivi d'un filtre passe-bas (avec une résistance et condensateur, par exemple).
Mais on peut également lire dans la datasheet du TCS34725 que la sensibilité du capteur peut être réglée logiciellement, en agissant sur le temps d'intégration (de 2,4 ms à 700 ms) et le gain (x1, x4, x16 ou x60).
Ces deux paramètres sont accessibles dans ton programme au moment de l’instanciation de Adafruit_TCS34725 :
[size=9pt] Adafruit_TCS34725 tcs = Adafruit_TCS34725([color=#b00000]TCS34725_INTEGRATIONTIME_[b]50MS[/b][/color], [color=#0000b0]TCS34725_GAIN_[b]4X[/b][/color]); [/size]Un réglage correct de ces paramètres pourrait peut-être déjà résoudre le problème de trop forte sensibilité du capteur.
Une fois l'instanciation réalisée, on peut encore modifier les deux paramètres, séparément, à l'aide des méthodes setIntegrationTime() et setGain() :
void setIntegrationTime(tcs34725IntegrationTime_t it);
void setGain(tcs34725Gain_t gain);
Les valeurs à leur passer en paramètre sont des nombres entiers, définis comme suit :typedef enum
{
TCS34725_INTEGRATIONTIME_2_4MS = 0xFF, /< 2.4ms - 1 cycle - Max Count: 1024 */
TCS34725_INTEGRATIONTIME_24MS = 0xF6, /< 24ms - 10 cycles - Max Count: 10240 */
TCS34725_INTEGRATIONTIME_50MS = 0xEB, /< 50ms - 20 cycles - Max Count: 20480 */
TCS34725_INTEGRATIONTIME_101MS = 0xD5, /< 101ms - 42 cycles - Max Count: 43008 */
TCS34725_INTEGRATIONTIME_154MS = 0xC0, /< 154ms - 64 cycles - Max Count: 65535 */
TCS34725_INTEGRATIONTIME_700MS = 0x00 /< 700ms - 256 cycles - Max Count: 65535 */
}
tcs34725IntegrationTime_t;typedef enum
{
TCS34725_GAIN_1X = 0x00, /< No gain */
TCS34725_GAIN_4X = 0x01, /< 4x gain */
TCS34725_GAIN_16X = 0x02, /< 16x gain */
TCS34725_GAIN_60X = 0x03 /< 60x gain */
}
tcs34725Gain_t;La sensibilité minimale peut donc être obtenue dès le départ en écrivant :Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_2_4MS, TCS34725_GAIN_1X);
ou par la suite en écrivant :tcs.setIntegrationTime(TCS34725_INTEGRATIONTIME_2_4MS);
et :tcs.setGain(TCS34725_GAIN_1X);
Oui j'avais lu la doc sur ce capteur mais j'avais rien trouvé comme port pouvant faire varier l'intensité de cette Led
En plus mon prof nous a donné aucune formation sur arduino qui est pourtant super interréssant je trouve mais mon code ne vient meme pas de moi et meme si je sais expliquer les differentes fonctions que j'utilise je ne connait pas toutes les autres fonctions il va falloir que je me trouve un moment pour apprendre tous ça ...
Merci beaucoup des conseils, malheureusement je ne pourrais pas tester ce que vous m'avez dis avant mardi car je n'ai pas accés au matériel chez moi et il faut donc que je fasse ça pendant mes heures de projet en cours ...
Je vous tiendrai au courant de tous ça surement mardi soir...
Mais merci beaucoup d'avoir pris le temps de me répondre ![]()