Constater, c'est bien, mesurer, c'est mieux. Je dois avoir quelque part le capteur utilisé dans les Sky Quality Meter mais impossible de remettre la main dessus. J'ai donc commandé sur eBay quelque chose de plus ou moins équivanet, un TSL230R qui convertit lui-aussi le flux lumineux en fréquence. Le premier composant avait 3 pattes, celui-ci 8 mais cela reste raisonnable et il suffit simplement de connecter toutes les pattes (sauf une) à VDD ou à la terre pour obtenir un signal plus ou moins carré en sortie. Je dis plus ou moins parce qu'en fait, ce n'est a priori pas très stable. Il y a, comme qui dirait, un 'jitter' important. Je ne sais pas si c'est dû à l'approximation de mon montage sur une plaquette d'expérimentation (breadboard), si c'est une propriété de ce composant en particulier ou à ce type de composant en général. D'abord observé à l'oscillo, j'ai bien un signal dont la fréquence varie avec le flux lumineux. Bien.
Maintenant, ce qui m'intéresse, c'est de voir comment cela évolue dans le temps. Pour cela, j'ai utilisé un clone Saleae Logic avec PulseView de sigrok (ici, à la lumière du jour). Un petit bidule génial de quelques euros qui échantillonne jusqu'à 24 MHz. En fait, c'est juste un microcontrolleur Cypress EZ-USB FX2LP qui envoie l'état des portes sur l'USB.
Mais, pour pouvoir suivre l'évolution dans le temps, rien ne vaut la ligne de commande.
while true do sigrok-cli --driver fx2lafw --samples 1m --config samplerate=1m --channels D0=x --output-format bits \ |./count01 > AlSr.`now`.txt; sleep 9; done
À la lumière du jour, sigrok-cli donne :
$ sigrok-cli --driver fx2lafw --samples 1m --config samplerate=1m --channels D0=x --output-format bits libsigrok 0.5.0 Acquisition with 1/9 channels at 1 MHz x:11100001 11111000 00011111 00000111 11000000 11110000 00111111 00001111 x:11000011 11110000 00111111 00001111 11000011 11110000 00111110 00001111 x:10000001 11110000 01111110 00001111 10000001 11100000 01111110 00011111 x:10000001 11100000 01111110 00011111 10000011 11110000 01111100 00001111 x:10000011 11110000 01111100 00001111 10000011 11110000 01111100 00001111 x:10000011 11110000 01111100 00001111 10000011 11110000 01111110 00001111 ...On compte 5 '1' suivis de 5 '0'. Avec un millionième de seconde par échantillon, cela donne une période de 10 millionnième de seconde, soit une fréquence de 100 kHz.
Maintenant, plaçons le gravier sur le TSL230R, mettons le tout dans le noir le plus total (un couvercle noir sous un T-shirt noir) et observons l'évolution.
Et nous obtenons, comme attendu, une belle décroissance exponentielle.
Ce qui est amusant, c'est ma configuration avec le petit programme 'count01' ne fonctionne plus quand la fréquence s'approche du herz. En fait, je demande au Cypress fx2lafw de me fournir un million d'échantillons de D0 à un million d'échantillons par seconde et 'count01' compte les nombres de '0' et de '1' consécutifs. Quand la fréquence approche du herz, il n'y a plus de transition '0' vers '1' et '1' vers '0' et je n'arrive donc plus à mesurer la demi-période. Cependant, dans le noir, on distingue encore une faible phosphorescence.
Il faudrait adapter le programme pour mesurer les (très) faibles intensités. Après tout, si ce genre de composant est capable de mesurer la noirceur d'un ciel astronomique, il doit toujours fonctionner bien en dessous du herz.
À noter que le temps de chargement ne semble pas affecter le temps de rémanence. 'core.freq' est obtenu après avoir éclairé le caillou pendant 10 secondes avec un lampe de poche LED pas très puissante. 'core2.freq', c'est environ une minute avec un spot LED beaucoup plus puissant. Le résultat semble quasi identique.
On trouve une thèse, Phosphorescence : mécanismes et nouveaux matériaux de Frédéric Clabau (Nantes, 2005), sur ce type de matériau.
Ci-dessous, l'évolution sur plusieurs recharges. D'abord une dizaine de seconde sur le caillou qui a pris la lumière toute la journée. Une courte recharge de quelques secondes et une recharge de près d'une minute et une dizaine de seconde après une longue décharge d'environ 9 heures (5 heures retirées du graphe). Chaque tic vaut 10 secondes.
En principe, toutes les 10 secondes, on perd x % de luminosité. Comme la fréquence est proportionnelle au flux lumineux, f(t)/f(t-10sec) devrait être constant.
Et ce n'est pas tout-à-fait le cas... C'est dû au manque de stabilité du signal (dont j'ignore toujours la source) et à la méthode de mesure : je calcule la moyenne des périodes pendant une seconde toutes les 10 secondes. Au début, j'ai beaucoup de mesures courtes mais cela n'a pas beaucoup de sens de calculer une moyenne sur une exponentielle et à la fin, je n'ai plus assez de mesures pour pouvoir faire une moyenne convenable et la dispersion correspond à l'instabilité du signal... Je viens de commander un Adafruit TSL2591, ce sera peut-être meilleur...
À suivre...