Au sommaire :
Module détecteur de lumière à LDR
Présentation
Voilà le module que j’ai utilisé. Les caractères sérigraphiés attestent de son origine asiatique 🙂 Il est de taille réduite 30 x 15 mm et possède un trou pour la fixation. Il y a également 4 broches pour le relier à un Arduino ou à un Raspberry Pi.
Description
Vous trouverez ce module sous cette forme ou sous forme de copie sur de nombreux sites de vente en ligne. La vue de dessus permet de repérer les composants principaux. A gauche la résistance LDR (de type GL5516) sensible à la lumière (décrite ci-dessous), le comparateur LM393 chargé de comparer la tension aux bornes de la LDR avec une tension de référence réglable. Le potentiomètre permet d’ajuster le seuil de déclenchement en fonction du niveau de lumière. Tourné dans le sens horaire, il augmente la sensibilité. Dans le sens anti-horaire la sensibilité diminue. Les flèches indiquent le sens de réglage.
La LED D1, située à proximité du potentiomètre, s’allume quand le module est alimenté. La LED D2 indique le niveau de sortie sur la broche D0. Elle s’allume quand l’intensité lumineuse dépasse le seuil fixé grâce au potentiomètre.
Les broches sont, de haut en bas :
- A0 La sortie analogique, reflet de l’intensité lumineuse reçue par la LDR
- D0 Sortie numérique, passe à 1 (+3,3v ou +5v) lorsque l’intensité lumineuse dépasse le seuil
- GND Masse
- Vcc Alimentation +3,3v
Le module fonctionne de 3,3v à 5v. C’est intéressant car les GPIO du Raspberry Pi utilisent le 3,3v. En alimentant le module en 3,3v on peut relier directement la sortie D0 à un GPIO.
La sortie A0 n’est pas utilisable directement sur les GPIO du Raspberry Pi, car il n’y a pas d’entrée analogique.
Photo-résistance
LDR = Light Dependant Resistor ou résistance photo-dépendante ou cellule photoconductrice ou photorésistance
Une photorésistance est composée d’un semi-conducteur à haute résistivité. Deux électrodes sont séparées par ce matériau photoconducteur (en général du CdS sulfure de cadmium). La piste de CdS prend la forme d’un ruban présentant de nombreux virages, pour allonger la zone réagissant à la lumière. Ceci améliore la réponse de la photorésistance LDR.
Au-delà d’un certain niveau propre au matériau, les photons absorbés par le semi-conducteur communiquent aux électrons assez d’énergie, abaissant la résistance du matériau. Lorsque le photon incident est suffisamment énergétique, la production des paires électron-trou est d’autant plus importante que le flux lumineux est intense. La résistance évolue donc comme l’inverse de l’éclairement.
Les matériaux utilisés dans les photorésistances sont le plus souvent des composés des colonnes II-VI de la classification périodique des éléments. Pour une utilisation dans le domaine visible et à faible coût, on utilise le plus souvent le sulfure de cadmium (CdS) ou le séléniure de cadmium (CdSe). Pour des utilisations dans l’infrarouge on utilise le sulfure de plomb (PbS).
Variation de résistance
Dans l’obscurité, la résistance d’une LDR est proche de 1 MΩ. Avec un éclairage intense, la résistance chute fortement (quelques KΩ). Un pont diviseur permet de récupérer une tension qui sera directement le reflet de la lumière arrivant sur la LDR.
Comme les GPIO du Raspberry Pi sont des entrées-sorties numériques, ce signal n’est pas directement utilisable. Il faut passer par un « comparateur » de type LM393 pour détecter le niveau de luminosité et mettre la sortie D0 à 1 lorsque la lumière dépasse le seuil (réglé par le potentiomètre).
Schéma du module détecteur de lumière à LDR
Voici un schéma (approximatif) du module détecteur de lumière à LDR. Il peut bien entendu y avoir des modifications en fonction de l’origine de votre module. Néanmoins la base du montage reste celle-ci. Lorsque la tension d’alimentation est appliquée au module, la LED D1 s’allume en permanence.
Fonctionnement dans l’obscurité
La photorésistance LDR est montée dans un pont diviseur. Dans l’obscurité, sa résistance est très élevée. Pratiquement toute la tension Vcc (3,3v) se retrouve à ses bornes. Le potentiomètre sert à régler la tension envoyée sur l’entrée inverseuse du comparateur LM393.
Lorsque la LDR est dans l’obscurité, la tension sur l’entrée + est supérieure à celle présente sur l’entrée –. La tension de sortie du comparateur vaut alors +3,3v. C’est cette tension qui est présente sur D0. La LED D2 reçoit sur son anode une tension de 3,3v et sur sa cathode la même tension de 3,3v. Il n’y a aucune différence de tension à ses bornes, elle est donc éteinte.
Fonctionnement à la lumière
A la lumière, la résistance de la LRD est très faible. L’entrée + est pratiquement à la masse. La tension sur l’entrée + est inférieure à celle présente sur l’entrée –. La tension de sortie du comparateur vaut alors 0v. C’est cette tension qui est présente sur D0. La LED D2 reçoit sur son anode une tension de 3,3v (via une résistance de limitation) et sur sa cathode une tension de 0v, C’est comme si la cathode était reliée à la masse du montage. Un courant circule dans la LED, limité par la résistance en série avec la LED. La LED D2 s’allume.
En résumé
- OBSCURITÉ LED D2 éteinte ⇒ D0 à 1
- LUMIÈRE LED D2 allumée ⇒ D0 à 0
Connexion au Raspberry Pi
La connexion du module au Raspberry Pi nécessite 3 fils. La broche A0 du module n’est pas connectée.
La broche Vcc est connectée au +3,3v sur le GPIO (broche 1)
La broche GND est connectée à la masse sur le GPIO (broche 6 ou broche 9 si la broche 6 est déjà connectée)
La sortie D0 est connectée au GPIO 4 (broche 7)
Cette connexion est celle qui est utilisée dans le projet « Un jeu de cible » du livre « Scratch et Raspberry Pi » page 382.
[stextbox id=’alert’ caption=’ATTENTION !’]Si votre module détecteur de lumière à LDR n’a pas la même disposition des broches, il vous appartient de modifier le câblage en conséquence.[/stextbox]
Un programme de test avec Scratch
Un exemple de programme en Scratch pour tester si la cellule reçoit de la lumière.
Vidéo
Pour conclure ce chapitre sur le module détecteur de lumière à LDR, une (courte 25s) vidéo de démonstration du fonctionnement du module avec un programme en Scratch.
Bonjour, je vous félicite pour ce tuto détaillé. J’aurai aimé savoir comment fonctionnerait le processus inverse. En effet, je travaille sur un projet qui consiste à faire à faire varier l’intensité lumineuse en fonction de l’apport de lumière. Je cherche donc un « capteur d’obscurité », qui permet d’allumer les luminaires si on est en dessous d’un certain seuil.
D’avance Merci.
Bonjour,
Je fabrique une porte auto pour mes poules mais sous arduino. Mon code est écrit et fonctionne mais le capteur de lumière a des « sursauts » (IIII0I0IIIII0II…) ce qui rend mon projet inutilisable. J’ai essayé avec et sans pull-up mais logiquement rien ne change. Je pourrais passer en analogique mais je me demande si il n’y a pas un autre moyen.
Cordialement,
bonjour Adrien
bin pour vous donner un avis il faudrait qques infos
C’est quoi le capteur de lumière ? un lien ?
Quand il détecte la lumière, il passe à 1 ou à 0 ?
Quelle longueur de fil ?
Si beaucoup de fil avez vous prévu un condensateur de découplage sur l’alim au niveau du capteur ?
Un bout de schéma de câblage ?
…
sinon je ne peux pas deviner ce qui se passe ? (d’ailleurs même avec ces éléments ce n’est pas garanti de savoir ce qui se passe)
avez vous essayé de « lisser » par programme ce que vous recevez ? s’il y a 4 un suivis d’un zero puis d’un un, supprimer le zéro ?
ne prendre en compte le zéro quand quand il y en a 5 ou 10 d’affilée ?
cdt
françois
bonjour, je voudrais faire activer 2 modules LDR au même temps, comment faire svp?
bonjour, je voudrais lire l’etat de 2 capteurs LDR au meme temps comment faire ?
Bonjour votre commentaire n’aparait pas tout de suite car le premier commentaire que vous postez est toujours validé à la main
pour tester plusieurs capteurs, il faut connecter la sortie de chaque capteur à un GPIO différent.
j’ai connecter la sortie de chaque capteur a un different GPIO mais le probleme est qu’on ne peut pas lire l’etat des deux capteurs au meme temps.
en principe si un programme lit les gpio l un apres l’autre rapidement l’écart de lecture est tout petit
sinon si vous voulez tester les 2 en même temps il faut passer par des interruptions ou créer une porte logique physique qui sort par exemple 1 quand les 2 capteurs sont à 1 et rien si aucun capteur ou un seul envoie un 1
Bonjour, je voudrais que ce module puisse capter les variations (allumé, éteinte) d’une LED dans le cadre d’une liaison LIFI (communication via la lumière). Ce module pourrait capter ces variations à des fréquences de l’ordre de 1kHz ?
Merci
bonjour
oula on est sur de la LDR voyez http://jerome.hennecart.free.fr/TP_LDR_prof.htm
avec un temps de réponse de plus de 100mS ça ne fait pas le compte !
non il faut un phototransistor ou une photodiode.
A défaut on peut « décalotter » un transi en boitier métal pour en faire un photo transistor (2N2222) 😉
cdt
françois
Bonsoir je veux le savoir si la photoressistance Est-il endommagé ou non
Bonjour,
Pouvez-vous m’aider car je ne sais pas comment définir le chois de la photoresistance (GL5516 ou Gl5539) ?
En fait, c’est pour utiliser dans une lunette de tir avec un réticule lumineux qui doit s’allumer +/- fort pour être visible en pleine lumière (donc en fonction de la luminosité) et s’éteindre dans le noir complet ?
Merci d’avance 🙂
Bonjour
Vous voulez utiliser un module ou créer un montage avec votre photo résistance ?
Je ne connais pas la différence entre ces 2 modèles mais il ne devrait pas y avoir grande différence
Le mieux… c est de tester 🙂
Cdt
Francois
bonjour, je voulais savoir combien il en faut pour un panneau solaire photovoltaïque, et la problématique, merci
Bonjour
ce n’est pas une cellule photovoltaique
vous ne pouvez pas en faire un panneau solaire.
Ce composant change de résistance quand il est éclairé
il ne génère pas de courant.
cdt
françois
slt
svp comment peut on alimenter cet capteur de lumière à 4 broche par une carte ardouino uno
bonjour
bah en cherchant un peu vous auriez trouvé tout seul 😉
http://tiptopboards.free.fr/arduino_forum/viewtopic.php?f=2&t=49
cdt
francois