Contrôle d'une LED de plusieurs façon

La LED

Introduction

Dans ce tutoriel, nous allons étudier différentes façons de gérer et commander une LED à l'aide d'une carte microcontrôleur de type UNO. 

1/ Présentation de la LED

La led (light emitting diode en anglais et diode électroluminescente en français) est un composant opto électronique qui émet de la lumière. Elles sont utilisées dans plusieurs domaines tel que l'éclairage domestique, l'automobile, les écrans de télévisions, la signalisation, l'isolation galvanique.
 
Elle est composée de deux broches, le pôle négatif (-) que l'on appelle la cathode et le pôle positif (+) que l'on appelle l'anode. Il faudra bien penser à respecter les pôles de celle-ci, sinon, le montage ne fonctionnera pas.
 
Les avantages des LED's sont nombreux : faible consommation d'énergie, résistant, excellente durée de vie, sécurisée car elles fonctionnent en très basse tension. Attention tout de même à bien les alimenter, elles ont besoins d'une tension stable. Comme tous composants électroniques, elles ne résistent pas aux fortes chaleurs.
 
Dans notre cas, nous utiliserons des LED's ayant une puissance inférieure à 1W et d'un diamètre de 3 ou 5 mm.

2/ Alimentation d'une LED en sortie d'un microcontrôleur

Pour un montage sur un microcontrôleur tel qu'une carte Arduino, nous aurons besoin d'ajouter une résistance en série de la LED. En effet, la tension assignée en sortie du microcontrôleur est de 5V. La plupart des LED's nécessitent 3V pour s'allumer, les 2V doivent être restituées dans la résistance.


Donc :

Le courant traversant la led est d'environ 20mA. Nous utilisons la loi d'ohm pour connaître la valeur de notre résistance : V = R.I En ayant les deux valeurs de tension Vled = 3V et Vtotal = 5V et le courant passant, alors on peut en déduire R :
R = (Vtotal - Vled) / I
R = (5 - 3) / 0.020
R = 100Ω
La résistance placée en série de la LED devra être égale à au moins 100Ω pour ne pas endommager celle-ci.

Passons à la pratique!

3/ Le marériel

- Une carte type UNO
 
- Une led de 3 ou 5 mm
 
- Une résistance d'une valeur au mois égale à 100Ω

- Une plaque d'essai

- Des fils de connexions



3.1/ Le programme

Le but de ce premier programme, sera de faire clignoter la LED câblée précédemment toutes les secondes.

/*Tutoriel sur la LED par IHM-3D */

int led = 2; // création de la vartiable "led" connectée à la broche 2 de la carte.

void setup() {

pinMode (led, OUTPUT); // on annonce que la variable led connectée sur la PIN 2 est une sortie
}

void loop() {

digitalWrite (led, HIGH);// nous souhaitons que l'ARDUINO envoie 5V à la sortie de "led"
delay (1000); // pendant 1 seconde (1000ms)
digitalWrite (led, LOW); // nous souhaitons que l'ARDUINO envoie 0V à la sortie de "led"
delay(1000); // pendant 1 seconde

}
/*********************FIN DU PROGRAMME***************************/



3.2/ Le résultat

Comme prévu, nous constatons que la LED s'allume pendant 1 seconde puis, s'éteint pendant 1 seconde. Le programme étant dans la "loop" (boucle), il effectue le programme en boucle.

3.3/ Contrôle de la luminosité d'une LED grâce à une sortie PWM de l'arduino

Tout d'abord, qu'est ce qu'une sortie PWM?
 
Si vous regardez de plus prêt votre carte ARDUINO, vous remarquerez qu'il y a des broches numérotées avec un signe en forme de "vague" à côté. Ce sont les broches qui bénéficient du PWM. Sur une carte UNO, il y a les broches 3, 5, 6, 9, 10, 11.
Pour utiliser cette fonction, nous utiliserons la commande analogWrite dans notre carte. Elle permet d'allumer et d'éteindre votre LED très rapidement, si bien que votre oeil ne pourra pas percevoir la différence. On appelle cela "la modulation de largeur d'impulsion". 

3.4/ Le montage

Il faudra déplacer votre fil relié à la résistance et la PIN 2 de la carte, à une PIN assignée PWM. Pour notre exemple, nous utiliserons la 3.
Le but sera de faire clignoter la LED toutes les secondes, et que la luminosité de la LED diminue à chaque intervalle de temps. Il faudra simplement remplacer digitalWrite par analogWrite. Attention, la fonction analogWrite a besoin de deux critères pour fonctionner dans ce montage : la variable de notre LED (led), et son niveau de luminosité. La fréquence d'une sotie PWM d'une carte ARDUINO est de 490 Hz sous 8 bits ce qui nous laisse 256 possibilités. A "0" la LED n'éclaire pas, à "255", la LED éclaire à son maximum. Le microcontrôleur varie simplement la tension.

3.5/ Le programme

/*Tutoriel sur la LED par IHM-3D */

int led = 3;//création de la variable "led" connectée à la broche 2 de la carte.

void setup() {
pinMode(led, OUTPUT);// on annonce que la variable led connectée sur la PIN 2 est une sortie
}

void loop() {
analogWrite(led, 255);//la led éclaire à son maximum
delay(1000);// pendant 1 secondes
digitalWrite(led, LOW);//on éteint la led
delay(1000);//pendant une seconde

analogWrite(led, 150);//la led éclaire 0.42 fois moins que son maximum
delay(1000);// pendant une seconde
digitalWrite(led, LOW);//on éteint la led
delay(1000);//pendant une seconde

analogWrite(led, 100);//la led éclaire 0.61 fois moins que son maximum
delay(1000);// pendant une seconde
digitalWrite(led, LOW);//on éteint la led
delay(1000);//pendant une seconde

analogWrite(led, 50);//la led éclaire 0.81 fois moins que son maximum)
delay(1000);//pendant une seconde
digitalWrite(led, LOW);//on éteint la led
delay(1000);//pendant une seconde
}
/*****************FIN DU PROGRAMME*****************/

3.6/ Création d'une rampe lumineuse

Nous utilisons le même principe pour créer une rampe lumineuse que le paragraphe précédent. A "0", la LED est éteinte et à "255" la LED brille à son maximum.


Voici le but de cette manipulation :

Nous allons ajouter une variable que l'on va appeler "illumine". Cette variable stockera la valeur de la rampe en tant réel de la LED.
Dans la première partie du programme, on dit : L'état initiale de celle-ci est 0, tant que la valeur de "illumine" n'est pas égale à 255, on augmente son intensité lumineuse.
Nous faisons de même pour la seconde partie du programme mais à l'inverse : celle-ci démarre à 255, et tant que la variable "illumine" n'est pas égale à 0, on diminue sa valeur.

3.7/ Le programme


/*Tutoriel sur la LED par IHM-3D */
int led = 3;//création de la vartiable "led" connectée à la broche 2 de la carte.
void setup() {                
  pinMode(led, OUTPUT);// on annonce que la variable led connectée sur la PIN 2 est une sortie
}
void loop() {
  //rampe de luminosité de la led partant de 0 jusqu'à son maximum de luminosité 255
  for (int illumine=0;illumine<255;illumine++){
    analogWrite(led,illumine);
    delay(5);
  }
  delay(1000);//on attends une seconde
  //rampe de luminosité de la led partant de son maximum 255 et redescend à 0
  for (int illumine=255;illumine>=0;illumine--){
    analogWrite(led,illumine);
    delay(5);
  }
  delay(1000);//on attends une seconde
}
/********************FIN DU PRGORAMME*********************/

4/ Conclusion

Ce document tutoriel est maintenant terminé. N'hésitez pas à parcourir le site d'IHM-3D et de découvrir ses activités et de poser vos questions à l'adresse située en pied de page.