Une Diode ÉlectroLuminescente -DEL- ou LED en Anglais pour Light-Emitting Diode, est un composant qui émet de la lumière lors qu’il est parcouru par un courant.
Le sens du courant est important car elle n’émet que dans le sens passant, dans le sens inverse elle reste éteinte.
Afin de limiter le courant, il faut mettre en série une résistance préalablement calculée.
Utilisation d’une LED
Identifier la led
L’anode doit être branchée au potentiel le plus élevé, est la branche la plus longue et la cathode.
Trois « astuces » :
- Si les branches sont coupées, à regarder de près, à l’intérieur de la led, l’anode est plus petite que la cathode (l’inverse des broches)
- Pour reconnaître la Cathode, en allemand elle s’appelle Kathode comme le K qu’elle représente
- Ou C comme courte pour retrouver la longueur de la patte
Courant et tension aux bornes de la diode LED
Figure 1 caractéristique d’une led rouge, verte et bleue
La courbe obtenue (Courant en fonction de la tension) n’est pas une droite : c’est un élément non-linéaire.
Ce qui signifie que le courant circulant dans l’élément n’est pas proportionnel à la tension qui lui est appliquée.
La tension aux bornes de la diode est appelée Tension Direct notée et le courant courant direct notée souvent (Forward Current) et bien sûr et pour la tension et le courant direct maximal.
Faut-il mettre une résistance ?
Le but de la résistance est de limitée le courant (loi d’Ohm). Elle est obligatoire pour ne pas détériorer la LED.
En effet, si l’alimentation peut fournir assez de courant, une tension de 3.3V d’un microcontrôleur va générer un courant qui va augmenter de façon trop importante dans la diode et va griller.
Calcul de la résistance à mettre
La formule, qui saura démontrée en TD, donnant la résistance en fonction de la tension d’alimentation et celle directe aux bornes de la diode LED est :
Démonstration
Soit
D’après la loi des mailles :
Application numérique avec Arduino
En sachant que l’Arduino sort en 5 Volts et la tension direct d’une led rouge est de 1.8 volt, le courant vaut :
Application numérique pour une rouge Uled=1.93 V et I = 20mA d’où
On pourrait dire que la valeur supérieure et la plus commune est 220 Ω.
Mais si on prend 330 Ω :
ce qui est encore suffisant pour l’allumer
Conseil : le plus important c’est que la led s’allume, prendre la résistance la plus grande est le meilleur des choses pour ne pas réduire la longévité de la carte et pouvoir utiliser d’autres capteurs/actionneurs
Par « habitude », sur Arduino on prendra une résistance de 220 Ω en série avec la led et avec la Raspberry Pi une de 100 Ω .
Faut-il toujours limiter le courant ?
Une LED doit toujours être accompagnée d’une résistance, c’est la règle en mode continu.
MAIS, pour quelques secondes ce n’est pas forcément utile.
Explications : sur une Arduino, on pourrait mettre une diode sans résistance, cette carte débite pas plus de 40mA et une led peut supporter jusque 60 mA. Une seule pas plusieurs, une grosse et pas très longtemps.
Dans le cas contraire, la carte ne pourra pas débiter suffisamment de courant et il y en a trop pour une broche …
Led sans résistance
Le mieux, pour augmenter la longévité de la carte, est d’en mettre une résistance, assez grosse mais suffisante pour allumer la led.
Utilisation avec un microcontrôleur
La LED peut être connectée sur une broche numérique en sortie d’un microcontrôleur (Arduino, Raspberry Pi) de deux façons différentes :
Cathode vers la masse | Anode vers le Vcc |
Avec l’Arduino, la commande qui permet de mettre à l’état haut (1) une sortie numérique est
digitalWrite(numeroPort, HIGH);
De même pour mettre à l’état bas (0)
digitalWrite(numeroPort, LOW);
Ainsi :
Cathode vers la masse | Anode vers le Vcc | ||
Pour allumer la led, il faut un passage de courant entre la broche et la masse, donc la broche est à l’état haut
#define LedOn digitalWrite(Led,HIGH)
|
Pour allumer la led, il faut un passage de courant entre le 5V et la broche, donc la broche est à l’état bas
#define LedOn digitalWrite(Led,LOW)
|
Les leds RGB
Pour simplifier, une led RGB est un ensemble de trois leds Rouge, Verte et Bleue dont une des deux pattes est soudée :
On distingue deux types :
- Anode commune
- Cathode commune
Dans les deux cas la patte la plus longue est la patte commune.
Ainsi pour avoir une couleur rouge il faut :
Cathode commune | Anode commune |
Broche R à Vcc
Broche G à la masse Broche B à la masse |
Broche R à la masse
Broche G à Vcc Broche B à Vcc |
La superposition de couleurs est possible mais le résultat est souvent décevant.
Les rubans à leds
Description
Les rubans à LEDs ou également appelés Ruban NeoPixel RGB sont des leds misent en série. La longueur totale peut faire plusieurs leds. On les trouve en rouleau qui peut être découpées :
Les LEDS RGB sont du type WS2812B (https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf) :
- Pilotable individuellement par liaison série
- Le circuit de contrôle est intégré à la led (CI+led)
- 60 mA par led
Généralement le microcontrôleur ne peut fournir le courant demandé (60 mA par led) : il est impératif d’utiliser une alimentation externe.
Le protocole série
Le protocole de communication, maitre et esclave, est de type NZR (Non Return to Zero).
Le maitre est microcontrôleur (Arduino, Raspberry Pi) et les WS2812B les esclaves. Pour contrôler les WS2812B, le maitre enverra une trame composée des données destinées à chaque LED. Chaque WS2812B a besoin de recevoir une trame de 24 bit (8 bits de vert, 8 bits de rouge et 8 bits de bleu, les premiers bits sont les plus significatifs).
Datasheet
Par exemple le schéma de trois leds WS2812B en série est (source https://wikitge-cmaisonneuve.profweb.ca/index.php/Protocole_NZR_(pour_LED_WS2812B)) :