Dans ce projet on se propose de piloter une LED avec une carte Arduino UNO et de la faire clignoter à une vitesse d'un clignotement par seconde.
Une LED est une diode qui émet de la lumière. Comme toute diode elle comporte une anode (borne +) qui est la patte la plus longue et une cathode (borne -) qui est la patte la plus courte.
Pour qu'une LED s'allume il faut obligatoirement relier sa patte - à la borne - de l'alimentation et sa patte + à la borne + de l'alimentation. Si la LED est branchée à l'envers elle ne s'allumera pas (le courant ne la traversera pas).
De plus elle ne doit pas être traversée par un courant trop fort, c'est pour cela qu'il est indispensable de brancher une résistance de 330 $\Omega$ en série avec la LED. On notera qu'une résistance n'a pas de sens de branchement.
Pour réaliser le montage on utilise une breadboard ou plaque de prototypage qui permet de concevoir des circuits électroniques sans faire de soudure.
Tous les trous qui figurent sur la plaque sont autant de connecteurs dans lesquels il est possible de placer les pattes des composants électroniques. Sur les bords en haut et en bas les 24 connecteurs de la ligne noire sont reliés entre eux. Dans chacune des deux lignes rouges les 12 connecteurs sont également reliés. Dans la zone centrale les groupes verticaux de 6 connecteurs sont reliés ensemble, en revanche il n'y a aucune liaison entre les colonnes et il n'y a pas non plus de liaison entre les deux moitiés de la plaque.
Le branchement de la LED avec la résistance en série est réalisé comme illustré ci-dessous :
La borne + de la LED (patte longue) est en position g1 et la borne - (patte courte) est reliée à une patte de la résistance, l'autre patte de la résistance arrive sur un connecteur de la ligne noire qui sera utilisée comme ligne de masse.
Pour terminer, il reste à relier l'ensemble à la carte Arduino. La ligne de masse de la plaque de prototypage
est reliée à une des bornes GND
de la carte (GND
est une borne - ou borne de masse). La
borne + de la LED est reliée à la borne numérique (digital) numéro 2 de la carte.
Pour assurer le pilotage du montage électronique, il faut écrire un programme avec un logiciel spécial dédié à la plateforme Arduino. Ce logiciel se présente comme un simple éditeur de texte dans lequel on entre les instructions.
Les deux boutons circulaires en haut à gauche sont essentiels. Le premier sert à vérifier que le programme ne comporte pas d'erreur de syntaxe en le compilant. En effet le texte du programme ne peut pas être exécuté directement par le microprocesseur de la carte Arduino. La phase de compilation consiste à traduire le texte du programme en ce qu'on appelle le langage machine qui est directement exécutable par le microprocesseur.
Pour que la compilation aboutisse il faut que le texte du programme ne comporte aucune erreur de syntaxe. Cela nécessite de respecter rigoureusement les noms des instructions, l'emploi des parenthèses, des accolades et des crochets ainsi que des virgules et points-virgules. Le memento de la platine Arduino résume les instructions disponibles ainsi que leur syntaxe.
Une fois la compilation réussie il reste à transférer le programme compilé dans la mémoire du microcontrôleur de la carte Arduino. Cette tâche est réalisée avec le second bouton. Il faut au préalable relier la carte Arduino à une prise USB de l'ordinateur.
Le programme qui permet de piloter le montage est le suivant :
void setup(){
pinMode(2,OUTPUT);
}
void loop(){
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
delay(1000);
}
Le code est composé de deux fonctions. La première fonction est définie par :
void setup(){
pinMode(2,OUTPUT);
}
Son nom est setup
. Le mot clé void
indique que la fonction ne retourne pas de résultat. Le corps
de la fonction est constitué d'une seule instruction qui règle la borne numérique numéro 2 de la carte
Arduino en mode sortie (OUTPUT
), c'est à dire qu'il sera possible de programmer sur cette borne l'absence
(0V) ou la présence (+5V) de courant.
La fonction setup
est automatiquement exécutée une seule fois
lorsque le programme demarre. C'est dans cette fonction qu'il faut mettre toutes les
initialisations nécessaires au fonctionnnement du programme.
La seconde fonction est définie par :
void loop(){
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
delay(1000);
}
Elle s'appelle loop
et comme son nom
l'indique cette fonction s'exécute indéfiniment en boucle. Pour obtenir le clignotement de la LED il faut utiliser
l'instruction digitalWrite
qui permet de commander la présence ou non de courant sur une borne numérique
de la carte Arduino. Plus précisément la séquence de commandes utilisées est la suivante :
du courant est envoyé sur la borne 2, du coup la LED est alimentée et elle s'allume,
l'instruction delay(1000)
fait « patienter » le programme 1000 ms, soit une seconde, durant cette seconde la LED reste allumée,
la commande digitalWrite(2,LOW)
provoque l'absence de courant sur la borne 2 : la LED s'éteint,
le programme patiente encore une seconde, pendant cette seconde la LED est éteinte.
Comme précisé plus haut, la fonction loop
s'exécute en boucle. Dès que toutes les instructions de la
fonction ont été exécutées, elles s'exécutent de nouveau. Ainsi le programme provoque le clignotement de la LED
avec une fréquence d'une seconde.