Conseils Capteur Lumière avec Arduino

Bonjour,

J'ai un petit projet à faire en entreprise, j'ai déjà fais pas mal de chose sur se qui est le capteur à effet hall ect.. ( j'avais posté aussi un topic puisque je bloquais sur l'une de ses partis )

Mais me revoilà pour un détail. Actuellement j'ai 4 LEDS que je dois contrôler sur une carte. Ma première idée à tout simplement été de prendre des photorésistances, mais cela me paraît être une mauvaise idée puisque ses LEDS éclaire assez fortement donc la résistance de ma photo risque de beaucoup trop diminué trop vite et donc je risque de ne pas voir de différence entre ma LED qui éclaire normalement et une autre qui n'éclaire pas assez ou trop qui sais.

Sachant que c'est 4 LEDS sont presque collée c'est à dire à environ 1 cm d'espace entre chaque LEDS et tout ça en forme de rond. Donc le mieux serais de les isolés chacune lors de mon test sinon certaine pourrais induire en erreurs si l'une éclaire plus et qu'une autre éclaire moins alors je ne verrais pas de différence.

Avez-vous des idées de capteur de lumière à utiliser avec mon Arduino Uno ? Pour se qui serais de les isolés cela dépend de la solutions ( exemple : si je reste sur les photorésistances alors je ferais en sorte de mettre une photo au dessus de chaque LEDS avec une gaine qui va envelopper la LED histoire de ne pas être gêné part la lumière de la pièce et les autres LEDS

J'espère avoir été assez claire ^^

Merci d'avance :slight_smile:

Pour ma part je pense que gainer chaque LED avec sa photorésistance sera plus aisé qu'un capteur de lumière qui se présente généralement sous forme de module.

Ici un BH1750 :

Voir 5. Les capteurs de luminosité

Tu veux faire quoi exactement avec tes 4 leds ? Est ce qu'elles sont identiques (même modèles) ?

Tu peux les piloter indépendamment ?

BrUnO14200:
Tu veux faire quoi exactement avec tes 4 leds ? Est ce qu'elles sont identiques (même modèles) ?

Tu peux les piloter indépendamment ?

Les 4 LEDS sont identiques, et je peux les piloter que toutes en même temps ( je vais faire quelque test pour vérifier :slight_smile: )

Je veux juste les allumer, et que un capteur puisse m'indiquer leur puissance et ainsi transmettre ça à l'arduino pour que le test sois bon ou mauvais.

hbachetti:
Pour ma part je pense que gainer chaque LED avec sa photorésistance sera plus aisé qu'un capteur de lumière qui se présente généralement sous forme de module.

Ici un BH1750 :

RitonDuino: Les capteurs de température, humidité, pression & luminosité
Voir 5. Les capteurs de luminosité

Je vais aller jeter un coup d'oeil pour le BH1750

Avec vos 4 phoresistances, vous allez “manger” 4 voies analogiques (sur 6, dont 2 peuvent être dédiées à l’I2C) d’un UNO.
Si vous voulez detecter qu’une LED est en mauvais état (sans savoir laquelle: un oeil doit pouvoir s’en depatouiller, une fois averti) , il suffirait de mettre les LDR en serie, ne mangeant plus qu’une sele voie (on detecte alors que l’une au moins des 4 LED a une resistance anormalement haute… donc que la somme en est anormalement haute)

Ca dépend du modèle, mais il y a pas mal de dispersion dans les photorésistances "génériques" ...il va falloir prévoir de trouver un moyen pour les "calibrer" .

Si tu peux les piloter une par une , c'est plus simple .

Hikashiro:
Mais me revoilà pour un détail. Actuellement j'ai 4 LEDS que je dois contrôler sur une carte.
...

Sachant que c'est 4 LEDS sont presque collée c'est à dire à environ 1 cm d'espace entre chaque LEDS et tout ça en forme de rond. Donc le mieux serais de les isolés chacune lors de mon test sinon certaine pourrais induire en erreurs si l'une éclaire plus et qu'une autre éclaire moins alors je ne verrais pas de différence.

La cart est nue et les LED accessibles individuellement?
Dans ce cas le plus simple serait de faire une sonde outillage qui viendrait se placer sur les LED.
La sonde serait divisée en quatre à l'intérieur avec en façade une plaque percée de 4 trous qui viendraient s'emboiter sur les LED ainsi tu pourrais mesurer les 4 LED sans qu'elles se perturbent et sans être perturbé par l'éclairage ambiant.
Pour les capteurs de lumière que tu utilise des LED ou des phototransistors ne changera pas grand chose. Eventuellement, il sera peut-être nécessaire de placer un filtre devant les senseurs pour utiliser au mieux leur courbe de sensibilité.

Si tu ne peux pas emboiter la sonde sur les LED parce qu'elles ne sont pas accessibles directement les trous sur la face avant de la sonde feront un diaphragme qui limitera, un peu, les perturbations apportées par les LED voisines. La difficulté sera, dans ce cas, l'alignement correct de la sonde sur les LEDs.

dbrion06:
Avec vos 4 phoresistances, vous allez "manger" 4 voies analogiques (sur 6, dont 2 peuvent être dédiées à l'I2C) d'un UNO.
il suffirait de mettre les LDR en serie, ne mangeant plus qu'une sele voie (on detecte alors que l'une au moins des 4 LED a une resistance anormalement haute... donc que la somme en est anormalement haute)

D'accord.. donc il semblerais que je sois obligé de les mettre sur en série vu que j'utilise déjà 1 voie analogique, à moins que celle qui peuvent être dédiées à l'I2C peuvent être des voies analogiques classiques comme les 4 autres premières ?

fdufnews:
La cart est nue et les LED accessibles individuellement?
Dans ce cas le plus simple serait de faire une sonde outillage qui viendrait se placer sur les LED.
La sonde serait divisée en quatre à l'intérieur avec en façade une plaque percée de 4 trous qui viendraient s'emboiter sur les LED ainsi tu pourrais mesurer les 4 LED sans qu'elles se perturbent et sans être perturbé par l'éclairage ambiant.
Eventuellement, il sera peut-être nécessaire de placer un filtre devant les senseurs pour utiliser au mieux leur courbe de sensibilité.

Oui la carte est nue, j'ai accès à toutes les LEDS mais individuellement ? comment ça ? si je peux les allumer séparément ? Non ce n'est pas le cas il semblerait ( je vais faire des tests pour vérifier si avec les vias qu'il y a dessus j'aurais moyen de le faire individuellement.

Pour se qui est de mes LEDS je ne peux pas les allumer individuellement.

Et je relance le sujet ^^"

D'accord.. donc il semblerais que je sois obligé de les mettre sur en série vu que j'utilise déjà 1 voie analogique, à moins que celle qui peuvent être dédiées à l'I2C peuvent être des voies analogiques classiques comme les 4 autres premières ?

Si vous sacrifiez l'I2C, vous perdez beaucoup...
Comme il semblerait que vous voulez faire un diagnostic du type "une de mes LEDs est malade", plutôt qu'une mesure précise pour chacune des LEDs , la mise en série des LCR me semble le plus simple et le plus souple.

Hikashiro:
Pour se qui est de mes LEDS je ne peux pas les allumer individuellement.

Et je relance le sujet ^^"

bonjour
je prend là , le sujet
Si je résume ce que j’ai compris de ton souhait
tu veux en permanence verifier/estimer le flux lumineux emis par 4 led indépendantes de même reference pour faire un controle d’homogneité de flux entre les 4 (un pseudo controle pass/fail ) ?
Je n’ai pas compris/lu/vu si il s’agit d’un controle à implementer sur un syteme déjà existant ou si c’est du controle en (cours/fin) fabrication ?

dbrion06:
Si vous sacrifiez l'I2C, vous perdez beaucoup...
Comme il semblerait que vous voulez faire un diagnostic du type "une de mes LEDs est malade", plutôt qu'une mesure précise pour chacune des LEDs , la mise en série des LCR me semble le plus simple et le plus souple.

Je ne compte pas utiliser l'I2C sauf si je dois en avoir besoin pour faire mon IHM. (Que je ne saurais créer ^^")
Et si justement j'aimerais avoir une mesure précise pour chacune des LEDS :slight_smile:
Puisque je ne veux pas qu'une LED passe bonne alors que sont niveau déclairement n'est pas suffisant.

Artouste:
tu veux en permanence verifier/estimer le flux lumineux emis par 4 led indépendantes de même reference pour faire un controle d'homogneité de flux entre les 4 (un pseudo controle pass/fail ) ?
Je n'ai pas compris/lu/vu si il s'agit d'un controle à implementer sur un syteme déjà existant ou si c'est du controle en (cours/fin) fabrication ?

En permanence pas vraiment ^^"
Je vais juste dire à un moment à mon arduino de lire à un moment donné ma voie analogique (exemple : la 4); et juste avant j'aurais déclenché ma carte relais qui va activer le courant et allumer mes LEDS. L'arduino va recevoir la donnée si elle est bonne alors mon test LEDS Allumée passe OK.

Et il s'agit d'un contrôle à implémenter sur un système déjà existant. Le fais de l'implémenter n'est pas un problème cela est déjà fais et il me reste juste à modifier quelque élément selon la solution choisi. Mais en soi je suis en réflexion sur qu'elle solution choisir et qu'elle serais là mieux.

Petit rappel : Les leds sont d'un éclairage assez fort.

Effectivement sacrifier l'I2C pour récupérer 2 entrées mesures analogiques est pénalisant pour les évolutions futures, c'est une solution que je ne choisirais pas, il faut toujours préserver l'avenir..

La carte UNO est-elle imposée ?
Si ce n'est pas le cas une carte nano ou mini-pro fera l'affaire car elles ont le même microcontroleur que la UNO (compatibilité parfaite) et qu'en supplément leur boîtier CMS 32 broches au lieu du 28 broches de la UNO permet de disposer de 2 entrées (purement) analogiques de plus.

Il y a aussi la solution d'utiliser un convertisseur analogique digital externe qui se programme en I2C et qui sera meilleur que celui du microcontroleur..

La mise en série des LDR peut être une bonne solution à la condition que la différence de valeur de résistance entre bonne del et mauvaise del soit suffisamment importante pour que la détection se fasse franchement et sans doute possible.
Il faut rapidement évaluer la solution LDR en comparant les résultats bonne del/mauvaise del.
Raison supplémentaire pour réaliser des mesures qui permettront de valider ou d'invalider la solution.

On ne peut choisir le meilleur capteur que si on connaît les ordres de grandeur de ce que l'on veut mesurer, et actuellement je n'ai pas compris que c'était le cas.

68tjs:
La carte UNO est-elle imposée ?

Il faut rapidement évaluer la solution LDR en comparant les résultats bonne del/mauvaise del.
Raison supplémentaire pour réaliser des mesures qui permettront de valider ou d'invalider la solution.

On ne peut choisir le meilleur capteur que si on connaît les ordres de grandeur de ce que l'on veut mesurer, et actuellement je n'ai pas compris que c'était le cas.

La carte UNO n'est pas imposée donc je pourrais commander une Nano ou mini pro (la mieux si possible :wink: )

Pour se qui est de évaluer la solution LDR je n'en est pas sous la main, j'ai demandé à mon tuteur d'en commander.

Pour se qui est des ordres de grandeurs voici la datasheet des LEDS (j'ai déjà été voir mais ne comprenant pas tout j'ai peut-être raté des infos importantes).

"Et si justement j'aimerais avoir une mesure précise pour chacune des LEDS "
Si vous detectez que l'une des LEDs sort des tolérances, et que , à ce moment, un bonhomme se pointe avec un luxmètre qu'il colle sur chacune des LEDs, vous aurez une mesure très précise... et il saura quelle LED remplacer.
(c'est la difference entre le temps réel et le temps différé)....
Il y a plein de solutions en temps reel:

a) choisir un arduino mega 2560(a plus 16 voies analogiques).... vous aurez alors un champ quasi infini pour toutes les évolutions qui vous passeront par la tête.

b) mettre un DAC/CAN externe sur l'I2C: le ads1115 offre 4 voies sur 12 bits, adafruit fait une meilleure alimentation que ce qu'offre arduino (antiparasitée), on peut en mettre 3 ou 4 sur le même bus I2C (16 voies par bus) ... et on doit pouvoir trouver encore mieux...
c) celles que je n'ai pas envisagées.

A noter que l'idée de mettre en série les LDRs est ce qui se fait de moins cher.... si elle marche....

Pour se qui est des ordres de grandeurs voici la datasheet des LEDS (j'ai déjà été voir mais ne comprenant pas tout j'ai peut-être raté des infos importantes).

La valeur de la résistance de la LDR change sous l'effet des photons reçus (donc des watts)
J'ai fait de l'optique électronique pendant des dizaines d'années mais en fibre optique on ne connaît que le watt. Lire 100 lumens/watt ne me permet pas de traduire cette valeur en watt parce que je ne sais pas de quels watts on parle (probablement des watts électriques dans la jonction de la diode).
Je ne sais pas non plus convertir une température de couleur en longueur d'onde.

Donc je reste pragmatique et je dis qu'il faut faire des expériences préalables.
Ce qu'il faut connaître c'est la valeur ohmique d'une LDR en face d'une del "correcte" et en face d'une del considérée comme "non correcte".
On obtiendra des ohms qui seront plus faciles à gérer.

L'ensemble des 4 LDR en série plus une 5eme résistance formeront un pont diviseur.
Il faudra vérifier que la différence de tension en sortie en présence de 4 del correcte ou en présence de 3 bonnes et d'une mauvaise sera détectable ou pas.

Il faudrait peut être aussi la référence des LDRs que vous souhaitez acheter (voire de la/des resistances que vous voules mettre dans un/des pont(s) diviseur(s).
En passant, je ne sais pas comment est votre tuteur, mais si vous lui dites un jour:
je veux acheter des LDRs pour voir si mes LEDs marchent (c’est vrai)
un autre jour:
je veux acheter un arduino mega/ un arduino mini parce que c’est plus facile pour mettre au point et prototyper (c’est vrai)
Il pourra se lasser de remplir des bons de commande et des frais de port… (il vaut peut être mieux attendre un peu et tenter de faire une liste exhaustive)

dbrion06:
a) choisir un arduino mega 2560(a plus 16 voies analogiques).... vous aurez alors un champ quasi infini pour toutes les évolutions qui vous passeront par la tête.

b) mettre un DAC/CAN externe sur l'I2C: le ads1115 offre 4 voies sur 12 bits, adafruit fait une meilleure alimentation que ce qu'offre arduino (antiparasitée), on peut en mettre 3 ou 4 sur le même bus I2C (16 voies par bus) ... et on doit pouvoir trouver encore mieux...

A noter que l'idée de mettre en série les LDRs est ce qui se fait de moins cher.... si elle marche....

Pour se qui est de l'arduino mega 2560 j'en est un de dispo mais il me paraît assez vieux ( c'est à dire que il n'a certainement pas été très bien respecter, il est tout poussiéreux et part exemple le bouton reset est tout rouillé ). Pour se qui est de l'évolution, il n'y en auras certainement pas. Puisque cela est un banc client qui à été fais il y a presque 15 ans et justement là on me demande de le modernisé, ses modifications sont du à des normes européens. Surtout que l'entreprise à 6 arduino Uno et il aimerais bien que je l'ai utilise ^^. Et j'ai demandés au niveau des futures évolutions, ils m'ont dis que il y aurais des modèles de cartes plus simple donc le nombre de voie analogique maximum que je vais utiliser est de 5 pas plus. Donc ma vrai question est juste de savoir si cela est possible d'utiliser la voie A4 voir A5 ( si l'une grille on ne sais jamais ) parce que vous m'avez parlé du fais que celle-ci sont dédiés à l'I2C mais est-ce que elles peuvent être utiliser comme les voie A0-A3 ?

68tjs:
La valeur de la résistance de la LDR change sous l'effet des photons reçus (donc des watts)
J'ai fait de l'optique électronique pendant des dizaines d'années mais en fibre optique on ne connaît que le watt. Lire 100 lumens/watt ne me permet pas de traduire cette valeur en watt parce que je ne sais pas de quels watts on parle (probablement des watts électriques dans la jonction de la diode).
Je ne sais pas non plus convertir une température de couleur en longueur d'onde.

D'accord merci déjà pour cette explication un peu plus technique :slight_smile:

Pour se qui est de la LDR justement une fois que j'en aurais une, je vais faire plusieurs test entre une LED bonne, HS, en sur éclairage et en sous éclairage histoire de voir si les valeurs sont assez espacés pour pouvoir bien contrôler.

Voici la LDR que je compte prendre :

https://www.digikey.fr/product-detail/fr/advanced-photonix/PDV-P8104/PDV-P8104-ND/480611

Mais le soucis que je suppose pour les LDR c'est que plus l'éclairement de la LED est puissant donc des LUX (si je ne me trompe pas) est que la résistance de la LDR descende trop vite ^^" donc je recherchais des résistances qui peuvent descendre en assez bas en Ohm ( 2k Ohm voir moins ) chose que je n'ai pas trouvé. Donc je verrais si le problème que je suppose auras lieu.

dbrion06:
Il faudrait peut être aussi la référence des LDRs que vous souhaitez acheter (voire de la/des resistances que vous voules mettre dans un/des pont(s) diviseur(s).
En passant, je ne sais pas comment est votre tuteur, mais si vous lui dites un jour:
je veux acheter des LDRs pour voir si mes LEDs marchent (c'est vrai)
un autre jour:
je veux acheter un arduino mega/ un arduino mini parce que c'est plus facile pour mettre au point et prototyper (c'est vrai)
Il pourra se lasser de remplir des bons de commande et des frais de port... (il vaut peut être mieux attendre un peu et tenter de faire une liste exhaustive)

Etant en alternance (2 semaines de cours/2 Semaines entreprises) aujourd'hui est mon dernier jours donc il prend note de se que je lui transmet et la semaine avant que je revienne chez eux il commande tout.

Déjà je vous remercie beaucoup pour vos réponses. Je vous répondrais aujourd'hui mais en soi pour se projet je suis bloqué. Manque de composant je ne pourrais pas aller plus loin pas avant mon retour. Donc je vais repartir sur comment faire une IHM avec arduino ( devis trop élevé pour le client donc je dois me débrouiller pour le faire, sachant que je n'ai aucune base en IHM ^^")

Bref je vous laisse me répondre à mon msg.

Bonne journée à vous.

Si l'éclairement est trop violent il faut faire comme fdufnews te l'a déjà dit, relie les réponses précédentes.