Lire un capteur de lumière (photorésistance) avec Arduino
Dans ce tutoriel, nous vous montrons comment utiliser une photorésistance comme capteur de lumière pour mesurer la luminosité ambiante.
Dans ce guide, nous vous montrons comment utiliser une photorésistance comme capteur de lumière pour mesurer la luminosité ambiante. Les capteurs de lumière sont particulièrement utiles pour prendre en compte l'heure de la journée dans vos projets électroniques ou pour déclencher des actionneurs. Les applications typiques incluent la commande intelligente de l'éclairage des lampes, le contrôle des protections solaires comme les volets roulants et les stores, ou encore le réglage automatique de la luminosité des écrans numériques.
Composant nécessaire
- 1 carte compatible UNO R3
- Photorésistance
- Résistance 1k
- 3 câbles jumper
- Plaque d'expérimentation
Fonctionnement
Une photorésistance est un composant sensible à la lumière, souvent abrégé en LDR (de l'anglais *Light Dependent Resistor*). Comme son nom l'indique, la LDR modifie sa résistance en fonction de la luminosité. Cette photorésistance présente environ 50 kΩ dans l'obscurité et 500 Ω en lumière vive.
Notre carte Arduino UNO R3 ne peut détecter que des signaux analogiques (tensions). Avec une simple résistance, elle ne peut rien faire. Pour convertir la résistance en valeurs mesurables analogiques, nous utilisons une résistance normale montée en série. Ainsi, l'entrée analogique de l'Arduino peut lire une tension variable, que nous convertissons ensuite en valeurs mesurables.
Lorsque deux consommateurs sont branchés en série entre 5 V et GND, ils se partagent la tension. Nous utilisons ce principe pour déterminer la tension entre les deux résistances.
En pleine lumière, la résistance de la photorésistance diminue, de sorte que la résistance de 1 kΩ attire vers GND et permet aux 5 V complets de circuler. Lorsque la lumière faiblit, la résistance de la photorésistance augmente et devient supérieure à la résistance fixe de 1 kΩ. Ainsi, la tension mesurée diminue, comme si l'on baissait un potentiomètre.
La tension mesurée est convertie en valeurs numériques de 0 à 1023 sur l'entrée analogique A0 de l'Arduino.
Ici, la valeur mesurée de 1023 correspond à nos 5 V, soit une luminosité élevée. Le chiffre 0 correspond à 0 volt, soit une obscurité totale.
Schéma électronique
Schéma de connexion
La première patte de la photorésistance est câblée à 5V. La deuxième patte est connectée avec une résistance + câble à GND et avec un autre câble à A0.
Code pour Arduino
Avec ce code exemple, vous pouvez lire les valeurs mesurées dans le moniteur série. À partir du seuil 512, soit environ la moitié de la luminosité maximale, la LED intégrée sur l'Arduino UNO s'éteint.
Essayez-le et placez votre main au-dessus de la photorésistance. Observez dans le moniteur série de l'IDE Arduino comment les valeurs mesurées changent.
Afficher / masquer le code
int LDR = A0; // Broche analogique comme entrée LDR
int LED = 13; // Broche LED
int sensorWert = 0; // Variable pour la valeur du capteur avec 0 comme valeur initiale
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
sensorWert = analogRead(LDR); // Lire la valeur du LDR
Serial.println(sensorWert); // Affichage sur le moniteur série
if (sensorWert > 512) { // Si le seuil de 512 est dépassé, la LED doit s'allumer
digitalWrite(LED, HIGH); // LED allumée
} else { // sinon...
digitalWrite(LED, LOW); // LED éteinte
}
delay(50);
}