Description
Tutoriel : Mesurer la luminosité ambiante avec une photorésistance LDR et une carte Arduino
La photorésistance est un composant électronique permettant de mesurer la luminosité ambiante. Ce composant est utile dans certains projets comme un panneau solaire suiveur de lumière ou en domotique pour créer une lampe intelligente qui ne s’allume que lorsqu’il fait nuit ou encore pour mettre en place une alarme avec une diode laser.
Matériel
- Ordinateur
- Carte Arduino
- Câble USB ou adaptateur série/USB pour connecter la carte Arduino au PC
- 1x résistance 10kOhm
- 1x photoresistor
Schéma
La photorésistance, ou, en anglais, Light Dependent Resistor (LDR) est un composant passif. Pour mesurer un changement de résistance il nous faut envoyer un courant dans le composant entre deux potentiels. Nous créons donc un pont diviseur de tension à l’aide de la photorésistance et d’une résitance de 10kOhm.
Code
Pour afficher la valeur physique du capteur, il faut connaitre la règle de conversion qui sera souvent linéaire du type y= a*x+b.
Afin d’avoir un code propre et lisible, il est préférable de placer le code dans une sous fonction. Nous allons donc créer une fonction qui se charge de lire la valeur du capteur et de la convertir en valeur physique.
/*
* Code d'exemple pour un capteur de luminosié LDR photo résistance.
* Réaliser par Micro-Electroniques Générales au Maroc
* Visite notre site megma.ma
*/
// Constants #define DELAY 500 // Delay between two measurements in ms #define VIN 5 // V power voltage #define R 10000 //ohm resistance value // Parameters const int sensorPin = A0; // Pin connected to sensor //Variables int sensorVal; // Analog value from the sensor int lux; //Lux value void setup(void) { Serial.begin(9600); } void loop(void) { sensorVal = analogRead(sensorPin); lux=sensorRawToPhys(sensorVal); Serial.print(F("Raw value from sensor= ")); Serial.println(sensorVal); // the analog reading Serial.print(F("Physical value from sensor = ")); Serial.print(lux); // the analog reading Serial.println(F(" lumen")); // the analog reading delay(DELAY); } int sensorRawToPhys(int raw) { // Conversion rule float Vout = float(raw) * (VIN / float(1024));// Conversion analog to voltage float RLDR = (R * (VIN - Vout))/Vout; // Conversion voltage to resistance int phys=500/(RLDR/1000); // Conversion resitance to lumen return phys; }
Sources
Soyez le premier à laisser votre avis sur “LDR photorésistance”Annuler la réponse
Avis
Il n’y a pas encore d’avis.