TP Arduino – Mesure de la luminosité avec LDR et luxmètre

1. Objectifs pédagogiques

À l’issue de ce TP, l’élève devra être capable de :

  • Comprendre le fonctionnement d’une LDR (résistance dépendante de la lumière)
  • Comprendre et utiliser un montage diviseur de tension
  • Mesurer et comparer une grandeur physique avec deux instruments (luxmètre / Arduino)
  • Établir une correspondance entre lux et valeur analogique
  • Commander des LEDs en fonction de seuils de luminosité

2. Matériel nécessaire

  • 1 carte Arduino Uno (ou compatible)
  • 1 LDR
  • 1 résistance fixe (10 kΩ recommandée)
  • 1 luxmètre (instrument de mesure externe)
  • 3 LED :
    • Verte
    • Orange (ou jaune)
    • Rouge
  • 3 résistances (220 Ω ou 330 Ω)
  • Breadboard
  • Fils de connexion

3. Rappel théorique

3.1 La LDR

  • La résistance d’une LDR diminue lorsque la luminosité augmente
  • Obscurité → résistance élevée
  • Forte lumière → résistance faible


Mesurer les valeurs minimales et maximales (obscurité et luminosité maximale utilisé votre smartphone pour éclairer la LDR).



3.2 Pont diviseur de tension

La LDR est utilisée dans un montage diviseur de tension :

5V ── LDR ──┬───> A0 (Arduino)

            |

          R fixe

            |

           GND

La tension mesurée par Arduino vaut :

​​

👉 Quand la lumière augmente :

  • RLDR​ diminue
  • la tension mesurée augmente

3.3 Conversion analogique

  • Arduino convertit la tension (0–5 V) en une valeur entre 0 et 1023
  • Fonction utilisée :


analogRead(A0);


4. Montage électronique

4.1 Montage de la LDR

  • LDR entre 5V et A0
  • Résistance 10 kΩ entre A0 et GND

4.2 LEDs

LED

Couleur

Broche Arduino

LED 1

Verte

D8

LED 2

Orange

D9

LED 3

Rouge

D10

Chaque LED doit avoir sa résistance en série.


5. Manipulation expérimentale

5.1 Étape 1 – Relevés de mesures

  1. Placer le luxmètre et la LDR côte à côte
  2. Faire varier la luminosité (lampe, salle, ombre, etc.)
  3. Relever :
    • La valeur en lux
    • La valeur retournée par Arduino (analogRead)

👉 Compléter le tableau :

Luminosité (lux)

Valeur analogique Arduino












Tracer le graphe à l'aide d'Excel, prenez plus de points en faible luminosité. Que pouvez-vous en déduire ?



5.2 Étape 2 – Définition des seuils

Exemple (à adapter selon les relevés) :

  • Faible luminosité → LED rouge
  • Luminosité moyenne → LED orange
  • Forte luminosité → LED verte

6. Programme Arduino

Compléter le programme suivant :



// Déclaration des broches
const int capteurLDR = A0;

const int ledVerte = 8;
const int ledOrange = 9;
const int ledRouge = 10;

int valeurLDR;

void setup() {
       Serial.begin(9600);

       pinMode(ledVerte, OUTPUT);
       pinMode(ledOrange, OUTPUT);
       pinMode(ledRouge, OUTPUT);
}

void loop() {
       valeurLDR = analogRead(capteurLDR);

       Serial.print("Valeur LDR : ");
       Serial.println(valeurLDR);

       // Éteindre toutes les LEDs
       digitalWrite(ledVerte, LOW);
       digitalWrite(ledOrange, LOW);
       digitalWrite(ledRouge, LOW);

       //ajouter la logique en fonction des seuils pour allumer les 3 Leds

       delay(500);
}



7. Réflexions

  1. Pourquoi utilise-t-on un pont diviseur de tension avec la LDR ?
  2. Quelle est l’influence de la luminosité sur :
    • la résistance de la LDR ?
    • la tension mesurée par Arduino ?
  3. La relation entre lux et valeur Arduino est-elle linéaire ?
  4. Pourquoi les seuils doivent-ils être ajustés expérimentalement ?




🔹 Prolongement 1 – Calcul de la résistance réelle de la LDR

Objectif

Passer de la mesure brute Arduino à une grandeur physique exploitable : la résistance.


Travail demandé à l’élève

À partir du montage du pont diviseur :

  1. En déduire l’expression de RLDR
  2. Calculer la résistance de la LDR pour différentes luminosités



🔹 Prolongement 2 – Conversion en pourcentage de luminosité (fonction map())

Objectif

Transformer une mesure brute en information compréhensible par un utilisateur.


Travail demandé

  1. Définir :
  • Valeur Arduino minimale = obscurité
  • Valeur Arduino maximale = pleine lumière
  1. Convertir en pourcentage de luminosité

Code Arduino

int luminositePourcent;


luminositePourcent = map( à completer)


Serial.print("Luminosite : ");

Serial.print(luminositePourcent);

Serial.println(" %");



Exploitation

  • Comparaison avec la valeur du luxmètre
  • Discussion sur l’intérêt d’une normalisation



🔹 Prolongement 3 – Communication de l’information (affichage)

Prolongement orienté chaîne d’information – communiquer

  • Affichage moniteur série
  • Affichage LCD 16x2
  • LED RGB (codage couleur)

Exemple à mettre dans l'afficheur :

Message affiché :

Luminosite : 45 %

Etat : Luminosite moyenne

Créé avec HelpNDoc Personal Edition: De Word à ePub ou Kindle eBook : un guide complet