Main

Apprendre : Accueil | Exemples | Fondements? | Bidouillage? | Liens?
Exemples > Pour commencer

Faire clignoter une LED


Cet exemple vous montre une des choses les plus simples que vous pouvez faire avec une carte Arduino pour visualiser une broche en sortie : ce programme fait clignoter une LED.

Matériel requis

Le circuit à réaliser

Pour réaliser ce circuit :

  • prendre une LED et connecter sa patte longue (patte positive appelée anode) à la broche 13 de la carte Arduino,
  • connecter la patte courte (patte négative, appelée cathode) à la broche de masse de la carte Arduino (notée GND pour GROUND en anglais, cette broche correspond au 0V).

Image créée avec le logiciel Fritzing. Pour plus de circuits d'exemple, voir la page des projets Fritzing.

Plus d'information sur les LEDs, voir ici : http://fr.wikipedia.org/wiki/Diode_%C3%A9lectroluminescente

La plupart des cartes Arduino ont déjà une mini-LED connectée à la broche 13, intégrée sur la carte elle-même. Si vous démarrez cet exemple sans utiliser de LED externe comme indiqué ci-dessus, vous devriez voir la mini-LED de la carte clignoter.

Mise en oeuvre du programme

La LED connectée sur la broche 13 doit se mettre à clignoter.

Schéma théorique du montage

Voici le schéma théorique du montage :

Si vous avez de l'expérience en électronique, vous noterez probablement que la LED n'a pas de résistance en série. Ceci car l'intensité disponible sur une broche en sortie est assez basse pour ne pas endommager la LED. Ceci simplifie le montage pour les débutants en éliminant la LED. Cependant, d'une manière générale, il est bien sûr préférable d'ajouter une résistance en série avec la LED afin de limiter l'intensité utilisée sur la broche en sortie.

  • Les broches de la carte Arduino peuvent fournir jusqu'à 40mA en entrée comme en sortie. Cependant, il ne faut pas oublier que l'intensité maximale disponible pour l'ensemble des broches en sortie est de 200mA pour une carte UNO ou Duemilanove.
  • Ainsi en pratique, il est judicieux de limiter l'intensité utilisée à 10 à 15 mA par broche en moyenne. Pour mémoire, la chute de tension aux bornes d'une LED est de 1,5V environ. On pourra donc, avec une LED, utiliser une résistance en série de 300 Ohms environ (R = U/I = (5V - 1,5V) / 0,012 = 300 Ohms ).

Explications du programme

Au niveau de la fonction setup ()

Dans le programme qui suit, on commence par initialiser la broche 13 en sortie avec l'instruction pinMode() selon :

pinMode(13, OUTPUT);

Au niveau de la fonction loop()

Dans la fonction loop, "coeur" du programme, on commence par allumer la LED à l'aide l'instruction digitalWrite()

digitalWrite(13, HIGH);

Ceci met la broche 13 au niveau HAUT, soit +5V. Ceci crée une différence de potentiel entre les 2 broches de la LED et elle s'allume donc. Ensuite, on éteint la LED toujours à l'aide de l'instruction digitalWrite() :

digitalWrite(13, LOW);

Ceci met la broche 13 au niveau BAS, soit 0V : la LED s'éteint. Entre l'allumage et l'extinction de la LED, il faut prévoir un délai assez long pour que l'oeil humain puisse percevoir le changement. Pour cela, on utilise l'instruction delay() pour dire à la carte Arduino de ne rien faire pendant 1000 millisecondes, c'est à dire une seconde :

 delay(1000);

Quand vous utilisez l'instruction delay(), rien ne se passe pendant le temps précisé.

Si vous ne mettez pas d'instruction delay() entre la mise au niveau HAUT puis BAS de la broche 13, la LED va clignoter très très rapidement... et elle apparaîtra toujours allumée. Si on connecte un oscilloscope sur la broche, on pourra voir cependant que la broche change d'état HAUT/BAS plusieurs millions de fois par seconde !! Cela vous donne une petite idée de la rapidité de votre carte Arduino, un véritable petit ordinateur ! Faire ce petit test est d'ailleurs une bonne façon de connaître la rapidité réelle d'exécution d'un circuit programmable quelqu'il soit.

Une fois que vous avez compris cet exemple basique, consultez le programme d'exemple Clignotement sans pause qui vous apprendra à créer une pause pendant que la carte Arduino fait d'autres choses.

Une fois que vous avez compris cet exemple, consultez le programme d'exemple pour apprendre comment Lire l'état d'un bouton poussoir connecté à la carte Arduino.

Le code du programme

A copier/coller dans votre logiciel Arduino.

/*
  Clignotement de LED
  Allume une LED pendant 1 seconde, puis l'éteint pendant 1 seconde
  puis le programme se répète indéfiniment

  Cet exemple est dans le domaine public
  Traduction française par X. HINAULT - www.mon-club-elec.fr
 */


void setup() {                
  // initialise la broche 13 en sortie numérique
  // la broche 13 a une LED déjà connectée sur la plupart des cartes Arduino :
  pinMode(13, OUTPUT);    
}

void loop() {
  digitalWrite(13, HIGH);   // allume la LED
  delay(1000);              // ne fait rien pendant 1 seconde
  digitalWrite(13, LOW);    // éteint la LED
  delay(1000);              // ne fait rien pendant 1 seconde
}
 

Voir également

La documentation des composants utilisés

La documentation des instructions utilisées :

La documentation des stratégies de programmation utilisées

Les autres exemples suivants :

  • Le programme minimum : Le code minimum nécessaire pour un programme Arduino.
  • Faire clignoter une LED: Allumer puis éteindre successivement une LED. (Broche numérique en mode SORTIE)
  • Lire l'état d'un bouton poussoir : Lire l'état d'un bouton poussoir et afficher le résultat obtenu dans la fenêtre Terminal Série du logiciel Arduino. (Broche numérique en mode ENTREE)
  • Mesure Analogique visualisée sur port Série : Lire la tension aux bornes d'un potentiomètre et afficher la valeur obtenue dans la fenêtre Terminal Série du logiciel Arduino. (Broche en entrée ANALOGIQUE)
  • Variation lumineuse: Montre comment utiliser la "sortie analogique" (impulsion PWM) pour faire varier l'intensité lumineuse d'une LED

Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0. Cette page est la traduction française commentée de la page originale : http://arduino.cc/en/Tutorial/Blink