Une photo-résistance est un composant dont la résistance varie en fonction de l’intensité lumineuse s’appliquant sur sa surface. On peut s’en servir pour détecter s’il fait jour ou nuit, mais aussi, en utilisant une paire de photo résistances, déterminer la direction d’une source lumineuse. Ce composant pourra par exemple servir à orienter un panneau solaire vers le soleil et ainsi maximiser l’énergie reçue… On pourra également s’en servir pour un robot suiveur de ligne, ou pour détecter le mouvement d’un objet qui obstruerait une source lumineuse. Les applications sont très nombreuses, et ce composant est économique et simple à utiliser, alors pourquoi s’en priver?
Ce billet vise à décrire la lecture des valeurs d’une photodiode en utilisant un Raspberry Pi. Nous avons vu comment lire des valeurs analogiques en utilisant une puce MCP3008, et nous utiliserons ce même montage pour lire notre photo résistance. Si vous utilisez un Arduino, c’est encore plus simple, puisqu’il suffira de connecter la broche de lecture à une broche analogique du Arduino, et de remplacer l’alimentation 3.3V par une alimentation 5V sur le schéma.
De nombreux tutoriels sont disponibles pour Arduino, par exemple celui d’Adafruit : Utiliser une photorésistance avec un Arduino.
Voyons maintenant de quoi nous aurons besoin.
- Une photorésistance
- Une résistance classique d’environ 1-2KOhm (valeur à adapter à ce que vous voulez mesurer)
- Un Raspberry Pi
- Un MCP3008 connecté au Raspberry pi
- Comme d’habitude, c’est plus facile avec une breadboard, mais on peut faire sans.
Nous allons connecter la première patte de notre photorésistance au 3.3V. (fil rouge sur le schéma). La seconde patte sera connectée à une broche de lecture du MCP3008 (fil jaune), mais également à la première patte de la résistance choisie. La seconde patte de la résistance quand à elle sera connectée à la masse du Raspberry (fil noir). Cette résistance est une résistance pull-down, et est nécessaire au fonctionnement du dispositif.
Voici en pratique ce que cela donnera :
Il suffira maintenant de lire la valeur de la patte sélectionnée (dans notre cas, la patte 1, donc l’entrée 0 dans le code), en utilisant le code présenté dans l’article sur le MCP3008, qui est également téléchargeable ici : Lecture de la valeur d’un capteur analogique en utilisant le circuit MCP3008.
Pour ajuster la valeur de la résistance pull-up, il faudra prendre en compte la plage de luminosité que vous souhaitez mesurer. En pratique, vous pouvez utiliser le tableau d’Adafruit sur cette page pour ajuster la valeur à vos besoins (sachant que nous travaillons en 3.3v, on peut baisser un peu leurs valeurs). Dans tous les cas, si vous travaillez sur un système simple qui détecte le jour ou la nuit, la plupart des valeurs conviendront.
[…] Nous cherchons à créer une station météo/de mesures de paramètres environnementaux. Il sera donc bien entendu nécessaire de pouvoir lire la valeur de divers capteurs pour que cela fonctionne. Dans un premier temps, nous commencerons par des capteurs simples, économiques et facilement disponibles. Des capteurs comme le TMP36 pour la température, le DHT11 ou un DHT22 pour la température et l’humidité, des photo-résistances pour mesurer la luminosité… […]
[…] Pi. Il est dès lors possible d’exploiter des capteurs analogiques, pour par exemple mesurer la luminosité ambiante avec une photorésistance. On pourra également mesurer la distance […]