materiels:capteurs:eclairement:luminosite

Sommaire Matériels

[Mise à jour le 7/7/2022]

L’éclairement lumineux est la grandeur définie par la photométrie correspondant à la sensation humaine sur la manière dont une surface est éclairée. Pour qu'un objet qui ne produit pas de lumière par lui-même soit visible, il faut qu'il reçoive de la lumière. Plus il en reçoit, plus il est clair, et visible distinctement. La photométrie définit rigoureusement la lumière reçue, afin de pouvoir calculer cette grandeur, connaissant l'intensité lumineuse des sources de lumière, leur distance et leur direction.

L'éclairement lumineux est la seule grandeur photométrique directement mesurable. On l'évalue à l'aide d'un transducteur optique-électronique inséré dans une cellule photoélectrique. Dans le Système international d'unités, il s’exprime en lux (lx). Wikipédia

EclairementExemple
0,002luxCiel sans lune
0,27 - 1luxPleine lune par une nuit claire
50luxSalon
100luxJour, ciel couvert très sombre
300 - 500luxLe lever ou le coucher du soleil par temps clair. Bureau bien éclairé.
1000luxJour couvert; éclairage typique d'un studio de télévision
10000 - 25000luxJour (pas de soleil direct)
32000 - 130000luxLumière directe du soleil


Symbole

1.1.1 Généralités

Une photorésistance (également appelée résistance photo-dépendante ou cellule photoconductrice) est un composant électronique dont la résistivité varie en fonction de la quantité de lumière incidente : plus elle est éclairée, plus sa résistivité baisse. Wikipédia

  • Modèle
    R(Ev) = R0Ev-k avec R : résistance en Ohm et Ev : éclairement en lux

1.1.2 LDR NORPS12

La cellule NORPS-12 d'Advanced Photonix est une cellule photoconductrice CdS dotée d'une réponse spectrale similaire à celle de l'oeil humain en boîtier TO-18. Cellule photoconductrice encapsulée dans un revêtement résistant à l'humidité et logée dans un boîtier en plastique.
  • Caractéristiques
    • Photorésistance maximum de 12.6kohm
    • Résistance d'obscurité de 1Mohm
    • Dissipation de puissance à 30°C de 250mW
    • Tension nominale (crête AC ou DC) de 250V
    • Longueur d'onde crête spectrale de 550nm

  • Documentation
    • Fichier Acrobat Reader à télécharger ici
  • Modèle

  • Aide pour la simulation de la chaîne de mesure
    • Les équations de la chaîne de mesure sont téléchargeables ici
    • Le modèle à simuler est téléchargeable ici

  • L'algorithme du traitement à réaliser (Ev=f(N)) est téléchargeable ici

1.1.3 Module Grove SEN11302P (Archives)

Le module est constitué d'une LDR placée dans un diviseur de tension isolé par un AOP monté en suiveur.
  • Distributeur : produit obsolète
  • Caractéristiques
    • Tension alimentation : 3 à 5V
    • Courant : <3mA
    • Temps de réponse : 20 à 30ms

  • Modèle
    • Fichier Excel à télécharger ici

  • Aide pour la simulation de la chaîne de mesure
    • Les équations de la chaîne de mesure sont téléchargeables ici
    • Le modèle à simuler est téléchargeable ici

  • L'Algorithme du traitement à réaliser, Ev=f(N) est téléchargeable ici
  • Programmation d'une carte Arduino Uno R3
    • Bibliothèques à installer dans l'IDE : aucune
    • Connexion à un shield Tinkerkit v2.

  • Un premier exemple pour tester le capteur
SEN11302P.cpp
/*
Mesure de la luminosite ambiante Ev avec une LDR
Bibliothèque math.h : https://www.arduino.cc/en/math/h
*/
// Constantes
//------------------------------------------------------
// LDR module SEN11302P
const double k = -0.65;
const double R0 = 129790.0;
// Diviseur de tension
const int Vcc = 5;    // Volt
const int R1 = 10000; // Ohm
// CAN
const int n = 10;
const int VPE = 5;
// -------------------------------------------------------
// Variables
// -------------------------------------------------------
int LDR = A0;    // La LDR et son conditionneur sont connectés sur la broche A0
int N = 0;       // Sortie du CAN : image de la luminosité
double Ev = 0.0; // Résultat du calcul de la luminosité, f(N)
// Coefficients utilisés pour simplifier le calcul de la luminosité
// kcan, k0
double kcan = pow(2, n) / VPE;
double k0 = kcan * Vcc * R1;
// k1, k2, k3
double k1 = k0 / R0;
double k2 = R1 / R0;
double k3 = 1 / k;
//------------------------------------------------------
// -------------------------------------------------------
void setup()
{
    Serial.begin(9600); //  Fenêtre "serial" pour la mise au point
}
// -------------------------------------------------------
void loop()
{
    N = analogRead(LDR);
    double a = k1 / N - k2;
    Ev = pow(a, k3);
    Serial.println(N);
}

Télécharger le projet PlatformIO pour VSCode.

1.2.1 Généralités

Une photodiode est un composant semi-conducteur ayant la capacité de détecter un rayonnement du domaine optique et de le transformer en un signal électrique. Wikipédia

  • Symbole

1.2.2 Module ADA1384 (3 à 55000lux)

ADA1384

Le module ADA1384 de Adafruit est basé sur un capteur de lumière analogique GA1A12S202 permettant de mesurer une intensité lumineuse de 3 à 55000 Lux. Une résistance de 68 kΩ transforme le courant Io en une tension.
  • Caractéristiques
    • Alimentation : -0,3 à 7 Vcc (recommandée 2,3~3,2V)
    • Sortie: 0 à 3 V
    • Plage de mesure: 3 à 55000 Lux
    • Capteur: GA1A12S202
    • Dimensions: 13 x 10 x 12 mm

  • Documentation
    • PDF à télécharger ici

  • Modèle
    • PDF et fichier Excel à télécharger ici

  • Aide pour la simulation de la chaîne de mesure
    • Les équations de la chaîne de mesure sont téléchargeables ici
    • Le modèle à simuler est téléchargeable ici

  • L'algorithme du traitement à réaliser (Ev=f(N)) est téléchargeable ici
  • Exemple de test à télécharger ici
  • Programmation d'une carte Arduino Uno R3
    • Bibliothèques à installer dans l'IDE : aucune
    • Connexion à un shield Tinkerkit v2.

  • Un premier exemple pour tester le capteur
ADA1384.cpp
/*-------------------------------------------------------------
  Source : https://learn.adafruit.com/adafruit-ga1a12s202-log-scale-analog-light-sensor/use-it
  Test sketch for the Adafruit Analog Light Sensor
  by Bill Earl
  for Adafruit Industries
 
  Connect sensor output to Analog Pin 0
  Connect 5v to VCC and GND to GND
  Optionnel : Connect 3.3v to the AREF pin 
  -------------------------------------------------------------
  Adapté et testé par P. Mariano
  Test réalisé avec un montage potentiométrique (0 - 3,3v) : ok
 -------------------------------------------------------------*/
 
int sensorPin = A0; //
 
float rawRange = 1024; // 2^n
float logRange = 5.0; // VPE (tension pleine échelle)
 
void setup() 
{
  //analogReference(EXTERNAL); // si la tension de référence est externe
  Serial.begin(9600);
  Serial.println("Adafruit Analog Light Sensor Test");
}
 
void loop() 
{
  // read the raw value from the sensor:
  int rawValue = analogRead(sensorPin);    
 
  Serial.print("Raw = ");
  Serial.print(rawValue);
  Serial.print(" - Lux = ");
  Serial.println(RawToLux(rawValue)); 
  delay(1000);
}
 
float RawToLux(int raw)
{
  float logLux = (raw * logRange) / (0,68*rawRange); 
  return pow(10, logLux);
}

Télécharger le projet PlatformIO pour VSCode.

2.1.1 TSL2561 (Archives)

TSL2561 Luminosity Sensor

  • Source : wiki Adafruit
Capteur de luminosité Adafruit basé sur un TSL2561 permettant de mesurer une luminosité de 0,1 à 40000 Lux. Il communique avec un microcontrôleur type Arduino via le bus I2C.
  • Distributeur : produit obsolète
  • Caractéristiques
    • Alimentation: 2,7 à 3,6 Vcc
    • Interface I2C
    • Plage de mesure: 0,1 à 40000 Lux

  • Documentation
    • Fichier Acrobat Reader à télécharger ici
  • Programmation d'une carte Arduino Uno R3
    • Bibliothèques à installer dans l'IDE
    • Connexion à un shield Tinkerkit v2.

  • Un premier exemple pour tester le capteur
    • Fichier → Exemples → Adafruit TSL2561 → sensorapi.ino
Voir le réglage de l'adresse dans l'exemple.

Le projet Arduino pour l'IDE VSCode de l'exemple ci-dessus est téléchargeable ici

2.1.2 VEML7700 (0 à 120000lux)

VML7700

Ce module Gravity de DFRobot basé sur un capteur haute résolution VEML7700 permet de connaître la luminosité ambiante.
  • Caractéristiques
    • Alimentation: 3,3 ou 5 Vcc
    • Consommation: au travail: 45 µA, au repos: 0,5 µA
    • Interface: I2C
    • Plage de mesure: 0 à 120000 lux
    • Précision: 0,0036 lux/ct
    • Température de service: -25 à 85 °C
    • Dimensions: 30 x 22 mm
    • Poids: 12 g

  • Documentation
    • Fichier Acrobat Reader à télécharger ici
  • Programmation d'une carte Arduino Uno R3
    • Bibliothèques à installer dans l'IDE : VEML7700

  • Un premier exemple pour tester le capteur
    • Fichier → Exemples → Adafruit VEML7700_Library → veml7700_test.ino

2.1.3 BH1750 (1 à 65535lux)

Le module BH1750 se compose d'un capteur de lumière, connecté à un CAN 16 bits. Il transmet la valeur de la luminosité en lux via un bus I2C. Ce module est monté sur un circuit imprimé avec une alimentation 5V→3,3V et les circuits d'adaptation de tension sur les lignes SDA et SCL.
  • Caractéristiques
    • Alimentation: 2,4 ou 3,6 Vcc
    • Consommation: au travail: 120 µA, au repos: 15 µA
    • Interface: I2C
    • Plage de mesure: 0 à 65536 lux
    • Précision: 1,2 lux
    • Résolution: réglable 1lux(120ms) 4lux(16ms)
    • Température de service: -25 à 85 °C

  • Programmation d'une carte Arduino Uno R3
    • Bibliothèque à installer dans l'IDE : BH1750
      1. Télécharger l’archive ZIP de la librairie depuis GitHub sans la décompresser.
      2. Depuis l’IDE Arduino, aller dans le menu Croquis→Inclure une bibliothèque→Ajouter la bibliothèque .ZIP
      3. La bibliothèque BH1750 apparaît maintenant dans le gestionnaire de bibliothèques de VSCode.
    • Connexion à un shield Tinkerkit v2 monté sur une Arduino Uno.

  • Un premier exemple pour tester le capteur
    • F1 → Arduino Examples → Examples from Custom Libraries → BH1750-master → BH1750test.ino

2.1.4 SEN0390 (1 - 200klux - I2C)

  • Source : wiki DFRobot
Ce capteur de lumière ambiante est emballé dans un boîtier semi-sphérique transparent qui offre une meilleure puissance de collecte de la lumière. Le capteur prend en charge la plage de détection 0-200klx et la communication I2C. La réponse spectrale de la photodiode sur puce est optimisée pour imiter la perception de la lumière ambiante par l'œil humain et intègre une capacité de blocage des infrarouges et des UV. Le bloc de gain adaptatif sélectionne automatiquement la plage de lux correcte pour optimiser les comptes/lux.
  • Caractéristiques
    • Alimentation: 2,7 à 6 Vcc
    • Consommation: 0,7 mA
    • Plage de mesure: 0 à 200 klux
    • Précision: 0,054 lux
    • Interface: I2C
    • Température de service: -40 à 85 °C
    • Dimensions: Ø28,5 x 18 mm

  • Bibliothèques à télécharger dans l'IDE

  • Un premier exemple pour tester le capteur avec l'IDE Arduino
    → Fichier → Exemples → DFRobot B LUX V30B → getLightIntensity.ino
  • materiels/capteurs/eclairement/luminosite.txt
  • Dernière modification : 2022/08/04 17:56
  • de phil