Capteur colorimétre

Bonjour,

Je souhaite réaliser un colorimètre pour mesurer l'absorbance d'une solution chimique.
Assez classique je pense.
Le problème c'est que je n'arrive pas à trouver un couple LED > Capteur Stable.
J'ai testé plusieurs capteurs mais la mesure de la luminosité n'est pas stable.
TSL2591 (lux sensor)
TCS34725 (RGB Sensor)
Je vais tester avec d'autres LED pour voir si cela ne vient pas des LED.
Pour le moment, je teste avec des LED blanches.

J'ai deux autres capteurs que je n'arrive pas à tester correctement, mais je ne suis pas certain que cela fera plus l'affaire.
TSL235R
BPW21 Photodiode

Est-ce que vous auriez des pistes pour m'éclairer ?
Quel serait le meilleur capteur pour mesurer la luminosité et en déduire l'absorbance ?
Est-ce que les LED sont suffisamment stable ?
Un grand MERCI par avance
Christophe

Bonjour

J'ai testé plusieurs capteurs mais la mesure de la luminosité n'est pas stable.

Schémas de câblages (y compris l'alimentation des leds blanches) ? Programmes utilisés ? Environnement lumineux des expériences ?

  • essaies décrire la nature de l'instabilité constatée... comment se répartissent les mesures obtenues...

Kiristo:
Bonjour,

Je souhaite réaliser un colorimètre pour mesurer l'absorbance d'une solution chimique.
Assez classique je pense.
Le problème c'est que je n'arrive pas à trouver un couple LED > Capteur Stable.
J'ai testé plusieurs capteurs mais la mesure de la luminosité n'est pas stable.
TSL2591 (lux sensor)
TCS34725 (RGB Sensor)
Je vais tester avec d'autres LED pour voir si cela ne vient pas des LED.
Pour le moment, je teste avec des LED blanches.

J'ai deux autres capteurs que je n'arrive pas à tester correctement, mais je ne suis pas certain que cela fera plus l'affaire.
TSL235R
BPW21 Photodiode

Est-ce que vous auriez des pistes pour m'éclairer ?
Quel serait le meilleur capteur pour mesurer la luminosité et en déduire l'absorbance ?
Est-ce que les LED sont suffisamment stable ?
Un grand MERCI par avance
Christophe

bonjour
Une mesure un peu sérieuse d’absorbance spectrale (quel que soit le domaine) ne peut se concevoir déjà sans references spectrales admises/admissibles :grin: de la source "illuminante référente"

Apres , le(s) couple(s) source/recepteur doit necessairement etre vérifié étalonné /calibré pour retourner de l'info
cohérente/exploitable

un capteur assez sympa RGB
http://www.kingbright.com/attachments/file/psearch/000/00/00/KPS-5130PD7C(Ver.14).pdf

Merci pour vos réponses,
Voila le programme ci-dessous.
J'utilse un capteur TSL291

avec le montage par défaut présenté + 1 LED pour éclairer en pin13

J'ai ré-essayé avec une autre led (vert cette fois : http://www.conrad.fr/ce/fr/product/1573726/LED-5-mm-TRU-COMPONENTS-1573726-vert-rond-18000-mcd-15-20-mA-32-V-1-pcs)
J'obtiens de meilleurs résultats mais il faut que je reste en gain mini : tsl.setGain(TSL2591_GAIN_LOW);
Dès que j'augmente le gain, les valeurs lux fluctuent de +/-2lux.
J'ai intégré la LED et le capteur en face à face dans une boite en bois fermée.

Après je ne sais pas si on peut faire mieux et si cela sera suffisant pour un colorimètre.

Merci

/**************************
/* TSL2591 Digital Light Sensor /
/
Dynamic Range: 600M:1 /
/
Maximum Lux: 88K */

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_TSL2591.h"

// Example for demonstrating the TSL2591 library - public domain!

// connect SCL to I2C Clock
// connect SDA to I2C Data
// connect Vin to 3.3-5V DC
// connect GROUND to common ground

Adafruit_TSL2591 tsl = Adafruit_TSL2591(2591); // pass in a number for the sensor identifier (for your use later)

int pinLed=13;

/* */
void setup(void)
{
Serial.begin(9600);
Serial.println(F("Starting Adafruit TSL2591 Test!"));
if (tsl.begin())
{
Serial.println(F("Found a TSL2591 sensor"));
}
else
{
Serial.println(F("No sensor found ... check your wiring?"));
while (1);
}

/* Configure the sensor */
configureSensor();

/LED/
pinMode(pinLed,OUTPUT); //led pin 13
digitalWrite(pinLed,HIGH);
}

void loop(void)
{
//digitalWrite(pinLed,HIGH); //Allume LED
//delay(500); //Attente
advancedRead(); //Lecture
//digitalWrite(pinLed,LOW);
//delay(500);
}

/* Configures the gain and integration time for the TSL2591 */
void configureSensor(void)
{
// You can change the gain on the fly, to adapt to brighter/dimmer light situations
tsl.setGain(TSL2591_GAIN_LOW); // 1x gain (bright light)
//tsl.setGain(TSL2591_GAIN_MED); // 25x gain
//tsl.setGain(TSL2591_GAIN_HIGH); // 428x gain

// Changing the integration time gives you a longer time over which to sense light
// longer timelines are slower, but are good in very low light situtations!
tsl.setTiming(TSL2591_INTEGRATIONTIME_100MS); // shortest integration time (bright light)
// tsl.setTiming(TSL2591_INTEGRATIONTIME_200MS);
//tsl.setTiming(TSL2591_INTEGRATIONTIME_300MS);
// tsl.setTiming(TSL2591_INTEGRATIONTIME_400MS);
//tsl.setTiming(TSL2591_INTEGRATIONTIME_500MS);
// tsl.setTiming(TSL2591_INTEGRATIONTIME_600MS); // longest integration time (dim light)
}

/* Show how to read IR and Full Spectrum at once and convert to lux */
void advancedRead(void)
{
// More advanced data read example. Read 32 bits with top 16 bits IR, bottom 16 bits full spectrum
// That way you can do whatever math and comparisons you want!
uint32_t lum = tsl.getFullLuminosity();
uint16_t ir, full;
ir = lum >> 16;
full = lum & 0xFFFF;
Serial.print(F("[ ")); Serial.print(millis()); Serial.print(F(" ms ] "));
Serial.print(F("IR: ")); Serial.print(ir); Serial.print(F(" "));
Serial.print(F("Full: ")); Serial.print(full); Serial.print(F(" "));
Serial.print(F("Visible: ")); Serial.print(full - ir); Serial.print(F(" "));
Serial.print(F("Lux: ")); Serial.println(tsl.calculateLux(full, ir), 6);
}

Quand tu veux poster du code sur ce forum il faut le mettre entra balises 'code' (icône </>)
Voir les consignes dans les messages épinglés en tête de forum

Dès que j'augmente le gain, les valeurs lux fluctuent de +/-2lux.

  1. ça représente quel % de la valeur moyenne ?

  2. Que donne l'augmentation du temps d'intégration ?

  3. comment est fixé le courant d'alimentation de la LED ? (Elle n'est quand même pas reliée directement à la sortie du microcontrolleur....)

  • Il n'est pas interdit de filtrer un peu en accumulant plusieurs mesures et en faisant la moyenne

Après je ne sais pas si on peut faire mieux et si cela sera suffisant pour un colorimètre.

pour savoir si cela sera suffisant il faut mettre le montage en situation

Voila quelques mesures au augmentant à 300ms et Gain x25 :

[ 100378 ms ] IR: 278 Full: 4388 Visible: 4110 Lux: 213.905151
[ 100742 ms ] IR: 278 Full: 4386 Visible: 4108 Lux: 213.796356
[ 101105 ms ] IR: 278 Full: 4391 Visible: 4113 Lux: 214.068359
[ 174974 ms ] IR: 279 Full: 4407 Visible: 4128 Lux: 214.849533
[ 175339 ms ] IR: 279 Full: 4404 Visible: 4125 Lux: 214.686340
[ 175703 ms ] IR: 279 Full: 4404 Visible: 4125 Lux: 214.686340
[ 176066 ms ] IR: 279 Full: 4405 Visible: 4126 Lux: 214.740737

Grosso modo 1lux / 214 = <0.5%

Pour le coup la led est branchée directement sur l'arduino et l'arduino alimentée en usb.
quelle est la bonne pratique puisque tu sembles dire que ce n'est pas ce qu'il faut faire ?

Merci

"L'instabilité" serait donc de l'ordr de 1% de la valeur.......vois tu souvent des mesures brutes (non filtrées) varier moins ??

Comme indiqué si cette petite variation te gènes tu peux la masquer en partie en accumulant x mesures et en calculant la moyenne.

Comment relier une led à une sortie Arduino (avec une résistance série ) ?
Tuto du blog d'Eskimon recommandé dans les messages épinglés en tête du forum

OK merci,
La LED est bien en série avec une résistance.
Je vais continuer effectivement en faisant plusieurs mesures pour avoir une moyenne.
Merci