Réglage lumineux d’une diode selon l’intensité de lumière

Réglage lumineux d'une diode selon l'intensité de lumière
Réglage lumineux d'une diode selon l'intensité de lumière

L’objectif de cet article est d’allumer une diode et varier son intensité selon la lumière ambiante, pour cela nous allons utiliser un capteur LRD ou photorésistance. Avant tout, on va faire que notre LED s’allume dans l’obscurité et qu’elle s’éteigne dés que le capteur détecte la lumière.

Allumer une Led dans l’obscurité grâce à un capteur de lumière.

Il est nécessaire:

  • Arduino Uno ou équivalent.
  • Plaque d’essaie ou breadboard.
  • Une led.
  • Capteur LRD.
  • Résistance de 220Ω.
  • Résistance de 10Ω.

Schéma de montage:

Cablage led, capteur LRD et plaque Arduino.

On connecte la diode au pin digital 13 de la plaque Arduino, et le capteur LRD au pin analogique A0.

Code:

int pinLED = 13;

void setup() {
  pinMode(pinLED, OUTPUT);
}

void loop() {
  if (analogRead(0) < 40) {
    digitalWrite(pinLED, HIGH);
  }
  else {
    digitalWrite(pinLED, LOW);
  }
}

Dans la fonction setup() on configure le pin 13 comme sortie (output). Dans la fonction loop() on lit la valeur du capteur LRD connecté au pin analogique A0: si la valeur est supérieure à 40, la diode reste éteinte et si la valeur est inférieur, elle s’allume. (La valeur 40 peut varier selon la sensibilité du capteur).

Changer l’intensité d’une diode selon la lumière ambiante.

Pour modifier l’intensité d’une led on utilisera les signaux de modulation de la largeur d’impulsion (PWM), lesquels émulent un signal analogique partant d’un signal digital ou numérique. Les signaux PWM génèrent une série de pulsations qui peuvent varier en durée mais leur fréquence reste constante.

Il est nécessaire:

  • Arduino Uno ou équivalent.
  • Breadboard.
  • Diode.
  • Capteur LRD.
  • Résistance de 220Ω.
  • Résistance de 10Ω.

Schéma:

Cablage diode, LDR et Arduino (pwm)

Cette fois-ci, la led est connectée au pin 9, du type PWM, précédé du symbole ~.

Code:

On a trois variables: la valeur LDR correspond au pin analogique du capteur LDR; pinLed correspond au pin 9 relié avec la diode; et la variable valeur où on gardera la lecture du capteur LDR.

int valeurLDR = A0;
int pinLED = 9;
int valeur;

Le pas suivant est de définir les valeurs maximales et minimales du photorèsistor, valeur maximale = lumière 300, la diode s’éteindra quand l’intensité de lumière ambiante soit majeure. La valeur minimale = lumière 100.

int max =190;
int min =20; 

Dans la fonction setup() on initialise la communication sériale et on établit pinLed comme sortie.

void setup(){
  Serial.begin(9600);
  pinMode(pinLED, OUTPUT);
}

Dans la fonction loop() on lit la valeur du capteur LRD, et on la situe entre la valeur max et min avec la fonction constrain(), on ajuste la valeur entre 0 et 255 pour pouvoir utiliser le mandat analogWrite, et finalement, on ajoute une pause pour stabiliser le processus.

void loop(){
  valeur = analogRead(valeurLDR);
  //Serial.println(valeur);
  valeur =constrain(valeur,min,max);

  valeur =map(valeur,max,min,0,255);
  Serial.println(valeur);
  
  analogWrite(pinLED, valeur);
  delay(100);
}

Code complet:

int valeurLDR = A0;
int pinLED = 9;

int valeur;

int max =190;
int min =20;

void setup(){
  Serial.begin(9600);
  pinMode(pinLED, OUTPUT);
}

void loop(){
  valeur = analogRead(valeurLDR);
  valeur =constrain(valeur,min,max);
  valeur =map(valeur,max,min,0,255);
  Serial.println(valeur);  
  analogWrite(pinLED, valeur);
  delay(100);
}
Articles similaires
Laisser un commentaire