dimanche 24 juin 2012

Expérimentation avec des LEDs

Ce week-end, quelques jeux avec des LEDs.
Les LEDs (ou DEL en Français) sont des diodes électro-luminescentes, qui produisent de la lumière (d'une certaine onde, couleur) lorsqu'elles sont alimentées électriquement. Souvent utilisé pour des indicateurs lumineux sur divers appareils que l'on trouve autour de soit.

Je dispose de quelques LEDs de plusieurs couleurs et différentes puissances.

Après quelques lectures j'ai appris les bases des LEDs :
  • Elles sont orientés (une patte plus longue indique le +), branché à l'envers elles ne fonctionne pas.
  • Elles n'acceptent pas beaucoup de puissance, il faut limiter le courant avec une résistance sous peine de la griller (généralement 1 kΩ, la valeur de la résistance permet de faire varier la luminosité).
  • Elle peuvent fonctionner comme capteur de lumière basique (la présence de lumière provoque la création d'un faible courant) : intéressant...
Avec une carte Arduino, on peut donc utiliser une ou plusieurs LEDs suivant les principes suivants :
  • Brancher la LED sur une sortie numérique (dite tout-ou-rien), qui envoient 0 (LOW) ou 5 volts (HIGH) : éteint ou allumé pour la LED.
  • Brancher la LED sur une sortie en mode PWM (qui génère un signal 0-5 volts a une fréquence donnée très rapide), la vitesse d'allumage/extinction étant rapide, l'œil humain voit une LED plus ou moins lumineuse, cela permet de "piloter la puissance" de la LED.
  • Brancher la LED sur une entrée analogique qui converti le signal électrique entrant en une valeur entre 0 et 1023.
J'ai bricolé un petit montage rapide pour tester un peu plus la LED comme capteur.
  • J'ai donc mis une LED pilotée par une sortie PWM (qui me permet d'en modifier la "puissance lumineuse" par programmation), avec la résistance 1 kΩ qui va bien.
  • J'ai mis en face une LED branchée comme capteur (sur l'entrée analogique A0)
  • J'ai mis a coté une LED branchée sur une autre sortie PWM dont le but et de visualiser l'inverse de la luminosité captée (peu de lumière captée : forte puissance de pilotage), avec résistance 1 kΩ.
  • Pour faciliter la lecture des valeurs mesurées, le programme fait la moyenne de 500 mesures consécutives (ça va très vite) et envoi le résultat sur l'interface série de l'Arduino, ce qui permet d'en lire la valeur dans la console du logiciel Arduino sur l'écran de l'ordinateur.
  • En mode autonome (sans ordinateur sur l'USB et donc avec une alimentation externe : 4 piles 1,5 volts) c'est la LED rouge qui indique la luminosité mesurée.
Lors de mes premiers essais, j'ai utilisé l'entrée analogique par défaut et je n'obtenais que des mesures comprises en 0 et 250, alors que le maximum théorique est de 1024 avec le convertisseur Arduino. Après avoir un peu exploré la documentation, j'ai définit l'entrée analogique pour utiliser la tension interne de 1,1 volts comme tension de référence plutôt que la tension d'alimentation par défaut de l'USB (environ 5 volts). J'ai alors obtenu une plus grande échelle de valeur : de 0 à 1023, comme prévu.

Quelques constats :
  • Les valeurs mesurées sont assez faible, de l'ordre de 250 maximum dans un bureau bien éclairé (mais pas en plein soleil). En fait ça dépend aussi de la tension de référence. En configurant l'entrée avec la tension interne de 1,1 volts, j'obtiens des mesures jusqu'à 1000 et plus. Un point à explorer.
  • La LED voisine (allumée ou éteinte) n'a aucune influence sur la mesure en environnement normal (pièce éclairé par la lumière du jour).
  • Une petite ombre (ma main) qui passe devant la fenêtre (source principale de lumière) a 20 cm abaisse la valeur de 5 à 10.
  • Une ombre plus importante (la main fixe qui cache la fenêtre a moins de 10 cm) a un effet un peu plus important : une baisse de 12 à 20. Autant que l'effet d'un petit nuage dehors.
  • Il faut couvrir le montage avec la main pour avoir un effet de l'ordre de -40.
    • En mettant une boite en carton par dessus et en rapprochant la LED émettrice et réceptrice on obtient un effet un peu plus lié.
    • Avec une émission de 0 (LED émettrice éteinte, mais de la lumière extérieure filtre un peu) on mesure de 100 à 120.
    • Avec une émission maximale de la LED (sous 5 volts et avec un résistance de 1 kΩ), on mesure de 170 à 200.
L'effet d'une LED active (émission de lumière) sur une LED réceptrice reste donc assez faible. Il faut protéger l'ensemble de la lumière extérieure pour pouvoir l'exploiter et éventuellement utiliser des LEDs plus puissante ou plus directives.

Détail mesure rotation sur souris mécanique
C'est pourtant ce principe qui était utilisé dans les vieilles souris à boule : une boule roule sur la surface du bureau entrainant des roulettes qui entraine un axe au bout duquel est installé une petite roue en plastique perforée. De chaque coté de la roue on dispose d'une LED émettrice et une autre réceptrice : voir schéma.
J'ai d'ailleurs démonter une vieille souris Mac ADB dont c'est précisément le principe de fonctionnement. On constate d'ailleurs qu'il y a 2 roues (une pour l'axe X et l'autre pour l'axe Y) et que chaque roue est équipée de 2 détecteurs, peut être pour déterminer le sens de rotation ou pour fiabiliser la mesure ?
On notera que sur la photo ci-contre les 2 LED sont très proche, protéger de la lumière extérieure par le capot plastique, que leur capot est différent des LED classique et semble optimisé pour que la lumière soit directive. D'autre part l'une est rouge, l'autre blanche. Il semble que la LED émettrice soit infrarouge.

Une LED comme capteur de lumière, peut servir en environnement ouvert à avoir une indication de la luminosité ambiante. Elle peut aussi servir de capteur par obstrusion de la lumière mais cela réclame un environnement lumineux maitrisé (protégé de la lumière naturelle).

Aucun commentaire:

Enregistrer un commentaire