Contrôler ses propres LEDs avec Arduino Uno

Ce tutoriel a été réalisé dans le cadre du projet "Parle à ma main" financé par la Fondation de France et un mécénat de la Fondation LAURENCE MATHIEU (Bourse Déclics jeunes). Ce tutoriel est la continuité du tutoriel Premiers Pas Arduino. La suite de ce tutoriel est Contrôler ses propres LEDs , puis Servomoteur Arduino ou La main bionique

Contrôler une LED

Partie 1 : Le circuit

Ce dont vous avez besoin

Les composants :

  • La carte Arduino : pour contrôler la LED, le courant qui sortira de la PIN sera à 5V
  • Une LED
  • Une résistance de 1k ohm : pour éviter que la LED ne grille, ou remplacer par une deuxième LED
  • Au moins deux fils (un noir et un rouge de préférence)
  • Une breadboard ou un fil supplémentaire.

Monter le circuit avec une LED

Connecter une PIN, nous choisissons la PIN 12 :

  • le fil rouge va de la PIN 12 à une ligne de la breadboard.
  • Sur cette ligne, mettre la première patte (la plus longue) de la LED et la deuxième (la plus courte) sur encore une autre ligne de la breadboard.

Attention : les LED ont un sens et ne laisse passer le courant que dans ce sens là. Vous devez donc brancher en premier la patte la plus longue (qui correspond au « + ») et en deuxième la plus courte (du côté du « - »). On peut aussi connaître le sens sur la base de la LED qui n’est pas tout à fait ronde : une partie plate correspond au côté du « - » (comme sur les schémas de la LED, que vous avez peut être vus en cours de technologie).


  • Sur la même ligne que la deuxième patte de la LED, mettre une patte de la résistance et son autre patte sur une autre ligne.
  • Sur la ligne de la deuxième patte de la résistance, faire partir le fil noir et brancher l’autre extrémité sur la PIN « GND » de la carte Arduino.

Partie 2 : Le programme (ou Sketch) Arduino :

Reprenez le programme Blink (menu Fichier>Exemples>01.Basics>Blink) et enregistrez sous (menu Fichier>Enregistrer sous) BlinkLED.

Dans le code, remplacez le mot clef « LED_BUILTIN » par le nombre « 12 » (pour indiquer qu’il s’agit de la PIN 12). Enregistrez vos modifications ((menu Fichier>Enregistrer).



Voici le code complet :

void setup() {pinMode(12, OUTPUT);} // the loop function runs over and over again forever void loop() {digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a seconddigitalWrite(12, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second}

Enregistrez votre programme (menu Fichier> Enregistrer). Téléverser le programme dans votre carte Arduino branchée via le câble USB. La LED clignote !

Contrôler plusieurs LEDs

Nous allons maintenant faire clignoter les LEDS en même temps puis les unes après les autres.

Partie 1 : Le circuit

Ce dont vous avez besoin:

Les composants :

  • La carte Arduino : pour contrôler la LED, le courant qui sortira de la PIN sera à 5V
  • Trois LED de couleur différentes, nous prendrons une LED bleue, une LED verte et une LED blanche
  • trois résistances, une pour chaque LED : pour éviter que la LED ne grille, ou remplacer par une deuxième LED de même couleur
  • Au moins six fils (trois noirs et trois rouges de préférence)
  • Une breadboard ou trois fils supplémentaires.

Monter le circuit avec trois LEDs

On va faire trois circuits avec les LED, tous finissant sur la même ligne

Connecter une PIN, nous choisissons la PIN 12 pour la LED bleue :

  • le fil rouge va de la PIN 12 à une ligne de la breadboard.
  • Sur cette ligne, mettre la première patte (la plus longue) de la LED bleue et la deuxième (la plus courte) sur une autre ligne.

Attention : les LED ont un sens et ne laisse passer le courant que dans ce sens là. Vous devez donc brancher en premier la patte la plus longue (qui correspond au « + ») et en deuxième la plus courte (du côté du « - »). On peut aussi connaître le sens sur la base de la LED qui n’est pas tout à fait ronde : une partie plate correspond au côté du « - » (comme sur le schéma de la LED)

  • Sur la même ligne que la deuxième patte de la LED bleue, mettre la première patte de la première résistance et son autre patte sur encore une autre ligne de la breadboard que nous appellerons la ligne de masse.
  • Sur la ligne de masse, c’est à dire celle où il y la deuxième patte de la première résistance, faire partir le fil noir et brancher l’autre extrémité sur la PIN « GND » de la carte Arduino.


Connecter une PIN, nous choisissons la PIN 8, pour la LED verte

  • le deuxième fil rouge va de la PIN 8 à une ligne encore libre de la breadboard.
  • Sur la même ligne mettre la première patte (la plus longue) de la LED verte et la deuxième (la plus courte) sur une nouvelle ligne encore libre.

Attention : rappelez-vous que les LED ont un sens !

  • Sur cette nouvelle ligne mettre la première patte de la deuxième résistance. Mettre la deuxième patte de la résistance sur la ligne de masse. Pour rappel, la ligne de masse est celle où il y la deuxième patte de la première résistance.


Connecter une PIN, nous choisissons la PIN 7, pour la LED blanche

• le troisième fil rouge va de la PIN 7 à une ligne encore libre de la breadboard.

• Sur la même ligne mettre la première patte (la plus longue) de la LED blanche et la deuxième (la plus courte) sur une nouvelle ligne encore libre.

Attention : rappelez-vous que les LED ont un sens.

• Sur cette nouvelle ligne mettre la première patte de la troisième résistance. Mettre la deuxième patte de la résistance sur la ligne de masse. Pour rappel, la ligne de masse est celle où il y la deuxième patte de la première et de la deuxième résistances.

Partie 2 : Programme (ou Sketch) Arduino pour que les LED clignotent en même temps :

Reprenez le programme BlinkLED (enregistré précédemment) et enregistrez sous (menu Fichier>Enregistrer sous) BlinkTroisLED.


Dans le code, nous allons rajouter les instructions pour les PIN 8 et 7. Pour l’instant, si vous téléversez ce programme, vous n’aurez que la LED bleue qui clignote. Il faut rajouter les PIN 8 et 7 comme sortie dans la fonction « setup », ainsi que les faire s’allumer et s’éteindre comme la LED bleue dans la fonction « loop ». Enregistrez votre programme (menu Fichier> Enregistrer).

Voici le code complet :


void setup() {pinMode(12, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT);} // the loop function runs over and over again forever void loop() {digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)digitalWrite(8, HIGH);digitalWrite(7, HIGH);
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW digitalWrite(8, LOW);digitalWrite(7, LOW);
delay(1000); // wait for a second}


Enregistrez votre programme (menu Fichier> Enregistrer). Téléverser le programme dans votre carte Arduino branchée via le câble USB. Ça fonctionne!

Partie 3 : Rendre le programme plus lisible et flexible des LED clignotant en même temps

Reprenez le programme BlinkTroisLED (enregistré précédemment).

Dans le code, nous allons renommer les PIN 12, 8 et 7 en ledBleue, ledVerte et ledBlanche.

Il faudra ensuite rajouter «int ledBleue = 12;», « int ledVerte=8;» et «int ledBlanche=7;» avant la fonction « setup » .


Détaillons ces instructions qui servent à définir une nouvelle variable (c’est à dire un nom associé à une valeur) :

  • « int » indique que nous allons définir un nombre entier (un « interger » en anglais)
  • « ledBleue » est le nom de la nouvelle variable (et ledVerte et ledBlanche par la suite)
  • « =12 » est la valeur que nous donnons à la variable « ledBleue » (et 8 pour ledVerte et 7 pour ledBlanche par la suite)
  • comme toute instruction, nous finissons par un point-virgule « ; ».


Il faudra remplacer les références aux PIN 12, 8 et 7 par respectivement « ledBleue », « ledVerte » et « ledBlanche » dans les fonctions « setup » et « loop ». Enregistrez votre programme (menu Fichier> Enregistrer).

Si vous décidez de brancher une LED sur une autre PIN, c’est beaucoup plus simple qu’avant : il vous suffit de changer le chiffre dans la déclaration de votre variable, et la modification se répercute dans tout le code.

Voici le code complet :


int ledBleue = 12;int ledVerte=8; int ledBlanche=7; // the setup function runs once when you press reset or power the board void setup() {pinMode(ledBleue, OUTPUT);pinMode(ledVerte, OUTPUT); pinMode(ledBlanche, OUTPUT);} // the loop function runs over and over again forever void loop() {digitalWrite(ledBleue, HIGH); // turn the LED on (HIGH is the voltage level) digitalWrite(ledVerte, HIGH);digitalWrite(ledBlanche, HIGH);
delay(1000); // wait for a second
digitalWrite(ledBleue, LOW); // turn the LED off by making the voltage LOW digitalWrite(ledVerte, LOW);digitalWrite(ledBlanche, LOW); delay(1000); // wait for a second}

Enregistrez votre programme (menu Fichier> Enregistrer).

Partie 4 : Modifier le programme pour que les LED clignotent les unes après les autres

Reprenez le programme BlinkTroisLED (enregistré précédemment) et enregistrez sous (menu Fichier>Enregistrer sous) BlinkTourneLED.

Dans le code, nous allons rajouter des instructions pour allumer une LED à la fois et éteindre les autres, en changeant la LED allumée toutes les secondes dans la fonction « loop » :

  • allumez la bleue mais éteignez la verte et la blanche,
  • attendez une seconce puis
  • éteignez la bleue, allumez la verte et éteignez la blanche,
  • attendez 1 seconde puis
  • éteignez la bleue et la verte et allumer la blanche,
  • attendez une seconde.


Enregistrez votre programme (menu Fichier> Enregistrer).

Voici le code complet :

int ledBleue = 12; int ledVerte=8; int ledBlanche=7;

// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin LED_BUILTIN as an output.


pinMode(ledBleue, OUTPUT);

pinMode(ledVerte, OUTPUT);

pinMode(ledBlanche, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(ledBleue, HIGH); // turn the LED on (HIGH is the voltage level)

digitalWrite(ledVerte, LOW);

digitalWrite(ledBlanche, LOW);


delay(1000); // wait for a second

digitalWrite(ledBleue, LOW); // turn the LED off by making the voltage LOW

digitalWrite(ledVerte, HIGH);

digitalWrite(ledBlanche, LOW);

delay(1000); // wait for a second

digitalWrite(ledBleue, LOW);

digitalWrite(ledVerte, LOW);

digitalWrite(ledBlanche, HIGH);

delay(1000); // wait for a second

}

Enregistrez votre programme (menu Fichier> Enregistrer). Téléverser le programme dans votre carte Arduino branchée via le câble USB. Ça fonctionne!