Photorésistance | LDR | Arduino pour mesurer la lumière ambiante 👨💻
La photorésistance également désigné comme une cellule photoconductrice est un composant utilisé en électronique pour mesurer
la quantité de lumière. On l'utilise régulièrement avec une Arduino, pour réaliser un capteur de luminosité, car la résistivité
de ce composant va varier en fonction de la lumière.
Découvrez dans cet article le principe physique du composant, des schémas de raccordement pour utiliser la photorésistance dans vos applications et un programme pour interpréter les valeurs mesurées par ce semi-conducteur.
Il vous sera donc possible de fabriquer votre propre interrupteur crépusculaire.
Principe de fonctionnement de la photorésistance :
La photorésistance est un composant utilisé en électronique qui a la particularité d'avoir une résistivité variable en fonction de la lumière ambiante.
Plus il y a de lumière plus la résistivité diminue et inversement, avec beaucoup de lumière sa résistivité augmente.
Ce capteur de lumière est également désigné par les initiales LDR (Light-Dependent Resistor) ou comme un photoconducteur.
En effet en fonction de la quantité de lumière reçue, ce semi-conducteur laisse plus ou moins passer le courant électrique (variation de la résistance).
Ce petit composant ne coûtant pas cher, il peut être utilisé dans de nombreuses applications comme un détecteur de luminosité pour allumer une lumière à partir d'un seuil réglé au préalable.
Associé avec une carte Arduino les possibilités de réalisation et de programmation sont diverses.
Ainsi, vous pourrez réaliser vos travaux dans la maison en fabriquant votre interrupteur crépusculaire programmable à installer
à l'entrée de votre maison ou de votre garage.
Retrouvez également la photorésistance dans le projet de porte automatique pour poulailler, dans ce cas, le capteur de luminosité permettra d'automatiser l'ouverture et la fermeture d'un portique de poulailler en fonction de la luminosité extérieure.
Afin d'optimiser les mesures de la photorésistance, il est nécessaire d'ajouter une résistance et de réaliser un pont diviseur de tension (voir schéma électrique ci-dessous).
Voici le raccordement de la cellule photorésistante et de la résistance de 10 kΩ afin de réaliser un pont diviseur de tension.
Dans cet exemple, la tension d'alimentation est de 5V (conducteur rouge), pour connaître la luminosité ambiante, il suffit de placer un voltmètre entre la sortie de la photorésistance et la masse ou GND (conducteur bleu).
Le voltmètre doit être calibré en tension continue (VDC). Lorsque la luminosité est quasi nulle, la tension mesurée sera proche de 0V, car la résistance de la photorésistance est très élevée, elle n'est donc plus passante.
À l'inverse, en pleine lumière la tension s'approchera de la valeur de l'alimentation soit 5V, car la résistance de la photorésistance est négligeable (proche de 0Ω).
Avec ces mesures électrique on observe bien la variation de la tension en sortie de la photorrésistance.
La mesure de la résistance (Hors Tension) aux bornes de la photorésistance permet de constater la variation de la résistance de la cellule photorésistante en fonction de la luminosité ambiante.
Dans l'obscurité la résistance augmente aux alentours de 0,59 MΩ et en pleine lumière la résistance diminue à 222Ω.
Comment fabriquer un interrupteur crépusculaire ?
En utilisant une carte Arduino et une photorésistance et un relais 5V / 230V, il vous sera possible de réaliser une sonde crépusculaire vous permettant de piloter par exemple l'éclairage extérieur de votre maison.
Cet interrupteur crépusculaire sera paramétrable, vous pourrez déterminer les seuils de luminosité permettant d'allumer la lumière ou de l'éteindre.
L'Arduino facilitera la réalisation d'un interrupteur automatique crépusculaire temporisable.
Pour concevoir un interrupteur crépusculaire avec une carte Arduino, vous devrez utiliser un relais permettant de commander une lampe 230V. En amont de la lampe, il faut placer un
disjoncteur magnétothermique permettant de protéger la partie courant fort en cas de
surintensité (surcharge ou court-circuit).
La sonde crépusculaire est assurée par la cellule photorésistante, les seuils d'allumage et d'extinction de la lampe seront réglés dans le programme Arduino.
Programme Arduino de l'interrupteur crépusculaire :
Le programme Arduino permettra d'automatiser l'allumage et l'extinction du relais crépusculaire alimentant la lampe sous 230V.
Une temporisation de deux secondes (int Tempo_luminosite = 2000) ainsi que deux seuils (int Seuil_Jour et int Seuil_Nuit), permettent de palier aux fluctuations brutales de la luminosité.
Ainsi, le relais ne sera pas enclenché / déclenché en permanence lors de variations rapides de la luminosité.
int PhotoresistancePin = A0; // Déclaration broche photorésistance LDR
int Luminosite = 0; // Variable de la luminosité
int Seuil_Jour = 450; // Variable de luminosité seuil pour le jour
int Seuil_Nuit = 350; // Variable de luminosité seuil pour la nuit
int RelaisPin = 7; // Déclaration broche relais 5V/230V
boolean mem_lumiere = true;// Déclaration de la mémoire lumière
boolean Detecte_lumiere = false; // Déclaration variable détection lumière
boolean tempoActive = false; // État d'activation de la tempo
unsigned long tempoDepart = 0; // Temps à l'activation de la tempo
int Tempo_luminosite = 2000; // Temporisation luminosité 1 secondes = 1000ms
void setup() {
Serial.begin(9600); // Ouverture du port série et debit de communication fixé à 9600 bauds
pinMode(RelaisPin, OUTPUT);
}
void loop() {
Luminosite = analogRead(PhotoresistancePin);
if (Luminosite >= Seuil_Jour)
{
Detecte_lumiere = true;
}
if (Luminosite <= Seuil_Nuit)
{
Detecte_lumiere = false;
}
if (Detecte_lumiere != mem_lumiere) {
tempoActive = true;
tempoDepart = millis();
}
if (!Detecte_lumiere && tempoActive && ((millis() - tempoDepart) >= Tempo_luminosite))
{
digitalWrite(RelaisPin, HIGH);
tempoActive = false;
Serial.println("NUIT"); // Affichage sur le moninteur série du texte
}
mem_lumiere = Detecte_lumiere;
if (Detecte_lumiere && tempoActive && ((millis() - tempoDepart) >= Tempo_luminosite))
{
digitalWrite(RelaisPin, LOW);
tempoActive = false;
Serial.println("JOUR"); // Affichage sur le moninteur série du texte
}
mem_lumiere = Detecte_lumiere;
}
Une amélioration possible serait d'ajouter un capteur de mouvement qui permettra d'allumer la lampe la nuit, seulement quand un mouvement est détecté.
Activité pratique pour BAC PRO MELEC : préparation, réalisation et livraison d'un interrupteur crépusculaire à base d'une carte Arduino.
📌 Politique de Confidentialité |
Cet article peut inclure du contenu sponsorisé et rémunérédes, des liens d'affiliation, notamment des liens Amazon (programme Partenaire Amazon EU) me permettant de toucher une commission au pourcentage sur la vente des produits affiliés (sans augmentation de prix pour l'acheteur).
❤️💟 Si vous aimez les articles et pour soutenir le développement du site n'hésitez pas à partager sur les réseaux sociaux