Objectifs pédagogiques

Ce sujet de travaux pratiques porte sur différentes technologies de mesure d'éclairement. Les principaux objectifs sont :

  • de découvrir l'emploi d'un luxmètre pour mesurer précisément l'éclairement produit par une led d'éclairage dans une boîte opaque (afin qu'elle soit isolée de la lumière ambiante) ;
  • de découvrir deux technologies de capteurs de lumière, à savoir :
    • le photo‑résistor (en anglais, light‑dependend resistor ou LDR) ;
    • le photo‑transistor (il s'agit d'un transistor bipolaire de type NPN dont la base est commandée par la lumière qu'elle reçoit) ;
    ces deux capteurs seront successivement placés en face de la led d'éclairage, dans la boîte opaque.

Ce sujet de travaux pratiques est également l'occasion de mettre en œuvre les techniques de conversion des signaux abordées dans la partie 2 du module :

  • la conversion numérique analogique pour générer un courant variable dans la led, sans recourir à la modulation (car sinon, cela impacterait les mesures d'éclairement) ;
  • la conversion analogique numérique pour mesurer la tension aux bornes du résistor du pont de mesure – un simple pont diviseur de tension – au sein duquel le capteur est monté.

Pour traiter ce sujet de travaux pratiques, il est nécessaire d'avoir une bonne connaissance du chapitre C3‑VII sur les entrées‑sorties analogiques.

Mise en situation

Montage expérimental

Tous les exercices sont à traiter en laboratoire de physique avec de véritables composants et instruments de mesure. Ils exploitent le montage électronique expérimental reproduit schématiquement sur la figure ci‑dessous.

Ce montage nécessite :

  • une carte de développement NodeMCU ESP32 de l'assembleur Joy‑It (cf. chap. C1‑III ) ou toute autre carte équivalente (avec un module ESP32) ; elle est fournie avec un cordon USB pour son alimentation électrique et sa liaison au poste de travail (PC) ;
  • deux platines d'essai (breadboard) de taille moyenne, assemblées spécialement pour s'adapter à la largeur de la carte de développement ;
  • divers résistors graphite/céramique 1/4 W max. ;
  • deux boutons‑poussoir monostables à 1 contact NO (normally open), 2 × 2 broches ;
  • deux condensateurs de capacité 100 nF pour limiter les rebonds du signal lors des commutations de contact sur les boutons ;
  • divers cavaliers et fils de connections de type jumper à connecteurs Dupont mâles ;
  • deux borniers doubles à vis‑étriers, à pas de 5,08 mm, pour garantir la fiabilité des connexions électriques du circuit de commande de la led ; un tournevis plat à lame 2 mm est fournis pour les manœuvrer ;
  • un multimètre numérique portatif (40 000 points).

On dispose également d'un luxmètre de référence HME6310 distribué par la marque Jeulin, dont la notice d'emploi est consultable au lien suivant .

Enfin, ce montage utilise une boîte opaque (un étui de film photographique) dont les parois intérieures sont tapissées de papier blanc afin de réfléchir la lumière émise par la led d'éclairage. Sont compris :

  • au fond de la boîte, une led blanche d'intensité lumineuse maximale 20 mcd, à lentille ⌀5 mm à diffusion (translucide) dont les broches traversent la paroi et sont raccordées à des fils sertis d'embouts de câblage pour se raccorder aux platines d'essai ;
  • deux couvercles amovibles interchangeables sur lesquels sont respectivement fixés :
    • un photo‑résistor de référence GL12528 de diamètre ⌀12 mm, dont la fiche technique est consultable au lien suivant  – il est sur le couvercle gris ;
    • un photo‑transistor de référence HW5P‑1 dont la fiche technique est consultable au lien suivant  – il est sur le couvercle noir ;
    sachant que les broches de ces composants traversent le couvercle pour pouvoir se raccorder directement dans les puits du pont de mesure implanté sur une des platines d'essai (en haut à gauche sur la figure) ;
  • un manchon en mousse de polyéthylène permettant d'obturer la circonférence extérieure du capteur du luxmètre non couverte par la boîte opaque.

Tous les composants sont fournis dans une boîte de TP pour chaque binôme. Ils doivent être utilisés avec précaution et remis soigneusement à leur état initial en fin de séance.

Consignes générales

Durant les manipulations, la boîte opaque doit être placée à l'abri du rayonnement solaire ou de toute source de chaleur, qui pourrait sinon avoir un impact significatif sur les mesures.

De plus, durant tout le processus de mesures, les connexions électriques doivent être le moins possible sollicitées mécaniquement pour ne pas modifier la résistance effective des contacts. Cette consigne est particulièrement importante pour le circuit de commande de la led d'éclairage.

Par ailleurs, le raccordement au pont de mesure des capteurs de lumière montés sur les couvercles doivent être opérés avec le plus grand soin, sans forcer, en repérant bien les puits de la platine d'essai dans lesquels les broches qui traversent les couvercles viennent s'insérer. En effet :

  • toute erreur d'implantation provoquera inévitablement une défaillance des mesures ;
  • une torsion des broches risque d'entraîner leur rupture et nécessiter un changement du composant, ce qui est difficile à accomplir en séance de travaux pratiques.

Travail demandé

Sur le poste de travail, enregistrer au fur et à mesure les fichiers dans un répertoire de TP nommé TP_P3-4, lui‑même placé dans un répertoire principal nommé PHYSIQUE, lui‑même placé dans le dossier personnel d'étudiant.

  • En particulier, il faut y placer la feuille de calculs téléchargeable au lien suivant  ; elle est à compléter avec les mesures physiques demandées en cours d'expérimentation.
  • De plus, les fichiers de code source Arduino doivent être placés chacun dans un répertoire de projet homonyme (same basename, cf. chap. C2‑I C).

Attention !

  • Pour des questions de sécurité, le téléversement du programme dans la carte à microcontrôleur doit être effectué avant le câblage du montage. Sinon, on risque d'avoir un comportement inattendu et indésirable du montage lors du raccordement de la carte au poste de travail dû à l'exécution d'un programme installé auparavant.
  • Tout écart important des mesures par rapport aux valeurs attendues doit conduire à une remise en cause des mesures.

Répondre sur cahier ou fichier de texte aux questions qui nécessitent une explication littérale.

  1. Préparation de la carte et du montage
    1. Sur le poste de travail, dans le répertoire de TP, créer un répertoire de projet nommé lightSensorStudy et dedans un fichier homonyme lightSensorStudy.ino. Ouvrir ce fichier avec l'application Arduino IDE et, dans l'éditeur de code, copier‑coller le programme d'étude photométrique donné ci‑dessous.
    2. /* All devices pin numbers */
      const int8_t LED_PIN                 = 25; // DAC1
      const int8_t MINUS_BUTTON_PIN        = 18; // push to decrement step
      const int8_t PLUS_BUTTON_PIN         = 19; // push to increment step
      const int8_t LIGHT_SENSOR_BRIDGE_PIN = 33; // 4.7K resistor 
      
      
      
      void setup()
      {
        // LED_PIN controlled by DAC so no pinMode call required
        pinMode(MINUS_BUTTON_PIN, INPUT);
        pinMode(PLUS_BUTTON_PIN,  INPUT);
        pinMode(LIGHT_SENSOR_BRIDGE_PIN, ANALOG);
      
        Serial.begin(115200);
        Serial.println();
        Serial.flush();
      }
      
      
      
      /* light step management constants and variables */
      const uint8_t MIN_DAC_VALUE   = 180;
      const uint8_t MAX_DAC_VALUE   = 255;
      const uint8_t MAX_STEP_NUMBER = 10;
       
      uint8_t step         = 0;
      uint8_t previousStep = MAX_STEP_NUMBER;
      uint8_t dacValue     = MIN_DAC_VALUE; 
      
      
      /* button logical level variables */
      bool previousPlusButtonLevel  = HIGH;
      bool currentPlusButtonLevel   = HIGH;
      bool previousMinusButtonLevel = HIGH;
      bool currentMinusButtonLevel  = HIGH;
      
      /* measures and statistical constant and variables */
      const uint32_t MEASURE_PERIOD  = 20; // in ms
      const int16_t  NB_OF_MEASURES_FOR_DISPLAY = 100;
      
      uint32_t previousMeasureMillis = millis();
      int16_t  bridgeMeasure     = 0;
      int32_t  sumOfMeasures     = 0;
      int16_t  nbOfMeasures      = 0;
      int16_t  measuresMean      = 0;
      int16_t  measuresMin       = 0;
      int16_t  measuresMax       = 0;
      int16_t  measuresDelta     = 0;
      int16_t  measuresThreshold = 0;
      bool     isThresholdSet    = false;
      
      
      
      
      void loop()
      {
        /* button management */
        updateInput(previousPlusButtonLevel,  currentPlusButtonLevel,  PLUS_BUTTON_PIN);
        updateInput(previousMinusButtonLevel, currentMinusButtonLevel, MINUS_BUTTON_PIN);
      
        if (isFallingEdge(previousPlusButtonLevel, currentPlusButtonLevel)) {
          step = constrain(step + 1, 0, MAX_STEP_NUMBER);
        }
        
        if (isFallingEdge(previousMinusButtonLevel, currentMinusButtonLevel)) {
          step = constrain(step - 1, 0, MAX_STEP_NUMBER);
        }
      
        /* light step management */
        if (step != previousStep) {
          previousStep = step;
          dacValue = MIN_DAC_VALUE + round((MAX_DAC_VALUE - MIN_DAC_VALUE) * float(step) / MAX_STEP_NUMBER);
          dacWrite(LED_PIN, dacValue);
          Serial.printf("Step: %2u \t DAC value: %u\n", step, dacValue);
          sumOfMeasures = nbOfMeasures = measuresMax = 0;
          measuresMin   = 10000;
        }
      
        /* measure management */
        if (millis() - previousMeasureMillis >= MEASURE_PERIOD) {
          previousMeasureMillis = millis();
          bridgeMeasure = analogReadMilliVolts(LIGHT_SENSOR_BRIDGE_PIN);
          
          // Compensating the offset default of the ADC converter
          if (step == 0 && !isThresholdSet) {
            if (measuresThreshold == 0) {
              Serial.print("Threshold detection... ");
            }
            if (bridgeMeasure > measuresThreshold) {
              measuresThreshold = bridgeMeasure;
            }
            else {
              isThresholdSet = true;
              Serial.printf("ADC threshold = %d\n", measuresThreshold);
            }
          }
      
          if (bridgeMeasure <= measuresThreshold) {
            bridgeMeasure = 0;
          }
      
          // Statistical parameters computing
          if (bridgeMeasure > measuresMax) {
            measuresMax = bridgeMeasure;
          }
          if (bridgeMeasure < measuresMin) {
            measuresMin = bridgeMeasure;
          }
          nbOfMeasures++;
          sumOfMeasures += bridgeMeasure;
        }
      
        // Periodic display and reset of statistical parameters
        if (nbOfMeasures == NB_OF_MEASURES_FOR_DISPLAY) {
          measuresMean  = round((float) sumOfMeasures / nbOfMeasures);
          measuresDelta = measuresMax - measuresMin;
          Serial.printf("\t mean: %4d   min: %4d   max: %4d   delta: %4d\n",
                         measuresMean, measuresMin, measuresMax, measuresDelta);
          sumOfMeasures = nbOfMeasures = measuresMax = 0;
          measuresMin   = 10000;
        }
      }
      
      
      
      void updateInput(bool & previousLevel, bool & currentLevel, int8_t pin)
      {
        previousLevel = currentLevel;
        currentLevel  = digitalRead(pin);
      }
       
       
      bool isFallingEdge(bool previousLevel, bool currentLevel)
      {
        return currentLevel == LOW && previousLevel == HIGH;
      }
      
    3. Raccorder la carte au poste de travail et avec le gestionnaire de cartes du logiciel Arduino IDE (accessible via le panneau latéral ou le menu Tools/Boards – cf. chap. C1‑III ), déterminer si la chaîne de compilation des cartes ESP32 développées par Espressif est déjà installée. Si tel n'est pas le cas, effectuer cette installation en cliquant sur le bouton Install. Attention, ne pas installer la chaîne Arduino ESP32 Boards (qui est spécifiques pour les cartes Arduino Nano à module Wi‑Fi ESP32).
    4. Sélectionner le type de carte ESP32 Dev Module (il doit être associé à un port COM/USB numéroté du poste de travail). Procéder alors au téléversement du programme (s'assurer que l'opération s'est bien déroulée grâce aux options du menu File/Preferences…).
    5. En cas non reconnaissance de la carte, il peut être nécessaire d'installer sur le poste de travail le pilote de l'ASIC CP2102 embarqué sur la carte NodeMCU‑ESP32 (cf. le cours, chap. C1‑III ).
      Ouvrir le moniteur série et régler la vitesse de transmission conformément à celle codée dans le programme (cf. la ligne nº 16 du programme). Après avoir appuyé sur le bouton EN (enable – afin de réinitialiser l'exécution du programme, cf. chap. C2‑VIII ), vérifier que des lignes de texte s'affichent, notamment : Step: 0 etc.
      Débrancher la carte.
    6. Câbler le montage du TP représenté schématiquement supra . Pour une meilleure ergonomie, par rapport à la figure, quelques adaptations sont possibles en termes d'emplacement des composants sur la platine d'essai.
    7. Toutefois, on veillera à câbler avec des cavaliers (et non pas des jumpers) :
      • les liaisons des broches 3V3 et GND de la carte respectivement aux rails « + » et «  » ;
      • les liaisons du pont de mesure (au dessus du résistor de 4,7 k) sauf celle partant de la broche D33, pour ne pas gêner l’empiétement du couvercle de la boîte opaque.
    8. Sachant le courant usuellement consommé par une led, choisir la position du sélecteur sur le multimètre pour effectuer les mesures de courant.
    9. Par ailleurs, une fois que le montage est câblé, repérer la position :
      • du bouton‑poussoir « MOINS » relié à la broche D18 de la carte ;
      • du bouton‑poussoir « PLUS » relié à la broche D19 de la carte.
    10. Laisser la boîte opaque ouverte. Vérifier que les deux couvercles peuvent bien être placés horizontalement à leur point de raccordement au pont de mesure, mais ensuite, ne laisser aucun couvercle monté sur la platine d'essai.
    11. Appeler l'enseignant pour valider ces préparations.
  2. Calibrage de la valeur minimale de commande de la led d'éclairage
  3. La led d'éclairage est pilotée en tension continue par une broche de sortie analogie (via un CNA – cf. TP P2‑2 ) de la carte à microcontrôleur – et non pas en modulation de largeur d'impulsion (MLI – cf. TP P2‑3 ).

    Pour mémoire, cette technique présente l'inconvénient d'être non proportionnelle, puisqu'il faut dépasser la tension de seuil de la led. Or cette tension peut varier d'un exemplaire à l'autre. Pour le bon déroulement des mesures ultérieures, la valeur minimale MIN_DAC_VALUE de la commande d'écriture analogique dacWrite, préréglée dans le programme à 180 (cf. la ligne nº 24 dans le programme supra ), va donc devoir être ajustée.

    1. Mettre en service le multimètre et la carte à microcontrôleur, activer le moniteur série. Appuyer sur le bouton EN de la carte et noter le seuil de la valeur retournée par la fonction analogReadMilliVolts (cf. la ligne nº 84 du programme) lorsque la tension entre les broches D33 et GND est nulle (puisqu'aucun capteur de lumière n'est branché sur le pont de mesure).
    2. Cette valeur est‑elle conforme à celle attendue (cf. le cours, chap. C3‑VII C).
    3. À l'étape 0 du programme, vérifier que la led blanche au fond de la boîte est éteinte ou éventuellement très faiblement allumée. (On rappelle en effet que le CNA d'une carte à module ESP32 génère une tension minimale non nulle, environ 0,1 V  – cf. le cours, chap. C3‑VII C.)
    4. Fermer la boîte avec le couvercle gris qui porte le photo‑résistor et implanter les broches traversantes de ce dernier dans les puits du pont de mesure (cf. supra la figure du montage ) ; la boîte repose alors verticalement à l'envers sur la platine d'essai. La moyenne des mesures affichée sur le moniteur série doit être égales à 0 en permanence. Si tel n'est pas le cas, diminuer de 10 la valeur de la constante MIN_DAC_VALUE déclarée dans le programme à la ligne nº 24. Téléverser cette nouvelle version et recommencer la vérification.
    5. Appuyer sur le bouton « PLUS » pour passer à l'étape 1. Ouvrir la boîte et vérifier que la led commence à briller un peu plus qu'à l'étape 0. Si tel n'est pas le cas, augmenter de 10 la valeur de la constante MIN_DAC_VALUE déclarée dans le programme à la ligne nº 24. Téléverser cette nouvelle version et recommencer la vérification.
    6. En cas de changement de valeur de la constante MIN_DAC_VALUE, modifier en conséquence la cellule B3 de la feuille de calcul, où cette valeur est reportée. Les autres valeurs dans la colonne B seront automatiquement modifiées.
  4. Mesures au luxmètre de l'éclairement produit par la led
  5. Les mesures effectuées dans cette partie doivent permettre de quantifier l'éclairement produit par la led lorsqu'elle est parcourue par un courant donné.

    Ces mesures sont cruciales car elles seront exploitées dans les parties suivantes pour déterminer la réponse des capteurs à telle ou telle valeur d'éclairement, calculée par interpolation en fonction du courant mesuré dans le circuit de commande de la led.

    1. Appuyer sur le bouton « MOINS » pour revenir à l'étape 0 du programme. Mettre en service le luxmètre sur le calibre 2000 lux et ôter le capot de son capteur mobile. Comme schématisé sur la figure ci‑contre, placer la boîte ouverte à l'envers sur le dôme translucide, l'ouverture de la boîte couvrant son centre. Abaisser le manchon pour obturer la périphérie du capteur non couverte par la boîte, en appuyant suffisamment pour garantir l'absence de lumière ambiante parasite lors des mesures.
    2. Quelle que soit la valeur affichée alors par le luxmètre, cette dernière doit être considérée comme nulle et donc renseignée par la valeur 0 la feuille de calcul.
    3. Appuyer sur le bouton « PLUS » pour traiter les étapes 1 à 10. Pour chacune, relever sur le premier tableau de la feuille de calcul :
      • la valeur en mA du courant direct ID traversant la led (cellules C4 à C13) ;
      • la valeur en lx de l'éclairement E affichée par le luxmètre (cellules D4 à D13).
      Quelle conclusion peut‑on tirer en observant sur la feuille de calcul l'aspect du diagramme automatiquement tracé avec ces relevés ?
  6. Mesures d'éclairement avec le photo‑résistor
  7. L'éclairement produit par la led est mesuré avec le photo‑résistor via la tension UR aux bornes du résistor du pont de mesure numérisée par le CAN de la carte à microcontrôleur (broche D33), en appelant la fonction analogReadMilliVolts (cf. la question 2.a supra ).

    Pour la bonne qualité des mesures, il est nécessaire de procéder rapidement et de relever de façon concomitante le courant direct traversant la led et la valeur de la tension aux bornes de la résistance du pont de mesure. En effet, la led chauffe un peu la boîte opaque (celle‑ci étant étanche et isolée thermiquement par le manchon), ce qui a un impact sur la valeur ohmique du photo‑résistor.

    1. Appuyer sur le bouton « MOINS » pour revenir à l'étape 0 du programme.
    2. Fermer la boîte avec le couvercle gris et implanter les broches traversantes du photo‑résistor dans les puits du pont de mesure (cf. supra la figure du montage ) ; la boîte repose alors verticalement à l'envers sur la platine d'essai.
      La moyenne des mesures affichées sur le moniteur série doit être égales à 0.
    3. Appuyer sur le bouton « PLUS » pour traiter les étapes 1 à 10. Pour chacune, relever sur le deuxième tableau de la feuille de calcul :
      • la valeur en mA du courant direct ID traversant la led (cellules C18 à C27) ;
      • la valeur en mV de la tension UR aux bornes du résistor du pont de mesure (cellules E18 à E27).
      Quelle conclusion peut‑on tirer en observant sur la feuille de calcul l'aspect du diagramme automatiquement tracé avec ces relevés ?
  8. Mesures d'éclairement avec le photo‑transistor
  9. Le principe de mesure de l'éclairement est le même que pour le photo‑résistor (cf. supra ).

    1. Appuyer sur le bouton « MOINS » pour revenir à l'étape 0 du programme.
    2. Déposer le couvercle gris et le remplacer par le couvercle noir. Implanter les broches traversantes du photo‑transistor dans les puits du pont de mesure (cf. la figure ci‑contre), tels que l'anode du photo‑transistor soit en continuité avec le cavalier rouge horizontal prévu à cet effet (parce que l'écartement des broches n'est pas le même que pour le photo‑résistor).
      La moyenne des mesures affichées sur le moniteur série doit être égales à 0.
    3. Appuyer sur le bouton « PLUS » pour traiter les étapes 1 à 10. Pour chacune, relever sur le troisième tableau de la feuille de calcul :
      • la valeur en mA du courant direct ID traversant la led (cellules C32 à C41) ;
      • la valeur en mV de la tension UR aux bornes du résistor du pont de mesure (cellules E32 à E41).
      Quelle conclusion peut‑on tirer en observant sur la feuille de calcul l'aspect du diagramme automatiquement tracé avec ces relevés ?