Arduino : Comment faire clignoter une LED ?

Niveau : débutant

f-leb

La LED (Light Emitting Diode ou DEL pour diode électroluminescente) est un composant peu onéreux qui a la particularité d’émettre de la lumière lorsqu’il est parcouru par un courant. Ce tutoriel montre comment faire clignoter une LED comme celles à tête ronde 3 ou 5 mm que l’on retrouve dans la plupart des kits pour débuter sur Arduino.

Commentez

- Titre : Arduino : Comment faire clignoter une LED ?

- Auteur : f-leb

- Parution : 12 juillet 2021

- Licence : Copyright ® 2021 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Voir également :

- Les Cahiers Pratiques Arduino, une série de tutoriels pour débuter

Sommaire

- I. Qu’est-ce qu’une LED ?

- II. Montage avec une résistance en série

- III. Le code

- IV. Aller plus loin : dimensionner la résistance de protection

- V. Ressources sur Developpez

I - Qu’est-ce qu’une LED ?

Il s'agit d'un dipôle (deux broches) polarisé (il a un sens de branchement avec une borne positive, l'anode et une borne négative, la cathode) qui fonctionne en courant et tension continus. La LED ne conduit que dans un seul sens (anode vers cathode). Dans l'autre sens, elle est dite bloquée, mais ne supportera pas une tension inverse élevée (claquage).

LED à tête ronde 3 et 5 mm verte, jaune, orange, rouge, bleue et blanche. La patte la plus courte est la cathode.

Le méplat sur la tête de la LED indique la position de la cathode.

Schéma d’une LED → A : anode ; K : cathode

Lorsqu'une LED est passante et qu’un courant suffisant la traverse dans le sens direct (forward) de l’anode vers la cathode, elle s’illumine.

II - Montage avec une résistance en série

LED en série avec une résistance. La cathode de la LED (patte la plus courte) est reliée à la masse GND. Si la broche 12 est mise à l’état haut (5 V), la LED s’illumine.

La résistance électrique montée en série est indispensable pour limiter le courant, car au-delà d’une certaine valeur d’intensité, la LED grille ! (La broche de l’Arduino Uno ne tolérera pas non plus d’absorber une intensité qui dépasse 40 mA sans dommage, mais la LED devrait griller avant).

Pour les LED habituelles, celles que l’on trouve dans les kits Arduino, une résistance entre 220 Ω et 330 Ω conviendra.

III - Le code

Pour allumer la LED, il suffit de mettre la broche 12 où est reliée l’anode de la LED à l’état haut, et de la remettre à l’état bas pour l’éteindre.

Si on alterne les périodes (ici, toutes les secondes) où la LED est allumée puis éteinte, elle clignote.

blink.ino

/************************************************************
Faire clignoter une LED
Clignotement de période 2s, soit une fréquence de 0,5Hz
Cathode --> GND, Anode --> 12, résistance en série 220 ohms
*************************************************************/
const byte pinLed = 12;

void setup()
{
pinMode(pinLed, OUTPUT); // Broche configurée en sortie
}

void loop() // Boucle infinie
{
digitalWrite(pinLed, HIGH);    // Sortie à l’état haut
delay(1000);                   // Temporisation 1000 ms = 1 s
digitalWrite(pinLed, LOW);     // Sortie à l’état bas
delay(1000);                   // Temporisation 1000 ms = 1 s
}

IV - Aller plus loin : dimensionner la résistance de protection

On montre ci-dessous un exemple de courbe caractéristique courant-tension d’une LED :

On voit que le courant commence à circuler pour une tension de 1,7 V. Au-delà d’un seuil aux alentours de 1,9 V (tension de seuil), la tension varie très peu en fonction du courant.

Le seuil VF pour un courant direct IF de référence figure dans les documentations techniques (datasheets) des fabricants :

Ici pour une LED rouge, le fabricant recommande une intensité IF = 20 mA (20.10-3 A) qui donne une tension VF = 1,8 V (valeur typique).

Si on reprend le montage précédent avec l’Arduino et la LED, lorsque la broche 12 est à l’état haut, elle fournit une tension Ve = 5 V. Le schéma électrique équivalent est alors le suivant :

Schéma électrique équivalent

D’après la loi d’Ohm, la tension aux bornes de la résistance est Rp.IF.

La loi des mailles donne : Ve = VF + Rp.IF, soit si IF est non nul Rp = (Ve - VF) / IF (tensions en volts, intensité en ampères, résistance électrique en ohms).

Si on prend les caractéristiques nominales de la LED rouge précédente (tension et intensité de seuil VF et IF), on obtient :

Rp = (5 - 1,8) / 20.10-3 = 160 Ω

Compte tenu de la précision et des gammes échelonnées de valeurs des résistances, il vaut mieux prendre une valeur supérieure qui va minimiser le courant. Ici, 180 Ω ou 220 Ω conviendra.

Les valeurs typiques de seuil (VF et IF) variant beaucoup d’un modèle à l’autre, en cas de doute il vaut mieux être prudent sur l’intensité qui traverse la LED, et majorer la valeur de RP (270 Ω, voire 330 Ω). Il sera toujours temps après coup de diminuer un peu la valeur de la résistance si la luminosité devient trop faible.

Quelques ordres de grandeur pour les tensions de seuil : 1,6 V à 2 V pour les rouges ; 2 V à 2,1 V pour les oranges ; 2,1 V à 2,2 V pour les jaunes ; 1,9 V à 4 V pour les vertes ou encore 2,5 V à 3,7 V pour les bleues. On voit qu'il y a une grande variabilité et donc le choix de la résistance est important pour protéger le matériel. De plus, lorsque l'on a des LED de couleurs différentes dans son montage, il faudra adapter les résistances pour avoir une « brillance » uniforme.

V - Ressources sur Developpez

- Application : faire clignoter une DEL

- Les diodes électroluminescentes

- LED ou DEL

- Les sorties numériques

Et si vous avez encore des questions, n’hésitez pas à ouvrir une discussion dans le forum Arduino.