Faire clignoter une LED

Comment faire clignoter une LED ?

Pour commencer, il faut comprendre comment câbler notre montage. Je vous invite à lire la section de mon site sur les bases de l’électronique. Comme je l’indique, une LED émet de la lumière lorsqu’elle est parcourue par un courant. L’intensité du courant qui circule dans une LED doit être comprise entre 5 et 20 mA en fonction de la luminosité recherchée. Plus le courant est fort plus la LED sera lumineuse. Mais attention à ne pas dépasser 20 mA pour ne pas détruire la LED.

Le rôle de la résistance est de limiter ce courant, et il faut donc calculer cette résistance afin d’avoir un courant d’environ 15 mA. Nous allons utiliser une sortie numérique de l’Arduino Uno pour alimenter notre LED. Il faut savoir qu’une sortie numérique de l’Arduino a une tension de 5 V lorsqu’elle est à l’état HAUT (HIGH). En appliquant la loi d’Ohm, nous déterminons que la résistance à utiliser doit avoir la valeur d’environ 300 Ω.

Voici le détail du calcul (attention comme nous le verrons plus bas il s’agit ici d’une approximation car la tension aux bornes de la LED n’est pas pris en compte) :
U = R x I
R = U / I = 5 V / 0.015 A = 333 Ohm

Nous allons donc utiliser une résistance de 300 Ω afin d’alimenter la LED avec un courant de 16 mA. Il est possible de mettre cette résistance entre la broche de sortie de l’Arduino et l’anode de la LED, ou entre la cathode de la LED et le masse.

Que se passe t-il si on oublie de mettre cette résistance et que la LED est reliée directement entre la sortie de l’Arduino Uno et la masse ? Et bien la LED va être détruite car le courant qui va y circuler sera beaucoup trop important.

Pour faire clignoter la LED nous allons la relier à une sortie numérique de l’Arduino Uno. Il suffit de faire varier l’état de cette sortie pour allumer ou éteindre la LED. La LED est éteinte lorsque la sortie est à l’état BAS et la LED est allumée lorsque la sortie est à l’état HAUT.

Voici le schéma, nous utilisons la sortie numérique 2 de l’Arduino Uno et une résistance de 300 Ω.

schéma-clignotement-led
Schéma du montage pour faire clignoter une LED avec un Arduino

Voici le croquis (programme) qui va tourner sur notre Arduino :

// Clignotement d'une LED rouge
// https://tutoduino.fr/
// Copyleft 2020

// La LED est reliee sur la broche 2 de l'Arduino Uno
#define BROCHE_LED_ROUGE 2

void setup() {

  // Declare la broche sur laquelle la LED est  
  // reliee comme une sortie de l'Arduino Uno
  pinMode(BROCHE_LED_ROUGE, OUTPUT);
}

void loop() {
  
  // Passer le sortie de l'Arduino à l'état HAUT pour allumer la LED
  digitalWrite(BROCHE_LED_ROUGE, HIGH);
  
  // Attendre 1 seconde, pendant ce temps le processeur ne fait rien
  // et la LED reste donc allumee
  delay(1000);
  
  // Passer le sortie de l'Arduino à l'état BAS pour eteindre la LED
  digitalWrite(BROCHE_LED_ROUGE, LOW);    

  // Attendre 1 seconde, pendant ce temps le processeur ne fait rien
  // et la LED reste donc éteinte
  delay(1000);

}

Voici le résultat en vidéo :

Faire clignoter plusieurs LED

Nous allons voir qu’il est aussi simple de faire clignoter plusieurs LED. Il suffit de relier chaque LED sur une sortie différente de l’Arduino et de rajouter une résistance par LED.

schéma pour faire clignoter 3 LED
Schéma du montage pour faire clignoter 3 LED
// Clignotement de plusieurs LED 
// https://tutoduino.fr/
// Copyleft 2020

#define BROCHE_LED_ROUGE 2
#define BROCHE_LED_VERTE 3
#define BROCHE_LED_JAUNE 4

void setup() {

  pinMode(BROCHE_LED_VERTE, OUTPUT);
  pinMode(BROCHE_LED_JAUNE, OUTPUT);
  pinMode(BROCHE_LED_ROUGE, OUTPUT);
}

void loop() {
  digitalWrite(BROCHE_LED_ROUGE, HIGH);
  delay(1000); 
  digitalWrite(BROCHE_LED_VERTE, HIGH);
  delay(1000);
  digitalWrite(BROCHE_LED_JAUNE, HIGH);
  delay(1000);
  digitalWrite(BROCHE_LED_VERTE, LOW);    
  digitalWrite(BROCHE_LED_JAUNE, LOW);    
  digitalWrite(BROCHE_LED_ROUGE, LOW);    
  delay(1000);                       
}

Impact de la résistance sur la luminosité de la LED

Comme indiqué plus haut, la luminosité de la LED dépend du courant qui y circule. Avec une tension fixe de 5 V, le courant est fonction de la résistance utilisée.

Voici un exemple de luminosité en utilisant 3 résistances différentes (220 Ω, 470 Ω et 3.3 kΩ) avec 3 LED identiques.

différence de luminosité d'une LED en fonction de la résistance utilisée

Tension aux bornes d’une LED

Nous pouvons considérer que la tension aux bornes d’une LED est égale à sa tension de seuil, quelque soit le courant qui la parcourt. Des LED de couleurs différentes ont souvent des tensions de seuil différentes, voir ce tableau récapitulatif.

Voici le calcul du courant qui circule dans une LED en fonction de la résistance utilisée et de sa tension de seuil :

Tension aux bornes d'une LED

Le courant qui circule dans la LED est le même que le courant qui circule dans la résistance.

I = UR / R = (5 – ULED) / R
car
ULED+UR = 5 Volts

Pour une LED bleue, ULED = 2.8 V. Avec une résistance de 220 Ω, nous avons :
I = (5 – 2.8) /220 = 10 mA

Pour une LED rouge, ULED = 1.9 V. Avec une résistance de 220 Ω, nous avons :
I = (5 – 1.9) /220 = 14 mA

Il faudra donc prendre en compte la tension de seuil de la LED pour calculer correctement la valeur de la résistance à utiliser en fonction de l’intensité du courant souhaité.