Arduino – Capteur de luminosité

Bonjour à tous,

Pour reprendre un peu le rythme des tutos, un petit tutoriel pour lire une photorésistance et ainsi calculer la luminosité dans une pièce.

Le matériel

  • Un Arduino (Uno Rev 3 dans mon cas)
  • Une breadboard 170 pts
  • Une photorésistance
  • Une résistance 10Kohm

Et évidemment quelques fils de connexion mâle / mâle. Et c’est tout. C’est un montage on ne peut plus simple, qui permettra ensuite d’être facilement étendu pour interagir avec d’autres éléments.

La photo résistance
La photo résistance

Vous pouvez acheter ces photorésistances sur ebay pour moins d’un euros assez facilement !

Le principe

Une photorésistance est un composant dont la résistivité dépend de la luminosité ambiante. On va donc s’en servir pour détecter le fortes variation de la luminosité.

On note l’illumination en « lux », voici un graphe qui montre l’évolution en lux en fonction de la résistance :

graph

Il faut noter aussi que ces capteurs ne sont pas sensibles de la même manière à toutes les longueurs d’onde (et donc aux couleurs). Les lumières bleues seront par exemple moins efficaces que des lumières jaunes / vertes.

Je vous invite à faire un tour sur la page wikipedia qui explique ce que sont les Lux. On notera notamment ce tableau de valeur indicative :

Activité ou lieu concerné Éclairement moyen
Sensibilité d’une caméra de bas niveau 0,001 lux
Nuit de pleine lune 0,5 lux
Rue de nuit bien éclairée 20 à 70 lux
Local de vie 100 à 200 lux
Appartement bien éclairé 200 à 400 lux
Local de travail 200 à 3 000 lux
Stade de nuit (suivant les différentes catégories (E1,E2,E3,E4,E5)) 150 à 1 500 lux
Extérieur par ciel couvert 500 à 25 000 lux
Extérieur en plein soleil 50 000 à 100 000 lux

Le montage

Vu le peu de composants, vous allez voir, le montage est extrêmement complexe !

Montage pour lire la photorésistance
Montage pour lire la photorésistance

Hop, finger in ze noze comme on dit !

Le montage
Le montage
Zoom sur la photorésistance
Zoom sur la photorésistance

Le code

On va, comme souvent, se baser sur un code fournit par Adafruit.

/* Photocell simple testing sketch.
Connect one end of the photocell to 5V, the other end to Analog 0.
 Then connect one end of a 10K resistor from Analog 0 to ground
For more information see http://learn.adafruit.com/photocells */

int photocellPin = 0; // the cell and 10K pulldown are connected to a0
int photocellReading; // the analog reading from the analog resistor divider

void setup(void) {
  // We'll send debugging information via the Serial monitor
  Serial.begin(9600);
}

void loop(void) {
  photocellReading = analogRead(photocellPin);
  Serial.print("Analog reading = ");
  Serial.print(photocellReading); // the raw analog reading
  // We'll have a few threshholds, qualitatively determined
  if (photocellReading < 10) {
    Serial.println(" - Noir");
  } else if (photocellReading < 200) {
    Serial.println(" - Sombre");
  } else if (photocellReading < 500) {
    Serial.println(" - Lumiere");
  } else if (photocellReading < 800) {
    Serial.println(" - Lumineux");
  } else {
    Serial.println(" - Tres lumineux");
  }
  delay(5000);
}

Voila pour le code.
Dans le cas d’une utilisation plus poussée au sein d’un montage plus complexe, on se contentera évidemment de lire le pin analog sans afficher d’info.

Idées d’utilisations

Voici plusieurs exemple d’utilisation de ce capteur.

  • Contrôle de la lumière : éteindre automatiquement la lumière d’une pièce grâce à un relais contrôlant l’arrivé de courant de la lampe. Lorsque la lumière est forte, on envoi alors un signal au relai pour qu’il se ferme ou reste fermé, inversement, quand il fait sombre, il déclenche l’allumage de la lumière. Si on rajoute à cela un capteur de mouvement ou de présence, cela permet de gérer plus finement le fonctionnement. Le must : mettre cela en place pour une serre, afin de diffuser de la lumière en permanence sur ses plants.
  • Robot suiveur de lumière : un robot (de ce type par exemple), qui va se diriger vers la source la plus lumineuse, assez fun à utiliser.
  • Station météo : ce genre de petit composant peu chère a tout à fait sa place au sein d’une station météo.

Et évidemment, bien d’autres applications auxquelles je n’ai pas encore pensé.

Personnellement, je compte utiliser de tels capteurs au sein de Ydle, pour pouvoir créer des scénarios d’allumage / extinction de pièces.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *