• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Jeux de lumière avec une LED et la breadboard

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

La quantité d'informations ingurgitée dans les chapitres précédents vous a fait prendre un poids cognitif important qui vous permet maintenant de rester stable dans un environnement envahi par les vents de la nouveauté et de l'interrogation.

Et là, des vents, il va y en avoir ! (Attention à la blague de trop Lukas...)

Vous avez vu jusqu’à présent le cerveau d’Arduino, vous allez maintenant étudier son corps !

Au programme de ce chapitre : 

  • Nous allons commencer par quelques notions d'électricité, car la théorie est importante. Non pas pour faire de vous des professionnel(le)s de ce domaine, mais plutôt pour éviter le : "Oups, j'ai tout grillé..."

  • Nous étudierons ensuite cette merveilleuse petite chose lumineuse qu'est la LED, car vous verrez que son utilisation dans les montages est à la fois esthétique et utile.

  • Puis nous ferons un point important sur la "breadBoard" qui nous donnera du pain sur la planche et qui nous permettra l'interfaçage avec l'Arduino.

  • Enfin forts de ces connaissances nouvelles, nous reprendrons notre programme précédent pour l'adapter à une LED connectée.

Je vous prierai donc de vous serrer la ceinture, et de la boucler ! (J.HIGELIN)

La tension

Il vous faut dès maintenant prendre conscience d'une chose importante : votre Arduino est parcouru d'électricité. Ça paraît pas très grave vu comme ça, mais en fait, ça complique un peu les choses. 

Qu'est-ce que c'est que l'électricité ?

D'abord, ça ne se voit pas. On peut seulement en voir les résultats. L'électricité est un déplacement de particules chargées dans un conducteur (rien à voir avec le code de la route), c'est-à-dire que c'est le mouvement de toutes petites choses (invisibles) dans la matière, qui créé le courant électrique.

Parmi les charges qui créent le courant électrique, il existe des charges positives notées + et des charges négatives notées -. Deux charges identiques se repoussent et deux charges contraires s'attirent.

Donc l'électricité est un déplacement de particules, c'est un courant. Je vais donc utiliser une analogie (non Lukas pas une nana jolie), celle de la rivière, qui permet de mieux comprendre certains principes électriques. Attention, comme tout modèle, l'analogie a des limites et n'est plus valable dans certains cas.

Imaginez une rivière qui coule de sa source à son embouchure, puis à l'embouchure, on met une pompe qui ramène toute l'eau à la source. Nous aurions un circuit fermé, avec d'un côté un écoulement, de l'autre un pompage.

La première notion électrique à comprendre est la différence de potentiel qu'on appelle aussi la tension électrique (ce qui n'est pas toujours juste). C'est cette différence de potentiel qui crée le courant électrique. Pour la rivière, elle représente la hauteur de la source par rapport à l'embouchure. Donc la pente ou le dénivelé. On comprend facilement que si la source est plus haute que l'embouchure, l'eau va se mettre à couler et va créer un courant. 

C'est pareil en électricité, si la différence de potentiel électrique existe (c'est à dire la différence entre charges + et -), le courant électrique va circuler (les particules vont être attirées vers la charge inverse).

La tension, ou potentiel électrique se mesure en Volts (symbole V).

Pour vous donner quelques idées de mesure de tensions de la vie courante :

Exemple

Tension

Pile

1,5 V ; 4,5 V ; 9 V

Batterie voiture

12 V ; 24 V

Prise de courant

110 V ; 220 V

Ligne à haute tension

10 000 V ; 500 000 V

Foudre

1 000 000 V

L'Arduino UNO propose à ses bornes (pin 0 à 13) une tension de +5 V. C'est un courant sans danger (nous verrons la notion d'ampérage plus loin) pour l'homme.

Il utilise un courant continu, c'est-à-dire que c'est toujours du +5 V qui sort. Il existe des courants alternatifs qui fournissent une succession de courant positif puis de courant négatif à une fréquence donnée. Par exemple, vos prises de courant fournissent du 220V alternatif à 50Hz. C'est-à-dire que 50 fois par seconde le courant passe de +220V à -220V. (Je dis courant pour simplifier, mais il s'agit bien de tensions).

Mais, il y a une connexion pour brancher l'Arduino directement au courant, non ?

NON ! On peut fournir à l'Arduino son alimentation électrique de plusieurs façons, en voici trois principales :

  • Le connecter avec le câble USB à l'ordinateur. C'est sans danger car l'ordinateur fournit un courant de +5 V par ce câble.

  • Connecter une pile 9 V (entre 7 V et 12 V en fait) à la prise prévue à cet effet (prise ronde). Attention car il faut vérifier comment brancher le + et le - de la prise sur la pile 9V. Arduino transforme ensuite les 9V en 5V.

  • Connecter un transformateur à la prise prévue à cet effet (prise ronde). Attention, il faut être sûr que la connectique du transformateur soit correcte  et qu'il fournisse bien la tension demandée (9 V). Une mauvaise connexion peut endommager définitivement votre Arduino.

Représentation d’un circuit électrique

Lorsque l’Arduino est branché à une source d’alimentation électrique, il fait donc partie d’un circuit électrique fermé. Jetons un œil à la structure d’un circuit électrique et ses règles importantes.

Voici le schéma d'un circuit électrique simple. Un dipôle est un composant électrique qui a deux bornes pour connecter des fils. Il existe beaucoup de dipôles (ampoules, moteurs, piles, interrupteurs...). Un générateur est un dipôle actif, une ampoule un dipôle passif. Dans ce schéma, on voit que le courant circule depuis le + du générateur, passe par le dipôle et rejoint le - du générateur.

Schéma d'un circuit simple
Schéma d'un circuit électrique simple

Les grosses flèches montrent les différences de potentiel. Le générateur est, pour notre rivière, la pompe qui ramène l'eau à la source ; la rivière qui coule est le reste du circuit. On imagine que la rivière  passe par une cascade : le dipôle. Et bien la hauteur du système qui amène l'eau de l'embouchure à la source est la même que celle de la source à l'embouchure. Ça paraît évident. Et bien c'est pareil électriquement !

La différence de potentiel Ug est égale à la différence de potentiel Uc on a donc :

$\[Ug=Uc\]$

Voici un second schéma :

Circuit avec deux dipôles
Circuit avec deux dipôles

Si le dipôle 1 représente une partie de la rivière et le dipôle 2 une autre partie, et bien la hauteur totale de descente est bien la somme des hauteurs des 2 parties. Ce qui donne en électricité :

$\[Ug=Ud1+Ud2\]$

C’est une des lois de Kirchhoff que l’on appelle la loi des mailles. Elle est applicable en circuit fermé et courant continu, ce qui sera notre cas.

L'intensité

Bon, nous venons de voir la tension, voyons maintenant l'intensité...

L'intensité est la quantité de courant qui passe dans un endroit donné du circuit. Elle se mesure en Ampères (symbole A).

C'est, pour simplifier, le nombre de particules qui passe par seconde. Pour reprendre notre rivière, ce serait le débit de la rivière à un endroit donné.

Lorsqu’un circuit électrique se sépare en deux parties, la quantité de courant se répartit dans chaque partie de ce circuit (comme la rivière lorsqu'elle est coupée par une île). On comprend bien pour la rivière, que la quantité d'eau se sépare. Et bien c'est pareil en électricité. De même lorsque les deux parties de la rivière se rejoignent, on retrouve la même quantité. C'est une autre loi de Kirchhoff : la loi des noeuds.

Loi des noeuds
Loi des noeuds

Précision : i0 est l'intensité à la sortie du générateur, i1 l'intensité dans la branche du dipôle D1 et i2 l'intensité dans la branche du dipôle D2.

Au premier croisement on a bien i0=i1+i2 et au second i1+i2=i0.

A-t-on vraiment besoin de tout ceci pour s'amuser avec l'Arduino ?

Oui et non. Oui car plus vos montages seront compliqués, plus il vous faudra le savoir pour calculer les résistances (entre autres) à utiliser. Non car si vous appliquez les schémas proposés dans beaucoup de tutoriels, vos montages seront sans risques (à condition de bien lire le schéma :D).

Mais c’est important que l’on fasse ce point électrique ensemble pour que vous sachiez au moins que ça existe et que brancher quelque chose sur l’Arduino nécessite quelques précautions.

Résistance et loi d'ohm

Il nous reste un dernier concept électrique à voir et la loi qui s'y rapporte.

Résistance

Les résistances sont très utilisées en montage électronique, mais LA résistance est plus large que ça.

La résistance, pour reprendre l'analogie avec la rivière, c'est la taille de la rivière à un endroit. Ça va donc influencer le débit. En électricité c'est un peu la même chose. La résistance est la capacité d'un matériau à s'opposer au passage du courant. Et il existe des dipôles conçus pour cela : les résistances.

Cette résistance au passage du courant se mesure en Ohms (symbole Ω).

La loi d'Ohm

Et bien il faut savoir qu'en électricité, il y a une loi qui relie intensité, résistance et tension :

Tension = Résistance x Intensité, ou en plus court :

U = R x I

avec U en Volts (V), R en Ohms (Ω) et I en Ampères (A).

Donc, si rien n'est nul, R = U/I et I = U/R.

C'est particulièrement cette loi qui va nous permettre de faire nos calculs futurs.

Bon, je ne vais pas aller plus loin en électricité. Vous avez là de quoi suffisament vous décourager ;), mais je vous connais, vous êtes coriaces. Nous aurons l'occasion de revenir dessus quand nous en aurons besoin.

Nous allons donc attaquer la présentation de la LED ! (Non Lukas, toujours pas votre petite amie !)

Les LED

Alors les LED c'est quoi ? Tout d'abord LED c'est de l'anglais (Light Emitting Diode), en français on dit plutôt DEL (Diode à Émission de Lumière). Donc une LED est une diode qui produit de la lumière.

Alors une diode c'est quoi ?? Une diode est un dipôle (c’est-à-dire un composant électrique qui se branche avec 2 bornes) qui ne laisse passer le courant que dans un seul sens. On appelle ça un semi-conducteur. La diode et la LED sont des semi-conducteurs, ainsi que le transistor que nous aborderons plus loin dans le cours (et qui est la base de presque toutes les puces électroniques actuelles).

Il faut donc comprendre que si on ne branche pas correctement une LED, et bien non seulement elle ne s'allumera pas, mais elle bloquera le courant dans tout le circuit qui la suit. Donc la LED a un sens de branchement. La LED est soumise à la même règle. La seule différence qu'il y a entre une diode simple et une LED, c'est que la LED, lorsqu'elle est parcourue par un courant, elle produit une lumière. On dit ainsi que la diode est électroluminescente, d'où son nom .

Alors je vous invite à en prendre une entre vos doigts habiles et propres, et à l'observer !

Représentation d'une LED
Représentations d'une LED

Vous remarquez une patte plus longue que l'autre, et un bord un peu coupé sur la base. Ces deux choses sont des repères pour pouvoir distinguer la patte qui se branche sur le + et celle qui se branche sur le - .

Si l'on veut qu'une LED s'allume, on connecte la patte la plus longue (anode ou +) du côté du 5 V et la patte la plus courte, qui part du côté coupé de la bague (cathode ou -) du côté du 0 V ou ground.

Hein ? quoi ? de quoi 0 V ou ground ???

En effet ça mérite une explication. L'Arduino n'est pas seulement un générateur de courant électrique, même s’il peut distribuer des courants de tensions données à certaines de ses bornes. Par convention,  le  + est la borne qui distribue un courant de 5 V de tension (ou 3.3 V dans certains cas) et le - est appelé le ground, c'est à dire la terre (un peu comme la prise de terre dans la prise électrique). Le + fournit une tension et le ground l'absorbe. Tout ce qui va au - est relié au ground.

Voici un exemple de symboles pour représenter le ground et le +5 V :

Symboles d'entrée électrique et ground
Symboles d'entrées électriques et de ground

Et un schéma comme vous en rencontrerez bien d'autres ! 

Exemple de circuit électrique avec une entrée +5V et des connections au ground
Exemple de circuit électrique avec une entrée +5V et des connexions au ground

Vous aurez compris que "gnd" veut dire ground.

Alors, sur votre Arduino, si vous l'observez, vous devriez voir

  • 3 pins  Gnd

  • 1 pin 3.3 V

  • 1 pin 5 V

Repérez-les bien car ils vont nous servir à chaque fois (au moins le 5 V et les Gnd)

Alors, vous vous dites, si je veux brancher ma LED, je mets la grande patte sur le +5V, la petite patte sur le Gnd à côté et ça devrait marcher !

Oui, mais si vous faites cette expérience, branchez plutôt la grande patte sur le +3.3V, sinon vous allez griller votre diode assez rapidement. Je vous laisse faire votre expérience.

Voici le schéma électrique de ce branchement :

Schéma représentant un LED connecté à la sortie +3.3V et au gnd de L'Arduino
Schéma représentant un LED connecté à la sortie +3.3V et au gnd de L'Arduino

À partir de maintenant, je vous fournirai les schémas de l'ensemble du montage avec Fritzing, c'est tellement plus simple !

LED branchée en direct sur le 3.3V
LED branchée en direct sur le 3.3V

Cool ! Elle s'allume ! Et comment on la fait clignoter maintenant ?

Pour répondre à cette question nous devons apprendre deux points importants : l'utilisation de la breadboard et la bonne manière de connecter une LED sur le +5V ou le 3.3V.

La breadboard

Il est temps de comprendre l'utilisation de la fameuse breadBoard !

"Des ptits trous, des ptits trous, toujours des ptits trous !"(Gainsbourg)

C'est clair qu'il y en a des trous sur ce truc, c'est pas une planche à pain, c'est une passoire !

Et bien chaque trou permet d'enficher (pour les plus vieux) ou de plugger (pour les plus jeunes) ou d'enfoncer (pour les plus bourins) les composants. Sauf que ces trous ne sont pas placés n'importe comment, et certains trous sont reliés à d'autres. Les trous que j'ai colorés de la même couleur sont reliés entre eux :

Liaisons entre les trous de la breadboard
Liaisons entre les trous de la breadboard

Il y a donc les trous en haut et en bas, chaque ligne (ici bleue et jaune) montre des trous liés entre eux. Puis au centre, les 5 trous de chaque colonne (en rouge) sont liés. "Liés", ça signifie que si on connecte un composant dans un trou et un autre dans un trou lié, ils sont connectés entre eux.

Les deux grandes lignes servent souvent à relier les Vin (+5 V) et les grounds (Gnd) entre eux. Par exemple  : 

Branchement de la breadboard pour lier +5V et Gnd
Branchement de la breadboard pour lier +5V et Gnd

Du coup tout ce qui sera connecté aux trous liés à +5 V recevra du +5 V et tout ce qui sera connecté aux trous liés à Gnd ira vers le 0 V.‌

Bon, la suite permet de calculer la résistance optimale pour connecter une LED au circuit. Si vous n’êtes pas fans de trop de calculs électriques, vous pouvez passer directement à la section suivante, mais retenez-que pour connecter une LED il faut lui joindre une résistance d'au moins 100 Ω (220Ω est souvent la valeur conseillée). Plus la résistance sera grande, moins la LED éclairera.

Voici le  schéma du circuit :

Branchement d'une LED en série avec une résistance (les deux montages sont corrects)
Branchement d'une LED en série avec une résistance (les deux montages sont corrects)

Calcul de la bonne valeur de résistance pour une LED

Tout matériel électronique est accompagné d’une fiche de spécifications techniques (aussi appelée datasheet). La LED n'échappe pas à la règle.

En la lisant, nous pouvons retenir qu'une LED produit une chute de tension entre 1 et 4 volts (en fait ça dépend des couleurs). Nous allons appeler la tension de notre LED “Uled” et la fixer à 1,8 V par exemple. La tension fournie par l'Arduino est de +5V, nous l'appellerons Ugen. La tension aux bornes de la résistance sera Ures. Voici le schéma correspondant :

Schéma d'une LED et d'une résistance en série avec tensions associées
Schéma d'une LED et d'une résistance en série avec tensions associées

D'après la loi des mailles, on a, pour le schéma du dessus : 

$\[Ugen = Uled + Ures\]$

avec Ugen = 5 V (tension aux bornes de l'Arduino) et Uled = 1,8 V, donc :

$\[Ures = Ugen-Uled\]$

Si on remplace par les valeurs : Ures = 5 V - 1,8 V = 3,2 V. C'est donc la tension aux bornes de la résistance.

L'intensité de fonctionnement qui traverse une LED doit être aux environs de 20mA, soit 0,02A (ça aussi on le trouve dans la datasheet, et c'est valable pour beaucoup de LED)

On applique maintenant la loi d'Ohm :

On a U=R x I donc R=U/I  ce qui va nous permettre de calculer la résistance à utiliser.

Le calcul de la résistance à utiliser est donc R=3,2/0,02=160 Ω.

Il nous faut donc utiliser une résistance de 160 Ω pour notre exemple.

Alors le calcul précis n'est pas de la plus grande importance, en fait si vous utilisez une résistance qui se situe entre 100 Ω et 1 000 Ω, vous évitez les risques de griller la diode. Le site Arduino montre des montages avec des résistances de 220 Ω (rouge,rouge marron), j'utilise pour ma part des 100 Ω (marron, noir, marron), et si vous essayez 1 KΩ (marron, noir, rouge) ça fonctionne encore très bien.

Mais pourquoi tous ces calculs compliqués alors ?

Parce que certains veulent aller plus loin, parce que certains veulent vraiment contrôler la luminosité de leur LED, et parce qu'un jour peut-être vous voudrez calculer ces données avec précisions alors vous saurez où chercher... et puis un peu de culture générale ne fait pas de mal.

Connectez une LED sur un pin (1 à 13)

Schéma de montage de LED

Voici un montage Arduino avec deux LED.

Montage avec deux LED et résistances
Montage Arduino avec deux LED et résistances

Ici, la grande patte de la LED est représentée par un petit décroché. Observez ce schéma : pour une LED, j'ai placé la résistance avant la LED, et pour  l'autre après la LED. Ça n'a aucune incidence sur l'intensité qui parcourt la LED.

Mais il faut tout de même avoir en tête le parcours du courant du plus vers le moins.

On part du +5V de l'arduino, on suit le fil rouge, qui entre dans la breadBoard, il est relié au fil orange qui monte et est connecté plus haut. Cette connexion relie le fil orange à la patte de la résistance puis sort par l'autre patte. La connexion dans la breadBoard amène le courant dans la patte + de la LED, puis traverse la LED, et sort par la patte -. Ensuite le courant passe dans la breadBoard jusqu'à l'autre fil orange, qui entre dans les trous reliés au Gnd. le courant rejoint alors le Gnd, la boucle est bouclée.

Première méthode pour connecter une LED sur un pin

La sortie +5V fournit du courant continuellement. En revanche les pins de 1 à 13 ne fournissent du courant que par programmation. C'est tout l'intérêt de l'Arduino.

Nous allons reprendre le programme "Blink Blink" qui permettait de faire clignoter la LED 13 (celle directement sur la carte Arduino) et l'utiliser pour faire clignoter une LED branchée sur la breadBoard. La patte + de la LED est orientée vers le pin 13.

Tout d'abord, le branchement :

Branchement LED du pin 13 vers le Gnd
Branchement LED du pin 13 vers le Gnd

Si on suit le parcours du courant, il part du pin 13, il passe par la résistance, puis par la LED, puis il rejoint les trous connectés au Gnd de l'Arduino (prenez votre temps pour vérifier cela, quitte à suivre avec votre doigt le parcours).

Reprenons maintenant le programme :

int pinLed=13; //variable pour le numéro du pin utilisé
void setup()
{
    pinMode(pinLed,OUTPUT); //le pin 13 en mode sortie de courant
}
void loop()
{
    digitalWrite(pinLed,HIGH); // on passe le pin à +5V
    delay (1000);
    digitalWrite(pinLed,LOW); // on passe le pin à 0V
    delay(1000);
}

La commandepinMode() sert à signaler que le pin 13 va envoyer du courant (et pas en recevoir). Cette commande est incontournable.

Une fois prêt, le pin se met en +5V ou 0V grâce à la commandedigitalWrite().

On envoie donc du courant par programmation et plus uniquement par branchement !

Petit exercice : Modifiez le programme et les branchements pour que la LED clignote sur le pin 7.

Vérifiez la solution !

Voyons une autre façon de connecter un LED.

Une autre méthode pour ménager la carte Arduino

L'exemple précédent utilise le pin 13 (ou 7) pour fournir du courant qui s'enfuit ensuite vers le Gnd. Cette méthode de branchement est correcte, mais elle demande de l'énergie à l'Arduino. Ce n'est pas trop la spécialité de la carte... elle préfère absorber du courant qu'en fournir.

Il existe une autre façon de brancher une LED (ou autre composant mangeur de courant) qui permet de ménager notre petit Arduino.

Il faut monter le circuit à l'envers. C'est à dire que vous partez du +5V de l'Arduino, vous connectez ensuite la résistance et la LED (l'ordre importe peu) puis vous reliez le tout au pin 13. N'oubliez pas de brancher la patte + de la LED vers le +5V.

Branchement de la LED du +5V vers le pin 13
Branchement de la LED du +5V vers le pin 13

 

(Non c'est pas pareil ! Lukas, je fais appel à votre sens de l'observation, on a inversé le sens de la LED et la connexion sur la breadboard. Allez, concentrez-vous un peu !)

Hein ?? On envoie du +5V dans le pin 13 ? Ça va pas griller la carte ? 

Et bien non, rappelez-vous que le courant ne circule que s'il y a une différence de potentiel électrique. Si on indique à l'Arduino (avec la commandedigitalWrite() etHIGH d'envoyer du +5V dans le pin 13, on annule la différence de potentiel (+5V fourni des deux côtés) donc le courant ne circule pas. Puis lorsque, par programmation, on dit que le pin 13 se met à 0V (avec LOW), le pin 13 devient un Gnd et absorbe le courant (car il se met à circuler) et la diode s'allume.

Une autre différence avec le branchement précédent c'est qu'il faut adapter le programme  :

Pour allumer, on doit positionner le pin sur LOW et pour éteindre sur HIGH (ça ne change rien aux instructions du programme, à part qu’elles sont données dans l’ordre inverse).

Bon je crois que le principal est dit sur les notions d’électricité, l’utilisation de la breadboard et le branchement d’une LED à l’Arduino. Passons à l'action dans le chapitre suivant avec la réalisation de deux programmes avec plusieurs LEDs...

Exemple de certificat de réussite
Exemple de certificat de réussite