Vous êtes sur la page 1sur 158

Fabriquer un

objet connecté
avec Arduino
Pole de l’Etudiant Entrepreneur de Sfax
Sfax 11-13 Fév. 2021

Dr. Ing. Mohamed OULD ELHASSEN


Maitre-assistant
Consultant en IoT et Industrie 4.0
Plan de la formation

Jour 1 : Connaître les bases d’Arduino, cartes


programmables et la programmation embarquée

Jour 2 : Réaliser et programmer un circuit à base


d’Arduino

Jour 3 : Approfondir la programmation Arduino et


la communication entre objets à base d’Arduino

Dr. Mohamed OULD ELHASSEN 2


Jour 01

Connaître les bases d’Arduino, cartes


programmables et la programmation
embarquée
Plan du jour 01

Compétence-01: Maîtriser Installer les logiciels nécessaires pour


travailler sous Arduino
l'environnement logiciel de Maîtriser les principes du langage de
développement Arduino programmation Arduino et sa syntaxe

Maîtriser les notions de bases


Compétence-02 : Maîtriser d’électronique pour comprendre les
circuits à base d’Arduino
les bases d’électronique Connaître et les composants
nécessaires pour Arduino électroniques nécessaires pour la mise
en place d’un circuit simple

Dr. Mohamed OULD ELHASSEN 4


Compétence 01

Maîtriser l'environnement logiciel de


développement Arduino
09h00’-12h00’
Présentation de la compétence

• Cette compétence permet de :


– Préparer l’environnement logiciel d’Arduino
– Maitriser le langage Arduino
– Compiler et exécuter un programme Arduino

Dr. Mohamed OULD ELHASSEN 6


Plan de la compétence

• Activité 01 : Présentation et installation des


environnements du travail, Initiation au
langage de programmation Arduino
• Activité 02 : Compilation du premier
programme en langage Arduino

Dr. Mohamed OULD ELHASSEN 7


Activité 01

Présentation et installation des


environnements du travail
(01h30’)
Objectifs de l’activité

CONNAITRE LES OUTILS INSTALLER LES OUTILS COMPRENDRE ET SAVOIR Comprendre la syntaxe d’un
NÉCESSAIRES POUR NÉCESSAIRES POUR MANIPULER programme Arduino
TRAVAILLER AVEC L’ARDUINO COMMENCER À TRAVAILLER L’ENVIRONNEMENT DE
AVEC L’ARDUINO PROGRAMMATION ARDUINO

Dr. Mohamed OULD ELHASSEN 9


Introduction et notions pour Arduino

• Comment faire des montages électroniques


facilement programmables avec un langage de
programmation simple et efficace ?

Dr. Mohamed OULD ELHASSEN 10


Introduction et notions pour Arduino

• Arduino est un outil, une communauté et une


façon de penser qui transforme notre regard
sur la technologie et l’usage que nous en
faisons.

Dr. Mohamed OULD ELHASSEN 11


Qu'est ce que c'est ?

• Un projet créé par une


équipe de
développeurs,
composée de six
individus :
– Massimo Banzi, David
Cuartielles, Tom Igoe,
Gianluca Martino, David
Mellis et Nicholas Zambetti.
• Cette équipe a créé le
"système Arduino".

Dr. Mohamed OULD ELHASSEN 12


Qu'est ce que c'est ?

• C’est ainsi qu’en 2005, le projet Arduino a été


lancé pour fournir un matériel bon marché et
facile à utiliser à destination des étudiants en
design d’interaction.

On dit que Massimo Banzi et David Cuartielles


nommèrent leur projet d’après Arduin d’Ivera,
un roi italien, mais d’après des sources
fiables, ce serait le nom d’un bar proche de
leur université.

Dr. Mohamed OULD ELHASSEN 13


Introduction et notions pour Arduino

• Arduino est accessible à tous par sa simplicité.


– Usage professionnel, tant les possibilités d'applications
sont nombreuses.

• Cartes électroniques polyvalentes et parfaites


pour les débutants qui ne demandent qu'à
apprendre et progresser.

Dr. Mohamed OULD ELHASSEN 14


But et utilité de l’Arduino

• Le système Arduino, donne la possibilité de :


– Allier les performances de la programmation à celles de
l'électronique.
– Programmer des systèmes électroniques.

• Avantage de l'électronique programmée :


– Schémas électroniques,
– Coût de la réalisation,
– Charge de travail à la conception d'une carte
électronique.

Dr. Mohamed OULD ELHASSEN 15


Applications pour Arduino

• Un grand nombre d’application dans tous les


domaines :
– Contrôler les appareils domestiques
– Fabriquer votre propre robot
– Faire un jeu de lumières
– Communiquer avec l'ordinateur
– Télécommander un appareil mobile
– Etc.

Dr. Mohamed OULD ELHASSEN 16


Bonnes raisons de choisir Arduino

• Le prix du matériel

Dr. Mohamed OULD ELHASSEN 17


Bonnes raisons de choisir Arduino

• Liberté de ressources
– Elle constitue en elle même deux choses :
• Le logiciel : gratuit et open source, développé en Java,
dont la simplicité d'utilisation relève du savoir cliquer
sur la souris.
• Le matériel : cartes électroniques dont les schémas
sont en libre circulation sur internet.

Dr. Mohamed OULD ELHASSEN 18


Bonnes raisons de choisir Arduino

• Compatibilité
– Le logiciel est compatible sous les plateformes les plus
courantes (Windows, Linux et Mac), contrairement aux
autres outils de programmation du commerce qui ne
sont, en général, compatibles qu'avec Windows.

• Communauté

Dr. Mohamed OULD ELHASSEN 19


Bonnes raisons de choisir Arduino

Dr. Mohamed OULD ELHASSEN 20


Outils nécessaires pour travailler avec l’Arduino

• Microcontrôleur :
– C’est le cerveau de notre carte.
– Il reçoit le programme que nous allons créer et le stocke
dans sa mémoire avant de l’exécuter.
– Grâce à ce programme, le microcontrôleur réalise des
choses, qui peuvent être :
• Faire clignoter une LED,
• Afficher des caractères sur un écran,
• Envoyer des données à un ordinateur,
• Mettre en route ou arrêter un moteur…

Dr. Mohamed OULD ELHASSEN 21


Outils nécessaires pour travailler avec l’Arduino

• Deux modèles de Microcontrolleur :


– Microcontrôleur de grande taille,
– Microcontrôleur dit SMD (SMD: Surface Mounted
Device).

Dr. Mohamed OULD ELHASSEN 22


Outils nécessaires pour travailler avec l’Arduino

• Alimentation :
– Le Microcontrôleur fonctionne sous une tension de 5V, la
carte peut être alimentée directement en 5V par le port
USB ou bien par une alimentation externe qui est
comprise entre 7V et 12V.
– Un régulateur se charge ensuite de réduire la tension à
5V pour le bon fonctionnement de la carte.

Dr. Mohamed OULD ELHASSEN 23


Outils nécessaires pour travailler avec l’Arduino

• Logiciel :
– Permettre de programmer la carte Arduino.
– Arduino IDE

Dr. Mohamed OULD ELHASSEN 24


Outils nécessaires pour travailler avec l’Arduino

• Version en ligne de l'éditeur de code est disponible à


cette adresse :
https://create.arduino.cc/editor

Dr. Mohamed OULD ELHASSEN 25


Pratique : Téléchargement

• Version installable :
– https://www.arduino.cc/en/main/software

Dr. Mohamed OULD ELHASSEN 26


Pratique : Téléchargement

• Deux choix :
– Download : Dans cette catégorie, vous pouvez
télécharger la dernière version du logiciel. Les
plateformes Windows, Linux et Mac sont supportées par
le logiciel.
– Previous IDE Versions : Dans cette catégorie-là, vous avez
toutes les versions du logiciel, sous les plateformes
précédemment citées, depuis le début de sa création.

Dr. Mohamed OULD ELHASSEN 27


Pratique : Téléchargement

• Télécharger la version convenable pour votre


système d’exploitation :

Dr. Mohamed OULD ELHASSEN 28


Pratique : Installation

• Installer l’IDE :
– Sous Windows : Une fois que le téléchargement est
terminé, vous n'avez plus qu'à décompresser le fichier
avec un utilitaire de décompression (7- zip, WinRar, ...). A
l'intérieur du dossier se trouvent quelques fichiers et
l'exécutable du logiciel.
– Mac os : Double-cliquez sur le fichier .dmg
– Sous Linux : $ sudo apt-get install arduino

Dr. Mohamed OULD ELHASSEN 29


Pratique : Installation

• Installer l’IDE :

Dr. Mohamed OULD ELHASSEN 30


Pratique : IDE

• Explorer les fonctionnalité de l’environnement


Arduino :

Dr. Mohamed OULD ELHASSEN 31


Pratique : IDE

• Le cadre numéro 1 : ce sont les


options de configuration du
logiciel

• Le cadre numéro 2 : il contient les


boutons qui vont nous servir
lorsque l'on va programmer nos
cartes

• Le cadre numéro 3 : ce bloc va


contenir le programme que nous
allons créer

• Le cadre numéro 4 : celui-ci est


important, car il va nous aider à
corriger les fautes dans notre
programme. C'est le débogueur.

Dr. Mohamed OULD ELHASSEN 32


Pratique : IDE

• New (nouveau) : va permettre de


créer un nouveau programme.
Quand on appuie sur ce bouton,
une nouvelle fenêtre, identique à
celle-ci, s'affiche à l'écran

• Open... (ouvrir) : avec cette


commande, nous allons pouvoir
ouvrir un programme existant

• Save / Save as... (enregistrer /


enregistrer sous...) : enregistre le
document en cours / demande où
enregistrer le document en cours

• Examples (exemples) : ceci est


important, toute une liste se
déroule pour afficher les noms
d'exemples de programmes
existants ; avec çà, vous pourrez
vous aider pour créer vos propres
programmes

Dr. Mohamed OULD ELHASSEN 33


Pratique : IDE
• Bouton 1 : Ce bouton permet de
vérifier le programme, il actionne
un module qui cherche les erreurs
dans votre programme

• Bouton 2 : Créer un nouveau


fichier

• Bouton 3 : Sauvegarder le
programme en cours

• Bouton 4 : On n'y touche pas pour


l'instant

• Bouton 5 : Stoppe la vérification

• Bouton 6 : Charger un programme


existant

• Bouton 7 : Compiler et envoyer le


programme vers la carte

Dr. Mohamed OULD ELHASSEN 34


Pratique : IDE

Verify : Ce bouton permet de vérifier le programme, il actionne un module qui


1
cherche les erreurs dans votre programme

2 Upload : Charge (téléverse) le programme dans la carte Arduino

3 New : pour créer un nouveau programme (sketch)

4 Open : pour ouvrir un programme existant

5 Save : pour sauvegarder le programme

6 Verify : pour visualiser les données transmises par le port série

Dr. Mohamed OULD ELHASSEN 35


Gestion bibliothèque

Dr. Mohamed OULD ELHASSEN 36


Pratique : IDE
• Coloration syntaxique de l’IDE:
– En orange, apparaissent les mots-clés reconnus par le langage
Arduino comme les fonctions .
– En bleu, apparaissent les mots-clés reconnus par le langage
Arduino comme des constantes.
– En gris, les commentaires qui ne seront pas exécutés dans le
programme.
• Déclarer un commentaire de deux manières
différentes :
– tout ce qui se trouve après « // » sera un commentaire.
– on encadrer des commentaires sur plusieurs lignes entre « /* »
et « */ ».

Dr. Mohamed OULD ELHASSEN 37


LANGAGE DE PROGRAMMATION ARDUINO

Dr. Mohamed OULD ELHASSEN 38


Introduction au langage Arduino

• Pour pouvoir programmer une carte Arduino,


il faut trois choses :
– Un IDE
– Une carte Arduino
– Un programme écrit en langage Arduino

Dr. Mohamed OULD ELHASSEN 39


Déroulement d’un programme Arduino

• Le programme Arduino s’exécute de la façon


suivante :
1. Prise en compte des instructions de la partie déclarative
2. Exécution de la partie configuration ( fonction setup() ),
3. Exécution de la boucle sans fin ( fonction loop() ): le
code compris dans la boucle sans fin est exécuté
indéfiniment.

Dr. Mohamed OULD ELHASSEN 40


Déroulement d’un programme Arduino

Dr. Mohamed OULD ELHASSEN 41


Un programme Arduino minimal
void setup() //fonction d'initialisation de la carte

//contenu de l'initialisation

void loop() //fonction principale, elle se répète

(s’exécute) à l'infini

//contenu de votre programme

Dr. Mohamed OULD ELHASSEN 42


Un programme Arduino minimal
void setup() //fonction d'initialisation de la carte
{
//contenu de l'initialisation
//on écrit le code à l'intérieur

Dr. Mohamed OULD ELHASSEN 43


Un programme Arduino minimal

• Cette fonction setup() est appelée une seule


fois lorsque le programme commence.
– C'est pourquoi c'est dans cette fonction on écrit le code
qui n'a besoin d'être exécuté une seule fois.

• On appelle cette fonction : "fonction


d'initialisation".
– On y retrouvera la mise en place des différentes sorties et
quelques autres réglages.
– C'est un peu le check-up de démarrage.

Dr. Mohamed OULD ELHASSEN 44


Un programme Arduino minimal

• Une fois que l'on a initialisé le programme il faut


ensuite créer son "cœur", autrement dit le
programme en lui même.
void loop() //fonction principale,
elle se répète (s’exécute) à
l'infini
{
//contenu de votre programme
}

Dr. Mohamed OULD ELHASSEN 45


Un programme Arduino minimal

• Dans cette fonction loop() on écrit le contenu


du programme.
– Cette fonction est appelée en permanence, c'est-à-dire
qu'elle est exécutée une fois, puis lorsque son exécution
est terminée, on la ré-exécute et encore et encore.

• On parle de boucle infinie.

Dr. Mohamed OULD ELHASSEN 46


Instructions

• Les instructions sont des lignes de code qui


disent au programme : "fais ceci, fais cela..."
• Ce sont donc les ordres qui seront exécutés
par l’Arduino.
• Il est très important de respecter exactement
la syntaxe; faute de quoi, le code ne pourra
pas être exécuté.

Dr. Mohamed OULD ELHASSEN 47


Instructions

• Les points virgules (;)


– Les points virgules terminent les instructions. Si par
exemple on dit dans notre programme : "appelle la
fonction mangerLeChat", on doit mettre un point virgule
après l'appel de cette fonction.

• Lorsque le code ne fonctionne pas, c’est


souvent parce qu’il manque un point-virgule.
• Il faut donc être très attentif à ne pas les
oublier!

Dr. Mohamed OULD ELHASSEN 48


Instructions

• Les accolades { }
– Les accolades sont les "conteneurs" du code du
programme.
– Elles sont propres aux fonctions, aux conditions et aux
boucles.
– Les instructions du programme sont écrites à l'intérieur
de ces accolades.

• Pour ouvrir une accolade sur Mac, taper alt-8


et alt-9 pour la fermer.

Dr. Mohamed OULD ELHASSEN 49


Instructions

• Les commentaires
– Les commentaires sont des lignes de codes qui seront
ignorées par le programme. Ils permettent d'annoter et
de commenter le programme.
• Ligne unique de commentaire :
– //cette ligne est un commentaire sur UNE SEULE ligne
• Ligne ou paragraphe sur plusieurs lignes :
– /*cette ligne est un commentaire, sur PLUSIEURS lignes
qui sera ignoré par le programme, mais pas par celui qui
lit le code ;) */

Dr. Mohamed OULD ELHASSEN 50


Instructions

• Les accents
– Il est formellement
interdit de mettre
des accents en
programmation!
Sauf dans les
commentaires...

Dr. Mohamed OULD ELHASSEN 51


Exemple de code

Dr. Mohamed OULD ELHASSEN 52


Exemple de code

• La ligne pinMode(13, OUTPUT);


– initialise la broche 13 du microcontrôleur comme sortie.

• La ligne Serial.begin(9600);
– initialise le port série qui permet à l'Arduino d'envoyer et
de recevoir des informations à l'ordinateur.
– C'est recommandé, mais cela fonctionne aussi sans.

Dr. Mohamed OULD ELHASSEN 53


Exemple de code

• Avec l'instruction digitalWrite(13, HIGH);,


– le microcontrôleur connecte la broche D13 au +5V ce qui
a pour effet d'allumer la LED (de l'électricité sort de la
broche D13).

• L'instruction delay(500);
– indique au microcontrôleur de ne rien faire pendant 500
millisecondes, soit ½ seconde.

Dr. Mohamed OULD ELHASSEN 54


Exemple de code
• Avec l'instruction digitalWrite(13, LOW);
– le microcontrôleur connecte la broche D13 à la masse (Gnd) ce
qui a pour effet d'éteindre la LED (on coupe l'alimentation en
électricité).
• L'instruction delay(500);
– indique au microcontrôleur à nouveau de ne rien faire pendant
500ms soit ½ seconde.
• Le résultat est donc que la LED s'allume pendant
½ seconde, puis s'éteint pendant une ½ seconde
puis s'allume pendant ½ seconde... elle clignote
donc.

Dr. Mohamed OULD ELHASSEN 55


Exemple de code
• Le terme Output.
– Il s’agit de préciser si la broche est une entrée ou une sortie.
– Le microcontrôleur a la capacité d'utiliser certaines de ses
broches en entrée (INPUT) ou en sortie (OUTPUT).
• Cette ligne de code doit se trouver dans la
fonction setup(). La fonction est pinMode(),
comme dans l'exemple :
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
}

Dr. Mohamed OULD ELHASSEN 56


Variables

• Une variable, qu'est ce que c'est ?


– Imaginons un nombre dont nous devons nous souvenir. Ce
nombre est stocké dans un espace de stockage de la mémoire
vive (RAM) du microcontrôleur. Chaque espace de stockage est
identifié de manière unique.
– Le nombre stocké a la particularité de changer de valeur. La
variable n'est que le conteneur. Son contenu va donc pouvoir
être modifié. Et ce conteneur va être stocké dans une case de
la mémoire. Si on matérialise cette explication par un schéma,
cela donnerait :
• nombre ➞ variable ➞ mémoire
• le symbole "➞" signifiant : "est contenu dans..."

Dr. Mohamed OULD ELHASSEN 57


Variables

• Le nom d'une variable


– Imaginons que nous stockons le nombre dans un
container (la variable).
– Chaque container est lui, déposé dans un espace bien
précis, afin de le retrouver.
– Chaque container (variable) est aussi identifié par un
nom unique.
– Le nom de variable n'accepte que l'alphabet
alphanumérique ([a-z], [A-Z], [0-9]) et _ (underscore). Il
est unique; il ne peut donc pas y avoir deux variables
portant le même nom.

Dr. Mohamed OULD ELHASSEN 58


Variables

• Taille d’une variable :

Dr. Mohamed OULD ELHASSEN 59


Broches

• Broches de la carte Arduino UNO

Dr. Mohamed OULD ELHASSEN 60


Broches

• Définir les broches du microcontrôleur :


– Nous avons identifié les broches du microcontrôleur à
l’aide de leurs numéros, comme dans l’exemple suivant :
• pinMode(13, OUTPUT);
• Mais dès qu’on a des montages plus compliqués, cela
devient difficile de savoir qui fait quoi.
– Il est donc possible de renommer chaque broche du
microcontrôleur.

Dr. Mohamed OULD ELHASSEN 61


Broches

• Définissons la broche utilisée du


microcontrôleur en tant que variable.
– const int led1 = 13;
– Le terme const signifie que l'on définit la variable comme
étant constante.
– Par conséquent, on change la nature de la variable qui
devient alors constante.
– Le terme int correspond à un type de variable.
– Dans une variable de ce type, on peut stocker un nombre
allant de -2147483648 à +2147483647, ce qui sera
suffisant! Ainsi, la broche 13 s’appellera led1.

Dr. Mohamed OULD ELHASSEN 62


Broches

• Broches :

Dr. Mohamed OULD ELHASSEN 63


Pause café

64
Activité 2

Compilation du premier programme en


langage Arduino
(01h30’)
Objectifs de l’activité

ECRIRE UN COMPILER UN CHOISIR LA CARTE SAVOIR UTILISER LE


PROGRAMME PROGRAMME CIBLE PARMI LA MONITEUR SERIE
ARDUINO ARDUINO FAMILLE ARDUNIO

Dr. Mohamed OULD ELHASSEN 66


Arduino Starter Kit

Dr. Mohamed OULD ELHASSEN 67


Arduino Starter Kit
• Arduino Uno
• Un câble USB A-B
• LED
• Resistances
• Potentiometers
• Diodes
• Photorésistances
• Capteurs
• …
Dr. Mohamed OULD ELHASSEN 68
Premier programme Arduino

• Faire clignoter la LED intégrée

Dr. Mohamed OULD ELHASSEN 69


Premier programme Arduino
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever


void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on
delay(500); // wait for half a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off
delay(500); // wait for half a second
}

Dr. Mohamed OULD ELHASSEN 70


Premier programme Arduino

• digitalWrite(13, HIGH); // allumer la led


• delay(500); // attendre une seconde
• digitalWrite(13, LOW); // éteindre la led
• delay(500); // attendre une seconde

Dr. Mohamed OULD ELHASSEN 71


Compiler un programme Arduino

• Le rôle d’un compilateur est de traduire un


texte en quelque chose qu’un micro-
processeur ou, dans notre cas, un
microcontrôleur puisse comprendre et
exécuter.
– Le texte qui constitue un programme est trop complexe
pour être exécuté directement par un microcontrôleur ou
un micro-processeur.

Dr. Mohamed OULD ELHASSEN 72


Compiler un programme Arduino

• La compilation est la transformation du


langage de programmation utilisé par
l'homme, en langage machine utilisé par la
machine.
• C'est le rôle de l'interface pour l'Arduino.

Dr. Mohamed OULD ELHASSEN 73


Compiler un programme Arduino

Dr. Mohamed OULD ELHASSEN 74


Compiler un programme Arduino

• La compilation pour un Arduino Uno donnera :


000002be <setup>:
2be: 80 91 60 00 lds r24, 0x0060
2c2: 8f 5f subi r24, 0xFF
2c4: 80 93 60 00 sts 0x0060, r24
2c8: 08 95 ret

Dr. Mohamed OULD ELHASSEN 75


Choisir une carte cible

• Carte Arduino UNO

Dr. Mohamed OULD ELHASSEN 76


Flasher un programme au microcontrôleur

• Choix de la carte cible :

Dr. Mohamed OULD ELHASSEN 77


Flasher un programme au microcontrôleur

Dr. Mohamed OULD ELHASSEN 78


Savoir utiliser le moniteur série

• Un moniteur ou terminal est un écran/clavier


relié à un microcontrôleur pour interagir avec
un utilisateur.
• USB a défini des "com ports" qui émulent des
prises séries, avec des numéros de ports qui
fonctionnent en général.
• Arduino utilise un com port pour charger le
programmes, et quelques fonctions Arduino
permettent d'utiliser cette ressources.

Dr. Mohamed OULD ELHASSEN 79


Savoir utiliser le moniteur série
• Appel du terminal Arduino
• On appelle le terminal en cliquant sur
l'icône (1). Une fenêtre s'ouvre et un
reset est envoyé pour redémarrer le
programme. Cette fenêtre se ferme si
on lance une nouvelle compilation.
• Le driver qui permet la communication
avec le PC pour le chargement a été
initialisé à une vitesse qui est affichée
en (2). C'est cette vitesse qu'il faut
spécifier pour mettre en route les
transferts.
• En (3) on a le numéro du com port.
• En (4) et (5) des options de mise en
page
• En (6) on peut envoyer des caractères
à partir du clavier.

Dr. Mohamed OULD ELHASSEN 80


Savoir utiliser le moniteur série
• Exemple :

Dr. Mohamed OULD ELHASSEN 81


Exercice

• Code de morse : En code morse, les lettres


sont codées à l'aide d’une succession
d'impulsions courtes et longues.
• On utilise le code morse pour transmettre un
SOS, par exemple sous forme de signaux
lumineux avec une lampe de poche.
• L'exercice consiste à coder l'Arduino et sa LED
pour qu’il transmette un signal de SOS
lumineux.

Dr. Mohamed OULD ELHASSEN 82


Exercice

• Voici à quoi ressemble un SOS en morse:

S O S

Dr. Mohamed OULD ELHASSEN 83


EXERCICE

ECRIVEZ VOS NOM EN MORSE !

Dr. Mohamed OULD ELHASSEN 84


Pause déjeuner

85
Compétence 02

Maitriser les bases d’électronique


nécessaires pour Arduino
13h30’-16h30’
Présentation de la compétence

• Cette compétence permet de :


– Maitriser les notions de bases d’électronique pour
comprendre et réaliser des circuits à base d’Arduino
– Connaitre les composants électroniques nécessaires pour
la mise en place d’un circuit simple

Dr. Mohamed OULD ELHASSEN 87


Plan de la compétence

• Activité 01 : Présentation des notions de base


de l’électronique
• Activité 02 : Câblage d’un premier circuit et
test d’exécution d’un premier programme
« Feux de circulation»

Dr. Mohamed OULD ELHASSEN 88


Activité 01

Présentation des notions de base de


l’électronique
(01h30’)
Plan

• A la fin de cette activité les apprenants


doivent :
– Comprendre les notions de base de sources d’énergies,
l’intensité du courant, la tension et la différence de
potentiel, la puissance
– Calculer les différents paramètres pour un circuit
électronique donné
– Distinguer entre les composants électroniques actifs et
les composants électroniques passifs
– Comprendre les critères de choix d’un composant
électronique dans un circuit électronique

Dr. Mohamed OULD ELHASSEN 90


Les bases de l’électronique

• L’électricité :
– L’électricité est un déplacement d’électrons dans un
milieu conducteur.

• Pour que ces électrons se déplacent tous dans


un même sens, il faut qu'il y ait une différence
du nombre d'électrons entre les deux
extrémités du circuit électrique.

Dr. Mohamed OULD ELHASSEN 91


Les bases de l’électronique

• Pour maintenir cette


différence du nombre
d'électrons, on utilise un
générateur :
– (pile, accumulateur,
alternateur...)
• La différence de quantité
d’électrons entre deux
parties d’un circuit s’appelle
la différence de potentiel et
elle se mesure en Volts (V).

Dr. Mohamed OULD ELHASSEN 92


Définitions

• Grandeur physique :
– Une grandeur physique est quelque chose qui se mesure.
• Par exemple, la pression atmosphérique est une
grandeur physique, ou bien la vitesse à laquelle circule
une voiture en est aussi une.

• En électronique nous avons nos propres


grandeurs, qui sont :
– le courant et la tension.

Dr. Mohamed OULD ELHASSEN 93


Définitions
• La source d'énergie : L'énergie que l'on va
manipuler (courant et tension) provient d'un
générateur.
– Par exemple, on peut citer : la pile électrique, la batterie
électrique, le secteur électrique.
• Cette énergie qui est fournie par le générateur est
restituée à un ou plusieurs récepteurs.
• Le récepteur, d'après son nom, reçoit de
l'énergie. On dit qu'il la consomme. On peut citer
pour exemples :
– un chauffage d’appoint, un sèche-cheveux, une perceuse.

Dr. Mohamed OULD ELHASSEN 94


Définitions

• Charges électriques :
– Les charges électriques sont des grandeurs physiques
mesurables. Elles constituent la matière en elle même.
– Dans un atome, qui est élément primaire de la matière, il
y a trois charges électriques différentes :
• les charges positives, négatives et neutres appelées
respectivement protons, électrons et neutrons.

• Nous pouvons définir le courant qui est un


déplacement ordonné de charges électriques.

Dr. Mohamed OULD ELHASSEN 95


Définitions

• Conductibilité des matériaux :


– La notion de conductibilité est importante à connaître,
car elle permet de comprendre pas mal de phénomènes.
– On peut définir la conductibilité comme étant la capacité
d'un matériau à se laisser traverser par un courant
électrique.

Dr. Mohamed OULD ELHASSEN 96


Définitions

• On peut distinguer quatre grandes familles :


– les isolants : leurs propriétés empêchent le passage d'un
courant électrique (plastique, bois, verre)
– les semi-conducteurs : ce sont des isolants, mais qui laissent
passer le courant dès lors que l'on modifie légèrement leur
structure interne (diode, transistor, LED)
– les conducteurs : pour eux, le courant peut passer librement à
travers tout en opposant une faible résistance selon le
matériau utilisé (or, cuivre, métal en général)
– les supraconducteurs : ce sont des types bien particuliers qui, à
une température extrêmement basse, n'opposent quasiment
aucune résistance au passage d'un courant électrique

Dr. Mohamed OULD ELHASSEN 97


Définitions

• Le courant électrique
– Le courant électrique se déplace
selon un sens de circulation.
• Un générateur électrique,
par exemple une pile,
produit un courant.
– Le courant va circuler du pôle
positif vers le pôle négatif de la
pile, si et seulement si ces deux
pôles sont reliés entre eux par
un fil métallique ou un autre
conducteur.
• Ceci, c'est le sens
conventionnel du courant.

Dr. Mohamed OULD ELHASSEN 98


Le courant électrique

• Intensité du courant :
– L’intensité du courant est la vitesse à laquelle circule ce
courant. Tandis que le courant est un déplacement
ordonné de charges électriques.
– On mesure la vitesse du courant, appelée intensité, en
Ampères (noté A) avec un Ampèremètre. En général, en
électronique de faible puissance, on utilise
principalement le milli-Ampère (mA) et le micro-Ampère
(μA), mais jamais bien au-delà.

Dr. Mohamed OULD ELHASSEN 99


Tension

• Notation et unité :
– La tension est mesurée en Volts (notée V) par un
Voltmètre. On utilise principalement le Volt, mais aussi
son sous-multiple qui est le milli-Volt (mV).

• On représente la tension, d'une pile par


exemple, grâce à une flèche orientée toujours
dans le sens du courant aux bornes d'un
générateur et toujours opposée au courant,
aux bornes d'un récepteur.

Dr. Mohamed OULD ELHASSEN 100


Différence de potentiel
• La différence de potentiel, on a au point M une tension de
0V et au point P, une tension de 5V.
• Prenons notre Voltmètre et mesurons la tension aux bornes
du générateur. La borne COM du Voltmètre doit être reliée
au point M et la borne "+" au point P.
– Le potentiel au point P, soustrait par le potentiel au point M vaut :

– On dit que la différence de potentiel entre ces deux points est de 5V.
Cette mesure se note donc : UPM.

Dr. Mohamed OULD ELHASSEN 101


Différence de potentiel

• Si on inverse le sens de branchement du


Voltmètre, la borne "+" est reliée au point M
et la borne COM au point P.
• La mesure que l'on prend est la différence de
tension (= potentiel) entre le point M et le
point P :

• Cette démonstration un peu surprenante vient


du fait que la masse est arbitraire.

Dr. Mohamed OULD ELHASSEN 102


Masse

• Qu'est ce que c'est ?


– La masse, et bien c'est un référentiel. En électronique on
voit la masse d'un montage comme étant le zéro Volt
(0V).
– C'est le point qui permet de mesurer une bonne partie
des tensions présentes dans un montage.

• Représentation et notation
– Elle se représente par ce symbole, sur un schéma
électronique :

Dr. Mohamed OULD ELHASSEN 103


Masse

• Une référence arbitraire :


– Pour votre culture, la masse est quelque chose
d'arbitraire.
– On peut changer l'emplacement de cette référence et,
par exemple, très bien dire que le 5V est la masse.
– Ce qui aura pour conséquence de modifier l'ancienne
masse en -5V.

Dr. Mohamed OULD ELHASSEN 104


Composants électroniques

Dr. Mohamed OULD ELHASSEN 105


Composants électroniques

• Un composant électronique est un élément


destiné à être assemblé avec d'autres afin de
réaliser une ou plusieurs fonctions
électroniques.
• Leur assemblage est préalablement défini par
un schéma d'implantation d'un circuit
électronique.

Dr. Mohamed OULD ELHASSEN 106


Composants passifs

• Un composant est dit


passif lorsqu'il ne
permet pas
d'augmenter la
puissance d'un signal.

Dr. Mohamed OULD ELHASSEN 107


Résistance

• Présentation
– C'est le composant le plus utilisé en électronique. Sa
principale fonction est de réduire l'intensité du courant.
– Ce composant se présente sous la forme d'un petit boitier
fait de divers matériaux et repéré par des anneaux de
couleur indiquant la valeur de cette dernière. Photo de
résistance :

Dr. Mohamed OULD ELHASSEN 108


Résistance

• Loi d'ohm
– Le courant traversant une résistance est régi par une formule
assez simple, qui se nomme la loi d'ohm :

• I : intensité qui traverse la résistance en Ampères, notée A


• U : tension aux bornes de la résistance en Volts, notée V
• R : valeur de la résistance en Ohms, notée Ω

• En général, on retient mieux la formule sous cette


forme :

Dr. Mohamed OULD ELHASSEN 109


Photorésistance
• Une photorésistance est un composant
électronique dont la résistance (en Ohm Ω) varie
en fonction de l'intensité lumineuse. Plus la
luminosité est élevée, plus la résistance est basse.
On peut donc l'utiliser comme capteur lumineux
pour:
– Mesure de la lumière ambiante pour une station météo.
– Détecteur de lumière dans une pièce.
– Suiveur de lumière dans un robot.
– Détecteur de passage.
– …

Dr. Mohamed OULD ELHASSEN 110


Condensateurs
• Le condensateur est un composant électronique passif,
comme les résistances. Il a pour faculté d'emmagasiner une
charge électrique, avant de pouvoir la restituer en cas de
baisse de la tension.
• On utilise ainsi les condensateur comme régulateur de
tension, Mais on utilise aussi sa capacité à se charger pour
absorber les brusques, mais courtes fluctuations de tension
que sont les parasites.
• La capacité de charge se mesure en Farads (F).
Inductance (bobine)
• Une bobine, solénoïde, auto-
inductance ou quelquefois self
(par anglicisme), est un
composant courant en
électrotechnique et
électronique.
• Les physiciens et ingénieurs
français l'appellent souvent
par synecdoque « inductance
», ce terme désignant la
propriété caractéristique de la
bobine, qui est son opposition
à la variation du courant dans
ses spires.

Dr. Mohamed OULD ELHASSEN 112


Potentiomètre

• Le potentiomètre est une résistance variable.


• La plupart des potentiomètres sont soit
rotatifs, soit linéaires.

Dr. Mohamed OULD ELHASSEN 113


Composants actifs
• Un composant actif est un
composant électronique
qui permet d'augmenter
la puissance d'un signal
(tension, courant, ou les
deux). La puissance
supplémentaire est
récupérée au travers
d'une alimentation. On
peut citer en majorité des
semi-conducteurs, on y
classe : transistor, circuit
intégré

Dr. Mohamed OULD ELHASSEN 114


Diode
La diode sert principalement au bon fonctionnement d’un
circuit en empêchant la circulation du courant dans le mauvais
sens.

Symbole général :

Identification du composant :
Diode LED
• Le courant électrique ne peut traverser la diode que dans le
sens de l’anode vers la cathode.
• On reconnaît l’anode, car il s’agit de la broche la plus longue.
Lorsque les deux broches sont de même longueur, on peut
distinguer l’anode de la cathode, par un méplat du côté de
cette dernière. Le symbole de la LED est le suivant:

Dr. Mohamed OULD ELHASSEN 116


LED et résistance de protection
• Attention: le courant produit par l’Arduino est trop important
pour y brancher directement une LED dessus.
– L’utilisation d’une résistance est obligatoire, pour ne pas griller la LED.

• En utilisant divers matériaux semi-conducteurs, on fait varier


la couleur de la lumière émise par la LED. Il existe enfin une
grande variété de formes de LEDs.

Dr. Mohamed OULD ELHASSEN 117


En pratique

• Ensuite, on prendra pour l'exemple une tension


d'alimentation de 5V (en sortie de l'Arduino, par
exemple) et une tension aux bornes de la LED de
1,2V en fonctionnement normal. On peut donc
calculer la tension qui sera aux bornes de la
résistance :

Dr. Mohamed OULD ELHASSEN 118


Le Transistor

• Le transistor est le composant électronique actif


essentiel en électronique utilisé essentiellement
comme :
– Interrupteur commandé et pour l‘amplification, mais également pour
stabiliser une tension, moduler un signal mais aussi de nombreuses
autres utilisations.

Dr. Mohamed OULD ELHASSEN 119


Relais

• Un relais est un appareil composé d’une


bobine (électroaimant) qui lorsqu’elle est
parcourue par un courant électrique agit sur
un ou plusieurs contact.
Régulateur de tension

La fonction régulation de tension a


pour but de maintenir une
tension de sortie constante en
agissant sur la tension d’entrée.
PRATIQUE
MESURE DE GRANDEURS
LES BONS OUTILS FONT LE BON
OUVRIER

Dr. Mohamed OULD ELHASSEN 122


Multimètre

Dr. Mohamed OULD ELHASSEN 123


Mesurer une tension

Dr. Mohamed OULD ELHASSEN 124


Mesurer une intensité

Dr. Mohamed OULD ELHASSEN 125


Mesurer une résistance

Dr. Mohamed OULD ELHASSEN 126


Mesurer la continuité

Dr. Mohamed OULD ELHASSEN 127


Pause café

128
Activité 02

Composants électroniques nécessaires pour


un circuit à base de l’Arduino
(01h30’)
Objectifs

• A la fin de cette activité les apprenants


doivent :
– Pouvoir citer les composants qui constituent un circuit à
base d’Arduino à savoir : plaque d’essai, fils, bouton
poussoir, …
– Comprendre le fonctionnement de chacun de ces
composants

Dr. Mohamed OULD ELHASSEN 130


Exemple d’un circuit à Arduino

Dr. Mohamed OULD ELHASSEN 131


Plaque d’essai

• Présentation
– Une platine d’expérimentation (appelée breadboard)
permet de réaliser des prototypes de montages
électroniques sans soudure et donc de pouvoir réutiliser
les composants.

Dr. Mohamed OULD ELHASSEN 132


Plaque d’essai
• Caractéristiques : Tous les connecteurs dans une rangée de 5
sont reliés entre eux. Donc si on branche deux éléments dans
un groupe de cinq connecteurs, ils seront reliés entre eux. Il
en est de même des alignements de connecteurs rouges (pour
l’alimentation) et bleus (pour la terre).

Dr. Mohamed OULD ELHASSEN 133


Plaque d’essai

• Fonctionnement : Les composants doivent ainsi être


places a cheval sur des connecteurs qui n'ont pas de
liens électriques entre eux.

Dr. Mohamed OULD ELHASSEN 134


Fils de connexion et cartes filles
• A part une LED sur la broche 13, la carte Arduino ne possède pas de
composants (résistances, diodes, moteurs...) qui peuvent être utilisés pour
un programme.
• Il est nécessaire de les rajouter. Mais pour cela, il faut les connecter à la
carte. C'est là qu'interviennent les connecteurs, aussi appelés broches
(pins, en anglais).
• Sur les Arduino et sur beaucoup de cartes compatibles Arduino, les
broches se trouvent au même endroit. Cela permet de fixer des cartes
d’extension, appelée shields en les empilant.

Dr. Mohamed OULD ELHASSEN 135


Fils de connexion et cartes filles

Dr. Mohamed OULD ELHASSEN 136


Straps : Fils de connexion

• Les straps sont essentiels pour utiliser votre


platine d’essai.
• Ce sont des fils isolés assez courts qui
permettent de relier vos composants aux
rangées de votre platine d’essai, à d’autres
composants, et à votre Arduino.

Dr. Mohamed OULD ELHASSEN 137


Straps : Fils de connexion

• Caractéristiques

Dr. Mohamed OULD ELHASSEN 138


Bouton poussoir

• Un bouton-poussoir n'a vraiment que deux


connexions, même s'il a quatre pattes.
– Lorsque le bouton est enfoncé, il y aura une connexion
entre toutes les jambes.
– Sinon, les deux pieds supérieurs sont connectés et les
deux pieds inférieurs le sont.

Dr. Mohamed OULD ELHASSEN 139


Diode LED

• Résistance de protection :
– La loi d’Ohms stipule que la tension aux bornes d’une
résistance est égale à UR=R⋅I.
– Ainsi, il est possible de calculer la résistance RLED
minimale à placer dans le circuit par la relation suivante :
RLED=(VLED–Vseuil)IFMAX
• Rappel : les LEDs standard de 5 mm de diamètre
(toutes les couleurs) ont des courants directs
admissibles de l’ordre de 30 mA.

Dr. Mohamed OULD ELHASSEN 140


Diode LED

• Caractéristiques : Pour pouvoir garantir un


point de fonctionnement correct (sans
destruction du composant), il est
indispensable de mettre une résistance en
série avec une LED.

Dr. Mohamed OULD ELHASSEN 141


Batterie d’alimentation

• Le microcontrôleur fonctionnant sous 5V, la


carte peut être alimentée directement en 5V
par le port USB ou bien par une alimentation
externe qui est comprise entre 7V et 12V.
• Un régulateur se charge ensuite de réduire la
tension à 5V pour le bon fonctionnement de la
carte.

Dr. Mohamed OULD ELHASSEN 142


Batterie d’alimentation

• Caractéristiques

Dr. Mohamed OULD ELHASSEN 143


Module d’alimentation

Dr. Mohamed OULD ELHASSEN 144


Protéger votre Arduino
• Au lieu d’utiliser les broches du microcontrôleur seulement sous
forme de sortie (OUTPUT), nous allons aussi les utiliser sous forme
d’entrée (INPUT); c’est-à-dire qu’au lieu d’être raccordée à la masse,
la broche le sera au +5V.
• Tout se passera bien, si au niveau du programme, la broche est
configurée comme input.
– Mais si elle devait être configurée en output par erreur, il est presque certain que
le microcontrôleur finira immédiatement au paradis des puces électroniques
grillées.
– Ainsi, pour éviter de condamner notre microcontrôleur à la chaise électrique,
nous allons devoir le protéger.
– Cela peut se faire en connectant sur la broche du microcontrôleur utilisé comme
input une résistance de 100 à 200Ω.

Dr. Mohamed OULD ELHASSEN 145


Protéger votre Arduino

• Lorsque l'Arduino est branché à l’ordinateur, le


dernier programme reçu est exécuté.
• Avant de commencer un nouveau montage, il
est plus que conseillé d’envoyer un
programme d’initialisation, du modèle de
celui-ci:

Dr. Mohamed OULD ELHASSEN 146


Pratique

Câblage d’un premier circuit et test


d’exécution d’un premier programme
« feux de circulation »
Etapes à suivre

1. Réinitialiser la carte avec un code vide


2. Câbler le circuit
3. Saisir le code
4. Compiler le programme
5. Charger le programme
6. Tester le circuit

Dr. Mohamed OULD ELHASSEN 148


Broches d’une carte Arduino UNO

• Exploration des broches Arduino


– 0 à 13 Entrées/sorties numériques
– A0 à A5 Entrées/sorties analogiques
– GND Terre ou masse (0V)
– 5V Alimentation +5V
– 3.3V Alimentation +3.3V
– Vin Alimentation non stabilisée (= le même voltage que
celui à l’entrée de la carte)

Dr. Mohamed OULD ELHASSEN 149


Spécification

• Réalisation d’un feux de circulation :

Dr. Mohamed OULD ELHASSEN 150


Montage proposé

• Circuit électronique

Dr. Mohamed OULD ELHASSEN 151


Montage proposé

• Liste des composants


– 2 LEDs rouges
– 2 LEDs jaunes ou oranges
– 2 LEDs vertes
– 6 résistances de 220 à 470Ω
• Afin de faciliter l'identification de chaque LED, nous
allons renommer les broches comme suit:
• Feu 1:
– LED rouge connectée sur la broche 4 et renommée R1
– LED jaune connectée sur la broche 5 et renommée J1
– LED verte connectée sur la broche 6 et renommée V1

Dr. Mohamed OULD ELHASSEN 152


Montage proposé

• Feu 2:
– LED rouge connectée sur la broche 8 et renommée R2
– LED jaune connectée sur la broche 9 et renommée J2
– LED verte connectée sur la broche 10 et renommée V2

• Enfin, nous utiliserons deux variables timer1


et timer2 pour définir les temps d'allumages.

Dr. Mohamed OULD ELHASSEN 153


Code proposé
• // On définit les variables pour chaque broche :
• //FEU 1
const int R1 = 4; //La broche 4 devient le feu rouge 1
const int J1 = 5; //La broche 3 devient le feu jaune 1
const int V1 = 6; //La broche 2 devient le feu vert 1
• //FEU2
const int R2 = 8; //La broche 8 devient le feu rouge 2
const int J2 = 9; //La broche 9 devient le feu jaune 2
const int V2 = 10; //La broche 10 devient le feu vert 2
• //TEMPS
int timer1 = 2000; //Le temps est fixé à 2 secondes
int timer2 = 6000; //Le temps est fixé à 6 secondes

Dr. Mohamed OULD ELHASSEN 154


Code proposé

void setup() {
//On initialise les sorties
pinMode(R1, OUTPUT);
pinMode(J1, OUTPUT);
pinMode(V1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(J2, OUTPUT);
pinMode(V2, OUTPUT);
}

Dr. Mohamed OULD ELHASSEN 155


Code proposé
void loop() {
//Phase 1: R1 et V2 sont allumés, R2, J1 et J2 sont éteints
digitalWrite(R2, LOW); //R2 éteint
digitalWrite(J1, LOW); //J1 éteint
digitalWrite(J2, LOW); //J2 éteint
digitalWrite(R1, HIGH); //R1 allumé
digitalWrite(V2, HIGH); //V2 allumé
delay(timer2); //durée: 6'000 millisecondes, soit 6 secondes

//Phase 2: R1, J1, J2 allumés et V2 éteint


digitalWrite(V2, LOW); //V2 éteint
digitalWrite(J1, HIGH); //J1 allumé
digitalWrite(J2, HIGH); //J2 allumé
delay(timer1); //durée: 2'000 millisecondes, soit 2 secondes

Dr. Mohamed OULD ELHASSEN 156


Code proposé
//Phase 3: R1, J1, J2 éteints et V1 et R2 allumés
digitalWrite(R1, LOW); //R1 éteint
digitalWrite(J1, LOW); //J1 éteint
digitalWrite(J2, LOW); //J2 éteint
digitalWrite(V1, HIGH); //V1 allumé
digitalWrite(R2, HIGH); //R2 allumé
delay(timer2);

//Phase 4: V1 éteint et J1, J2 et R2 allumés


digitalWrite(V1, LOW); //V1 éteint
digitalWrite(J1, HIGH); //J1 allumé
digitalWrite(J2, HIGH); //J2 allumé
digitalWrite(R2, HIGH); //R2 allumé
delay(timer1);

Dr. Mohamed OULD ELHASSEN 157


Bonne fin de la journée

Dr. Mohamed OULD ELHASSEN 158

Vous aimerez peut-être aussi