0% ont trouvé ce document utile (0 vote)
16 vues44 pages

C Iii

Ce chapitre présente l'environnement Arduino et les composants électroniques utilisés pour un projet, en détaillant les caractéristiques des cartes Arduino et le logiciel Arduino IDE. Il aborde l'historique du projet Arduino, son accessibilité pour les débutants, ainsi que les bases de la programmation avec des exemples de syntaxe et de structures de contrôle. Enfin, il décrit les fonctions essentielles pour interagir avec les broches numériques et analogiques des cartes Arduino.

Transféré par

IKAMA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues44 pages

C Iii

Ce chapitre présente l'environnement Arduino et les composants électroniques utilisés pour un projet, en détaillant les caractéristiques des cartes Arduino et le logiciel Arduino IDE. Il aborde l'historique du projet Arduino, son accessibilité pour les débutants, ainsi que les bases de la programmation avec des exemples de syntaxe et de structures de contrôle. Enfin, il décrit les fonctions essentielles pour interagir avec les broches numériques et analogiques des cartes Arduino.

Transféré par

IKAMA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 44

Chapitre III

Environnement Arduino et les


composants utilisés
CHAPITRE III Environnement Arduino et les composants
utilisés

III.1. Introduction
Ce chapitre présente l’environnement Arduino et les différents composants électroniques
que nous allons utiliser pour réaliser ce projet. Nous allons présenter chaque composant, donner
la signification de ses broches et ses caractéristiques techniques.

III.2. Arduino
III.2.1. Présentation

Arduino est une plate-forme électronique open source basée sur du matériel et des
logiciels faciles à utiliser. Les cartes Arduino sont capables de lire les entrées - la lumière sur
un capteur, un doigt sur un bouton ou un message Twitter - et de les transformer en une sortie -
en activant un moteur, en allumant une LED, en publiant quelque chose en ligne. Vous pouvez
dire à votre carte quoi faire en envoyant un ensemble d'instructions au microcontrôleur sur la
carte. Pour ce faire, vous utilisez le langage de programmation Arduino (basé sur Wiring ) et le
logiciel Arduino (IDE) , basé sur Processing. [9]

III.2.2. Historique du projet Arduino [10]

Le projet Arduino est issu d'une équipe d'enseignants et d'étudiants de l'école de Design
d'Interaction d'Ivrea (Italie). Ils rencontraient un problème majeur à cette période (avant 2003 -
2004) : les outils nécessaires à la création de projets d'interactivité étaient complexes et onéreux
(entre 80 et 100 euros). Ces coûts souvent trop élevés rendaient difficiles le développement par
les étudiants de nombreux projets et ceci ralentissait la mise en œuvre concrète de leur
apprentissage.

Jusqu'alors, les outils de prototypage étaient principalement dédiés à l'ingénierie, la


robotique et aux domaines techniques. Ils sont puissants mais leurs processus de développement
sont longs et ils sont difficiles à apprendre et à utiliser pour les artistes, les designers
d'interactions et, plus généralement, pour les débutants.

Leur préoccupation se concentra alors sur la réalisation d'un matériel moins cher et plus
facile à utiliser. Ils souhaitaient créer un environnement proche de Processing, ce langage de

37
CHAPITRE III Environnement Arduino et les composants
utilisés

programmation développé dès 2001 par Casey Reas et Ben Fry, deux anciens étudiants de John
Maeda au M.I.T., lui-même initiateur du projet DBN.

En 2003, Hernando Barragan, pour sa thèse de fin d'études, avait entrepris le développement
d'une carte électronique dénommée Wiring, accompagnée d'un environnement de programmation
libre et ouvert. Pour ce travail, Hernando Barragan réutilisait les sources du projet Processing.
Basée sur un langage de programmation facile d'accès et adaptée aux développements de projets
de designers, la carte Wiring a donc inspiré le projet Arduino (2005).

Comme pour Wiring, l'objectif était d'arriver à un dispositif simple à utiliser, dont les coûts
seraient peu élevés, les codes et les plans « libres » (c'est-à-dire dont les sources sont ouvertes et
peuvent être modifiées, améliorées, distribuées par les utilisateurs eux-mêmes) et, enfin, « multi-
plates-formes » (indépendant du système d'exploitation utilisé).

Conçu par une équipe de professeurs et d’étudiants (David Mellis, Tom Igoe, Gianluca
Martino, David Cuartielles, Massimo Banzi ainsi que Nicholas Zambetti), l'environnement
Arduino est particulièrement adapté à la production artistique ainsi qu'au développement de
conceptions qui peuvent trouver leurs réalisations dans la production industrielle.

Le nom Arduino trouve son origine dans le nom du bar dans lequel l’équipe avait l'habitude
de se retrouver. Arduino est aussi le nom d'un roi italien, personnage historique de la ville
« Arduin d’Ivrée », ou encore un prénom italien masculin qui signifie « l'ami fort ».

38
CHAPITRE III Environnement Arduino et les composants
utilisés

III.2.3. Les différentes cartes Arduino

Figure III. 1 : les différentes cartes Arduino

III.2.4. Le logiciel Arduino IDE [11]

C’est le logiciel utilisé pour programmer les cartes Arduino.

III.2.4.1. L’interface du logiciel

L’interface du logiciel Arduino se présente de la façon suivante :

39
CHAPITRE III Environnement Arduino et les composants
utilisés

Figure III. 2 : l’interface de l’IDE Arduino en détail

 Le cadre numéro 1 : ce sont les options de configuration du logiciel


 Le cadre numéro 2 : il contient les boutons qui vont servir lors de la programmation des
cartes
 Le cadre numéro 3 : ce bloc va contenir le programme à créer
 Le cadre numéro 4 : c’est le débogueur, il affiche les erreurs que contiennent le
programme.

40
CHAPITRE III Environnement Arduino et les composants
utilisés

III.2.4.2. Approche et utilisation du logiciel


III.2.4.2.1. Le menu Fichier

C’est principalement ce menu qui est le plus utilisé lorsqu’on programme une carte Arduino.
Il dispose d’un certain nombre de choses très utiles.

Figure III. 3 : le menu fichier de l’IDE Arduino

 Nouveau : permet de créer un nouveau fichier


 Ouvrir : permet d’ouvrir un fichier existant
 Carnet de croquis : ce menu regroupe tous les fichiers enregistrés dans le dossier par
défaut du logiciel
 Exemples : toute une liste se déroule pour afficher les noms d’exemples de programmes
existants

41
CHAPITRE III Environnement Arduino et les composants
utilisés

 Fermer : permet de fermer un fichier ouvert


 Enregistrer : permet d’enregistrer le fichier en cours
 Enregistrer sous : demande où enregistrer le fichier en cours
 Téléverser : permet d’envoyer le programme sur la carte Arduino
 Téléverser avec un programmateur : même chose que ci-dessus, mais avec l’utilisation
d’un programmateur
 Mise en page : permet de faire la mise en page de l’interface de programmation
 Imprimer : permet d’enregistrer le fichier en format PDF
 Préférence : permet de régler quelques paramètres du logiciel
 Quitter : permet de fermer tous les fichiers ouverts.

III.2.4.2.2. Les boutons

Figure III. 4 : la barre d’outils de l’IDE Arduino

 Bouton 1 : ce bouton permet de vérifier le programme, il actionne un module qui cherche


les erreurs dans le programme
 Bouton 2 : charge (téléverse) le programme dans la carte Arduino
 Bouton 3 : crée un nouveau fichier
 Bouton 4 : ouvre un fichier
 Bouton 5 : enregistre le fichier
 Bouton 6 : ouvre le moniteur série.

42
CHAPITRE III Environnement Arduino et les composants
utilisés

III.2.5. Programmation des cartes Arduino


III.2.5.1. Langage de programmation

Un langage de programmation est un langage permettant à un être humain d’écrire un


ensemble d’instructions (code source) qui seront directement converties en langage machine
grâce à un compilateur (c’est la compilation). L’exécution d’un programme Arduino s’effectue
de manière séquentielle, c’est-à-dire que les instructions sont exécutées les unes à la suite des
autres. [12]

III.2.5.2. Structure d’un programme Arduino [12]

Un programme ou sketch Arduino comporte trois parties :

Figure III. 5 : structure d’un programme Arduino

1. La partie déclaration des variables

43
CHAPITRE III Environnement Arduino et les composants
utilisés

2. La partie initialisation et configuration des entrées/sorties : la fonction setup


3. La partie principale qui s’exécute en boucle : la fonction loup

III.2.5.3. Coloration syntaxique [12]

Lorsqu’un code est écrit dans l'interface de programmation, certains mots apparaissent en
différentes couleurs qui clarifient le statut des différents éléments.

En orange, apparaissent les mots-clés reconnus par le langage Arduino comme


des fonctions existantes. Lorsqu'on sélectionne un mot coloré en orange et qu'on effectue un clic
avec le bouton droit de la souris, l'on a la possibilité de choisir « Find in reference » : cette
commande ouvre directement la documentation de la fonction sélectionnée.

En bleu, apparaissent les mots-clés reconnus par le langage Arduino comme des constantes.

En gris, apparaissent les commentaires qui ne seront pas exécutés dans le programme. Il est
utile de bien commenter son code pour s'y retrouver facilement ou pour le transmettre à d'autres
personnes. L'on peut déclarer un commentaire de deux manières différentes :

 Dans une ligne de code, tout ce qui se trouve après « // » sera un commentaire ;
 L’on peut encadrer des commentaires sur plusieurs lignes entre « /* » et « */ ».

III.2.5.4. La syntaxe du langage Arduino


III.2.5.4.1. La ponctuation [12]

Le code est structuré par une ponctuation stricte :

 Toute ligne de code se termine par un point-virgule « ; » ;


 Le contenu d'une fonction est délimité par des accolades « { » et « } » ;
 Les paramètres d'une fonction sont contenus pas des parenthèses « ( » et « ) ».

III.2.5.4.2. Les variables [12]

Une variable est un espace réservé dans la mémoire vive (RAM) du microcontrôleur. Elle
est caractérisée par un nom qui permet d'y accéder facilement.

Il existe différents types de variables identifiés par un mot-clé dont les principaux sont :

44
CHAPITRE III Environnement Arduino et les composants
utilisés

 Nombres entiers (int) ;


 Nombres à virgule flottante (float) ;
 Texte (String) ;
 Valeurs logiques (boolean).

Dans un sketch Arduino, il est nécessaire de déclarer les variables pour leur réserver un
espace mémoire adéquat. On déclare une variable en spécifiant son type, son nom, puis en lui
assignant une valeur initiale (optionnel).

Exemple :

Figure III. 6 : déclaration d’une variable avec le langage Arduino

III.2.5.4.3. Les structures de contrôle [13]

Les structures de contrôle sont des blocs d'instructions qui s'exécutent en fonction du respect
d'un certain nombre de conditions.

 if

Sa syntaxe est la suivante :

Si plusieurs instructions doivent être exécutées, elles doivent être réunies dans un bloc
encadré par une paire d’accolades.

45
CHAPITRE III Environnement Arduino et les composants
utilisés

Si la condition formulée est évaluée comme vraie, alors l’instruction ou les instructions
suivantes sont exécutées.

 if-else

L’instruction if-else est une extension de l’instruction if. Si la condition formulée est
évaluée comme fausse, alors l’option est choisie.

 switch-case

La structure switch-case sert principalement quand une variable entière est susceptible de
prendre un certain nombre de valeurs connues a priori. Une instruction if pourrait suffire mais la
variante switch-case est considérée ici comme plus élégante.

Les nombres suivis d’un deux-points sont comparés à la valeur de la variante et, lorsqu’il y
a égalité, les instructions qui suivent sont exécutées. L’instruction break entraîne une
interruption dans l’exécution de la structure et donc la sortie de cette structure. La ligne default

46
CHAPITRE III Environnement Arduino et les composants
utilisés

est optionnelle et finit par être atteinte quand aucune des lignes précédentes n’est vérifiée. Elle
est en tout point comparable à l’alternative else dans une construction if-else.

III.2.5.4.4. Les boucles [13]

Les boucles servent en programmation à exécuter en permanence certaines instructions. La


fonction loop en est un exemple. Il est évidemment possible de programmer ses propres boucles.

 for

La boucle for est toujours utilisée quand on sait, au moment d’entrer dans la boucle,
combien de fois elle doit s’exécuter.

Les points indiqués dans l’en-tête de la boucle ont la signification suivante :

 Initialisation : définition de la valeur initiale pour la variable de contrôle de la


boucle ;
 Condition : nombre d’itérations (nombre de répétitions) ;
 Incrémentation : adaptation des variables indiqués dans l’initialisation.

 while

Contrairement à la boucle for, seule une condition est formulée dans l’en-tête de la boucle
while. Cela implique, par exemple, que la valeur de la variante figurant dans la condition doit
être modifiée dans le corps de la boucle, faute de quoi vous aurez une boucle sans fin.

Ce type de boucle est utilisé principalement quand on ne sait pas exactement au début de la
boucle combien de fois elle doit s’exécuter.

 Break

47
CHAPITRE III Environnement Arduino et les composants
utilisés

Les boucles for et while, qui s’exécutent tant que la condition formulée le permet, disposent
également de ce qu’on peut appeler une « issue de secours ». L’instruction permet en effet de
quitter prématurément une boucle, le sketch reprenant alors aussitôt après celle-ci.

III.2.5.4.5. Les constantes [13]

Les constantes sont des expressions prédéfinies dans le langage Arduino. Elles sont utilisées
pour rendre les programmes plus faciles à lire. On distingue :

 INPUT

Cette constante est utilisée pour programmer les broches numériques quand il s’agit
d’établir le sens de circulation des données. Si une broche numérique doit servir d’entrée, cette
constante est transmise comme deuxième argument à l’instruction pinMode. La ligne de code
suivante configure la broche 13 comme entrée :

 OUTPUT

La constante OUTPUT sert également pour programmer les broches numériques quand il
s’agit de définir une broche numérique comme sortie. La ligne suivante de code configure la
broche 13 comme sortie :

 HIGH

La constante HIGH est utilisée pour mettre une sortie numérique au niveau HIGH. La ligne
d’instruction suivante met la broche 8 au niveau HIGH :

48
CHAPITRE III Environnement Arduino et les composants
utilisés

 LOW

Cette constante est employée pour mettre une sortie numérique au niveau LOW. La ligne
d’instruction suivante met la broche 8 au niveau LOW :

 true

La constante true sert par exemple dans des conditions gouvernant des structures de
contrôle :

Si la variable booléenne a prend la valeur true, l’instruction qui suit l’instruction if est
exécutée.

 false
Cette constante est également utilisée dans des conditions gouvernant des structures de
contrôle :

Si la variable booléenne a prend la valeur false, l’instruction qui suit l’instruction if est
exécutée.

III.2.5.4.6. Les fonctions [13]


A. Fonctions concernant les broches numériques
 PinMode

Avec l’instruction PinMode, on peut programmer une broche numérique pour qu’elle serve
soit d’entrée soit de sortie.

 digitalWrite

L’instruction digitalWrite permet d’une part d’influer sur le niveau de sortie d’une broche
numérique programmée comme sortie avec OUTPUT. Les constantes HIGH et LOW sont

49
CHAPITRE III Environnement Arduino et les composants
utilisés

utilisées. Elle active d’autre part la résistance pull-up interne sur une broche numérique
programmée comme entrée avec INPUT.

 digitalRead

L’instruction digitalRead permet de connaître l’état (HIGH ou LOW) d’une broche


numérique. La ligne suivante lit la valeur de la broche appelée inputPin et sauvegarde le résultat
dans la variable digValue :

B. Fonctions concernant les broches analogiques


 analogRead

L’instruction analogRead permet d’interroger une entrée analogique, une valeur comprise
entre 0 et 1023 est alors délivrée en retour. Ce domaine de valeurs est basé sur la résolution de 10
bits du convertisseur analogique/numérique.

La ligne suivante lit la valeur analogique de la broche appelée inputPin et la sauvegarde


dans la variable anValue :

 analogWrite

L’instruction analogWrite permet d’agir sur une sortie numérique en utilisant la MLI
(modulation de largeur d’impulsions).

C. Fonctions concernant la durée

Certaines fonctions comportent un composant temporel.

 delay

50
CHAPITRE III Environnement Arduino et les composants
utilisés

L’instruction delay sert à interrompre du sketch pendant le temps indiqué, la valeur


transmise étant interprétée comme des millisecondes. La ligne suivante provoque une attente de
trois secondes :

 delayMicroseconds

Si l’instruction delay est trop imprécise du fait que la valeur est interprétée comme une
indication en millisecondes, l’instruction delayMicroseconds peut être utilisée. L’exécution du
sketch est alors interrompue pendant le temps indiqué, la valeur étant interprété comme des
microsecondes. La ligne suivante provoque une attente de cent microsecondes :

 millis

L’instruction millis renvoie une valeur indiquant, en millisecondes, le temps écoulé depuis
le début du sketch.

D. Directives de prétraitement

Les directives de prétraitement obligent le compilateur à se comporter d’une manière


particulière.

 #include

La directive include ordonne au compilateur d’intégrer la bibliothèque indiquée dans le


sketch en cours. S’agissant d’une directive, la ligne ne se termine pas par un point-virgule.

Exemple :

 #define

51
CHAPITRE III Environnement Arduino et les composants
utilisés

La directive define permet de donner un nom à des constantes. Le compilateur remplace le


nom par la définition indiquée partout dans le sketch lors de la compilation. S’agissant d’une
directive, la ligne ne se termine pas par un point-virgule.

Exemple :

III.3. Présentation des composants


III.3.1. Arduino Mega 2560
III.3.1.1. Présentation de la carte

La carte Arduino Mega 2560 est une carte basée sur le microcontrôleur ATmega2560.

Figure III. 7 : la carte Arduino Mega 2560

Cette carte dispose de : [14]

52
CHAPITRE III Environnement Arduino et les composants
utilisés

 54 broches d’entrées/sorties numériques (dont 15 peuvent être utilisées en sorties


PWM)
 16 entrées analogiques (qui peuvent être utilisées en broches entrées/sorties
numériques)
 4 UART (ports série matériels)
 Un quartz de 16Mhz
 Une connexion USB
 Un connecteur d’alimentation jack
 Un connecteur ICSP
 Un bouton de réinitialisation (reset).

III.3.1.2. Spécifications
Microcontrôleur ATmega 2560
Fréquence d’horloge 16 MHz
Tension de service 5V
Tension d’entrée (recommandée) 7-12 V
Tension d’entrée (limites) 6-20 V
Ports numériques 54 entrées et sorties (15 sorties commutable en MLI)
Ports analogiques 16 entrées analogiques
Courant maxi par broche d’E/S (c.c) 40 mA
Courant maxi par broche 3,3 V 50 mA
Mémoire 8 Ko (en mémoire Flash)
Chargeur d’amorçage 256 Ko Flash, 8 Ko SRAM, 4 Ko EEPROM
Interface USB
Dimensions 10,16 cm x 5,3 cm

53
CHAPITRE III Environnement Arduino et les composants
utilisés

Tableau III. 1 : les spécifications de la carte Arduino Mega 2560 [13]

III.3.1.3. Les éléments de la carte

Figure III. 8 : les éléments de la carte Arduino Mega 2560

54
CHAPITRE III Environnement Arduino et les composants
utilisés

 Microcontrôleur (13)

Un microcontrôleur est un circuit intégré qui rassemble sur une puce plusieurs éléments
complexes dans un espace réduit. C’est le cerveau de la carte ; il s’occupe de tout ce qui est
calcul, exécution des instructions du programme et gestion des ports d’entrée/sortie. [14]

Figure III. 9 : microcontrôleur ATmega2560

 Les sources d’alimentation de la carte [14]

La carte Arduino MEGA 2560 peut être alimentée soit via le port USB (1) ou à l’aide d’une
alimentation externe via le port jack (4). La source d’alimentation est sélectionnée
automatiquement par la carte. La carte peut fonctionner avec une alimentation externe 6 à 20V.
Cependant, si la carte est alimentée avec moins de 7V, la broche 5V pourrait fournir moins de
5V, et la carte pourrait être instable. Si on utilise plus de 12V, le régulateur de tension de la carte
pourrait chauffer ce dernier. Les broches d’alimentation sont les suivantes :

 VIN (9) : la tension d’entrée positive lorsque la carte Arduino est utilisée avec une
source de tension externe.
 5V (7) : la tension régulée utilisée pour faire fonctionner le microcontrôleur et les
autres composants de la carte. Le 5V régulé fourni par cette broche peut donc
provenir soit de la tension d’alimentation VIN via le régulateur de la carte, ou bien
de la connexion USB ou de tout autre source d’alimentation régulée.
 3,3V (6) : une alimentation de 3,3V fournie par le circuit intégré FTDI (circuit
intégré faisant l’adaptation du signal entre le port USB de l’ordinateur et le port série

55
CHAPITRE III Environnement Arduino et les composants
utilisés

de l’ATMega) de la carte. L’intensité maximale disponible sur cette broche est de


50mA
 GND (8) : broche de masse (0V).
 Oscillateur à quartz (2)

Son rôle est de cadencer le microcontrôleur à une fréquence précise de 16MHz. Ainsi il
permet à la carte Arduino Mega 2560 de calculer les données de temps.

 Régulateur de tension (3)

Ce régulateur de tension permet de contrôler et maintenir stable la tension d’alimentation du


microcontrôleur et des autres composants de la carte.

 Entrées et sorties numérique (13) [14]

Chacune des 54 broches numériques de la carte Arduino MEGA 2560 peut être utilisée soit
comme une entrée numérique, soit comme une sortie numérique. Ces broches fonctionnent en
5V. Chaque broche peut fournir ou recevoir un maximum de 40mA d’intensité et possède une
résistance pull-up interne (déconnectée par défaut) de 20-50KΩ. Cette résistance interne s’active
sur une broche en entrée à l’aide de l’instruction digitalWrite(broche, HIGH).

De plus, certaines broches ont des fonctions spécialisées :

 Communication Série :
 Port Série Serial : 0 (RX) et 1 (TX) ;
 Port Série Serial1 : 19 (RX) et 18 (TX) ;
 Port Série Serial2 : 17 (RX) et 16 (TX) ;
 Port Série Serial3 : 15 (RX) et 14 (TX) ;
 Interruptions Externes : broche 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19
(interrupt 4), 20 (interrupt 3), et 21 (interrupt 2). Ces broches peuvent être configurées
pour déclencher une interruption sur une valeur basse, sur un front montant ou
descendant, ou sur un changement de valeur.
 Impulsion PWM (Modulation de largeur d’impulsion) : les Broches de 2 à 13 et 44 à 46
fournissent une sortie PWM 8 bits à l’aide de la fonction analogWrite ().

56
CHAPITRE III Environnement Arduino et les composants
utilisés

 SPI (Interface Série Périphérique) : broches 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).


Ces broches supportent la communication SPI.
 I2C : les broches 20 (SDA) et 21 (SCL) supportent les communications du protocole I2C.
 LED : 13. Il y a une LED intégrée connectée à la broche numérique 13.
 Broches analogiques (10) [14]

La carte Arduino MEGA 2560 dispose de 16 entrées analogiques, chacune pouvant fournir
une mesure d’une résolution de 10 bits (1024 niveaux soit de 0 à 1023) à l’aide de la fonction
analogRead () du langage Arduino. Par défaut, ces broches mesurent entre 0V (valeur 0) et le 5V
(valeur 1023). Les broches analogiques peuvent être utilisées en tant que broches numériques.

 Autres broches [14]

Il y a deux autres broches disponibles sur la carte :

 AREF (14) : tension de référence pour les entrées analogiques. Utilisé avec
analogReference().
 Reset (5) : mettre cette broche au niveau BAS entraîne la réinitialisation du
microcontrôleur.
 Bouton reset (12)

Ce bouton permet également de réinitialiser le microcontrôleur.

III.3.2. Capteur à ultrason HC-SR04


III.3.2.1. Description

Le capteur HC-SR04 utilise les ultrasons pour déterminer la distance d'un objet. Il offre une
excellente plage de détection sans contact, avec des mesures de haute précision et stables. Son
fonctionnement n'est pas influencé par la lumière du soleil ou des matériaux sombres, bien que
des matériaux comme les vêtements puissent être difficiles à détecter. [15]

57

Figure III. 10 : capteur à ultrason HC-SR04


CHAPITRE III Environnement Arduino et les composants
utilisés

58
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.2.2. Configuration des broches

Ce capteur comprend quatre broches et la configuration des broches de celui-ci est décrite
dans ce tableau.

Boche Description

Vcc Broche d’alimentation du capteur

Il s’agit d’une broche d’entrée, utilisée pour initialiser la mesure en transmettant des
Trig
ondes ultrasonores en gardant cette broche haute pendant 10µs
Il s’agit d’une broche de sortie, qui passe au niveau haut pendant une période de
Echo
temps spécifique et qui équivaut à la durée pendant laquelle l’onde revient au capteur

Gnd Broche de masse

Tableau III. 2 : configurations des broches du capteur à ultrason HC-SR04 [15]

III.3.2.3. Caractéristiques techniques [15]

 Tension d’alimentation : 5 V à ± 0.5 V


 Courant de repos : 2 mA à ± 0.5 mA
 Courant de fonctionnement : 15 mA à ± 5 mA
 Fréquence de travail : 40 kHz
 Plage de mesure : 2 cm à 400 cm
 Résolution de la mesure : 0.3 cm
 Angle de mesure efficace : 15 °
 Largeur d'impulsion sur l'entrée de déclenchement : 10 µs
 Précision : 3 mm
 Dimensions : 45 mm x 20 mm x 15 mm

59
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.2.4. Principe de fonctionnement [16]

Figure III. 11 : diagramme temporel du capteur à ultrason

Le principe de fonctionnement du capteur est entièrement basé sur la vitesse du son dans
l’air.

La prise de mesure se déroule de la manière suivante :

 On envoie une impulsion HIGH de 10µs sur la broche TRIGGER du capteur.


 Le capteur émet alors une série de 8 impulsions ultrasoniques à 40KHz (inaudible
pour l’être humain).
 Les ultrasons se propagent dans l’air jusqu’à toucher un obstacle et retournent dans
l’autre sens vers le capteur.
 Le capteur détecte l’écho et clôture la prise de mesure.

60
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.2.5. Calcul de la distance [17]

La vitesse du son dans l’air est d’environ 340 m / s ou 0,034 cm / µs. Si nous multiplions la
vitesse du son par le temps que les ondes sonores ont parcouru, on obtient la distance parcourue
par les ondes sonores.

Distance (cm) = Vitesse du son (cm/µs) x Temps (µs)

La distance entre le capteur et l’objet n’est en réalité que la moitié de cette distance car les
ondes sonores se sont déplacées du capteur vers l’objet et de l’objet vers le capteur. Nous devons
donc diviser le résultat par deux.

Distance (cm) = Vitesse du son (cm/µs) x Temps (µs) / 2 = 0,034 x Temps (µs) / 2

III.3.3. Servomoteur
III.3.3.1. Définition

Un servomoteur est un système motorisé capable d’atteindre des positions prédéterminées,


puis de les maintenir. [18]

III.3.3.2. Constitution

Figure III. 12 : servomoteur [19]

61
CHAPITRE III Environnement Arduino et les composants
utilisés

Les principaux constituants sont :

 Un moteur électrique à courant continu (MCC) ;


 Un réducteur ;
 Un potentiomètre ;
 Une carte électronique ;
 Un palonnier.

III.3.3.3. Principe de fonctionnement [20]

La partie électrique d’un servomoteur ne dispose que de 3 fils codés par couleur, qui
permettent d’alimenter le moteur et de lui transmettre des ordres de positions sous forme d’un
signal codé en largeur d’impulsion plus communément appelés PWM ou RCO. Cela signifie que
c’est la durée des impulsions qui détermine l’angle absolu de l’axe de sortie et donc la position
du bras de commande du servomoteur. Le signal est répété périodiquement, en général toutes les
20 millisecondes, ce qui permet à la carte électronique de contrôler et de corriger
continuellement la position angulaire de l’axe de sortie, cette dernière étant mesurée par le
potentiomètre.

Lorsque le moteur tourne, l’axe du servomoteur change de position, ce qui modifie la


résistance du potentiomètre. Le rôle de la carte électronique est de commander le moteur pour
que la position de l’axe de sortie soit conforme à la consigne reçue : c’est un asservissement.

III.3.3.4. Couple [20]

Le couple d’un servomoteur a pour unité le kg.cm (kilogramme-centimètre). La formule du


couple est la suivante :

C=Fxr

 C : le couple du servomoteur (en kilogramme-centimètre)


 F : la force exercée sur le bras du servomoteur (en kilogramme)

62
CHAPITRE III Environnement Arduino et les composants
utilisés

 r : la distance à laquelle s’exerce cette force par rapport à l’axe de rotation du


servomoteur (en centimètre)

La formule permettant de définir le poids maximum à une distance donnée est :

Pmax = C/d

 Pmax : poids de la charge (en kg)


 C : couple du servomoteur (kg.cm)
 d : distance à laquelle le poids se trouve (cm)

III.3.3.5. Servomoteur MG996R


III.3.3.5.1. Description

Le MG996R est un servomoteur à engrenages métalliques avec un couple de décrochage


maximal de 11 kg/cm. Il tourne de 0 à 180 degrés en fonction du rapport cyclique de l'onde
PWM fournie à sa broche de signal. [21]

63
CHAPITRE III Environnement Arduino et les composants
utilisés

Figure III. 13 : servomoteur MG996R

III.3.3.5.2. Configuration des broches

Broche Description

VCC (fil rouge) Alimentation du servomoteur

GND (fil marron) Masse

Signal (fil jaune) Commande de la position du servomoteur

Tableau III. 3 : configurations des broches du servomoteur MG996R

III.3.3.5.3. Caractéristiques techniques [22]


 Modèle : MG996R
 Poids : 55 g
 Dimensions : 40mm x 19mm x 43 mm

64
CHAPITRE III Environnement Arduino et les composants
utilisés

 Vitesse de fonctionnement : 0.17 sec / 60 degrés à 4.8 V (sans charge)


 Vitesse de fonctionnement : 0.14 sec / 60 degrés à 6 V (sans charge)
 Couple de décrochage : 9.4 kg.cm à 4.8 V
 Couple de décrochage : 11 kg.cm à 6 V
 Tension de fonctionnement : 4.8 – 7.2 V
 Courant de décrochage : 2.5 A
 Température d’utilisation : de 0 °C à +55 °C
 Type d’engrenage : tous les engrenages en métal

III.3.4. Module GSM SIM800L EVB


III.3.4.1. Description [23]

Le SIM800L EVB est un module GSM/GPRS capable d'envoyer et recevoir des SMS, de
passer et recevoir des appels, de transférer des données via l'unité GPRS. Ce module SIM800L
dispose d'un ensemble d'interface série de niveau TTL, d'un ensemble d'interface d'alimentation,
ainsi que d'un ensemble d'antennes à utiliser lors de l'interfaçage sur ce module.

Figure III. 14 : module GSM SIM800L EVB

III.3.4.2. Configuration des broches


Broche Description
5V Broche d’alimentation du module

65
CHAPITRE III Environnement Arduino et les composants
utilisés

GND Broche de masse


VDD Interface série TTL UART
SIM_TXD Broche du transmetteur pour la communication série
SIM_RXD Broche du récepteur pour la communication série
RST Broche de réinitialisation du module

Tableau III. 4 : configuration des broches du module GSM SIM800L EVB [24]

III.3.4.3. Caractéristiques techniques [23]

 Tension de fonctionnement : 4.6 - 5.2 V


 Courant de fonctionnement : 1 - 2.5 A
 Quadri-bande 850/900/1800/1900 MHz
 Interface de communication : interface série de niveau TTL compatible MCU
2.85/3.3/5V
 Température de fonctionnement : -40 à 85 °C
 Carte Sim : micro
 Taille : 27 mm x 39 mm

III.3.5. Module GPS NEO-6M


III.3.5.1. Description

Le module GPS NEO-6M est un récepteur GPS qui peut localiser tous les emplacements sur
terre car il est capable de suivre environ 22 satellites. Ce module (voir page suivante) nous
fournit les coordonnées GPS (latitude, longitude, altitude), la date et l’heure en temps réel. [25]

66
CHAPITRE III Environnement Arduino et les composants
utilisés

Figure III. 15 : module GPS NEO-6M

III.3.5.2. Configuration des broches


Broche Description
VCC Broche d’alimentation du module
RX Broche du récepteur pour la communication série
TX Broche du transmetteur pour la communication série
GND Broche de masse

Tableau III. 5 : configuration des broches du module GPS NEO-6M

III.3.5.3. Caractéristiques techniques [26]

 Tension de fonctionnement : 3 – 5 V
 Courant de fonctionnement : 45 mA
 Température de fonctionnement : -40 à 85 °C
 Débit en bauds : 9600 (par défaut)
 Taille : 23 mm x 35 mm
 Taille de l’antenne : 25 mm x 25 mm

67
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.6. Module DFPlayer Mini MP3


III.3.6.1. Description [27]

Le DFPlayer Mini MP3 est un module qui peut être connecté directement à un haut-parleur
ou à un écouteur. Il peut être utilisé comme un module autonome avec batterie, haut-parleur et
bouton poussoir. Il peut être, également, utilisé en combinaison avec un microcontrôleur tel
qu'un Arduino (On pourra utiliser des commandes série pour lancer une musique, aller à la
suivante ou la précédente, augmenter le volume, le diminuer, etc.…).

Il s'utilise avec une carte micro SD de 32Gb maximum et permet de lire les fichiers mp3 ou
wave qui y sont stockés.

Figure III. 16 : Module DFPlayer Mini MP3

68
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.6.2. Configuration des broches [28]

Figure III. 17 : les broches du module DFPlayer Mini MP3

 Alimentation du module : VCC


 L’alimentation du module est comprise entre 3.2 et 5V.
 La tension idéale de fonctionnement donnée par le constructeur est de 4.2V.
 Entrée liaison série : RX

Le module peut être commandé par une liaison série RS232 à une vitesse de 9600 bauds.

 Sortie liaison série : TX

Le module peut renvoyer des informations lors de l’envoi d’une commande par la liaison
série.

 Sortie canal droit audio : DAC_R

Il s’agit de la sortie canal droit qui peut être reliée à l’entrée d’un amplificateur externe.

 Sortie canal gauche audio : DAC_L

Il s’agit de la sortie canal gauche qui peut être reliée à l’entrée d’un amplificateur externe.

 Sortie audio amplificateur intégré : SPK_1

C’est la sortie de l’amplificateur intégré qui peut être relié à la borne positive d’un haut-
parleur externe.

 Masse : GND

Masse de l’alimentation du module.

69
CHAPITRE III Environnement Arduino et les composants
utilisés

 Sortie audio amplificateur intégré : SPK_2

C’est la sortie de l’amplificateur intégré qui peut être relié à la borne négative d’un haut-
parleur externe.

 Commande par touche sur la sortie IO_1 :

Un bouton poussoir relié à cette broche permet de passer soit à la piste précédente du fichier
sélectionné ou de diminuer le niveau de volume délivré par l’amplificateur :

 Un appui court permet de passer à la piste précédente,


 Un appui long diminue le niveau de volume d’un niveau.
 Masse : GND
 Commande par touche sur la sortie IO_2 :

Un bouton poussoir relié à cette broche permet de passer soit à la piste suivante du fichier
sélectionné ou d’augmenter le niveau de volume délivré par l’amplificateur :

 Un appui court permet de passer à la piste suivante,


 Un appui long augmente le niveau de volume d’un niveau.
 Réseau de Touche port 1 : ADKEY_1

Sur cette broche, il est possible de brancher des touches qui permettent d’éviter d’utiliser la
liaison série.

 Ces touches sont branchées en parallèle sur l’entrée du module en utilisant pour chaque
touche une résistance d’une valeur précise qui permet au DFPlayer de déterminer quelle
est la commande sélectionnée lors de l’appui sur une touche,
 Le nombre de touches à brancher est limité à 10,
 Il est possible de connecter moins de touches, mais il est indispensable de respecter la
valeur de la résistance associée à la touche pour permettre au DFPlayer de déterminer
quelle est la commande sélectionnée.
 Réseau de Touche port 2 : ADKEY_2

Même chose que ADKEY_1

70
CHAPITRE III Environnement Arduino et les composants
utilisés

 Broche USB (+) :

On branche sur cette broche la borne positive d’une clé USB (32Go) pour augmenter la
capacité de stockage du module.

 Broche USB (-) :

On branche sur cette broche la borne négative d’une clé USB (32Go) pour augmenter la
capacité de stockage du module.

 Broche de disponibilité du module : BUSY

Le niveau électrique sur cette broche indique si le module est occupé :

 Le niveau est BAS lorsque le module joue un son,


 Le niveau est HAUT lorsque le module est libre.

III.3.6.3. Caractéristiques techniques [28]

Le module DFPlayer intègre un circuit de décodage audio, un amplificateur et un


emplacement pour la carte SD, qui ont les caractéristiques suivantes :

 Support des formats MP3 et WMA,


 Support des fichiers système en FAT 16 ou 32,
 Possibilité de commander le module :
 Par touches,
 Par une liaison série RS232,
 Possède un équaliseur avec 6 niveaux (Normal, Pop, Jazz, Classic, Bass),
 Amplificateur de 3 watts intégré (4 ou 8 ohms),
 Ajustement du volume par 30 niveaux différents,
 Enregistrement des fichiers audio sur carte SD et/ou clé USB (version 2.0) d’une
capacité de 32 Go chacune,
 Possibilité de déclencher des messages d’avertissement,
 Alimentation du module en 5 V ou 3.3 V, idéal 4.2 V.

71
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.7. Convertisseur DC-DC LM2596


III.3.7.1. Description

Ce module (voir page suivante) est un convertisseur abaisseur de tension, il permet de


convertir une tension continue en une tension continue réglable.

La tension de sortie est ajustable par potentiomètre multi-tours sur le module.

Figure III. 18 : convertisseur DC-DC LM2596

III.3.7.2. Configuration des broches


Broche Description
IN+ Pôle positif de la tension d’entrée
IN+ Pôle négatif de la tension d’entrée
OUT+ Pôle positif de la tension de sortie
OUT- Pôle négatif de la tension de sortie

Tableau III. 6 : configuration des broches du convertisseur DC-DC LM2596

III.3.7.3. Caractéristiques techniques [29]

 Type de régulateur : abaisseur


 Tension d’entrée : 4 – 40 V
 Tension de sortie : 1.25 – 35 V

72
CHAPITRE III Environnement Arduino et les composants
utilisés

 Courant de sortie : 2 A nominale, (3 A maximum avec dissipateur de chaleur)


 Fréquence de commutation : 150 kHz
 Température de fonctionnement : -40 à 85 °C
 Dimensions : 43 mm x 21 mm x 14 mm

III.3.8. Haut-parleur
III.3.8.1. Description

Un haut-parleur est transducteur électromécanique destiné à produire des sons à partir d’un
signal électrique. [30]

Figure III. 19 : Le haut-parleur

III.3.8.2. Configuration des broches


Broche Description
(+) Broche d’alimentation du haut-parleur
(-) Broche de masse

Tableau III. 7 : configuration des broches du haut-parleur

73
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.8.3. Caractéristiques techniques

Le haut-parleur utilisé pour la réalisation de ce projet possède les caractéristiques suivantes :

 Puissance : 3 W
 Impédance : 4 Ω

III.3.9. Afficheur LCD 16x2


III.3.9.1. Description

Un afficheur LCD est une interface visuelle entre un système (projet) et l’utilisateur. Son
rôle est de transmettre les informations utiles d’un système à un utilisateur. Il affichera donc des
données susceptibles d’être exploiter par l’utilisateur d’un système. [31]

Figure III. 20 : afficheur LCD 16x2

III.3.9.2. Configuration des broches


Broche Désignation Rôle
1 VSS Masse
2 VDD +5V
3 VO Réglage du contraste
4 RS Sélection du registre (commande ou donnée)
5 R/W Lecture ou écriture

74
CHAPITRE III Environnement Arduino et les composants
utilisés

6 E Entrée de validation
7 à 14 D0 à D7 Bits de données
16 A Anode du rétroéclairage (+5)
15 K Cathode du rétroéclairage (masse)

Tableau III. 8 : configuration des broches de l’afficheur LCD 16x2 [32]

III.3.9.3. Caractéristiques techniques [33]

 Type d’affichage : alphanumérique


 Technologie d’affichage : NST Positif
 Nombre de caractères (colonnes x lignes) : 16x 2
 Dimensions : 122 x 44 x 14.5 mm
 Dimensions de la fenêtre (H x L) : 24 x 99 mm
 Éclairage : LED
 Couleur de rétroéclairage : jaune
 Type de contrôleur : HD44780
 Largeur des caractères : 5.2 mm
 Hauteur des chiffres : 9.55 mm
 Nombre de broches : 16
 Tension d’alimentation : 4.5 à 5.5 V
 Température de fonctionnement : -20 à 70 °C
 Jeu de caractères pris en charge : Cyrillique, Anglais
 Référence : DEM 16215 SYH-LY-CYR22

75
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.10. Clavier matriciel 4x4


III.3.10.1. Description

Le clavier matriciel 4 × 4 est un périphérique d'entrée, il est généralement utilisé pour


fournir une valeur d'entrée dans un projet. Il dispose de 16 touches au total, ce qui signifie qu'il
peut fournir 16 valeurs d'entrée. [34]

Figure III. 21 : clavier matriciel 4x4

III.3.10.2. Configuration des broches

Broche Description

LIGNES

1 PIN1 est retiré de la 1ère ligne

2 PIN2 est retiré de la 2e ligne

3 PIN3 est retiré de la 3e ligne

4 PIN4 est retiré de la 4e ligne

COLONNES

76
CHAPITRE III Environnement Arduino et les composants
utilisés

5 PIN5 est retiré de la 1ère colonne

6 PIN6 est retiré de la 2e colonne

7 PIN7 est retiré de la 3e colonne

8 PIN8 est retiré de la 4e colonne

Tableau III. 9 : configuration des broches du clavier matriciel 4x4 [35]

III.3.10.3. Caractéristiques techniques [35]

 Tension maximale sur chaque bouton : 24 V


 Courant maximum à travers chaque bouton : 30 mA
 Température maximale de fonctionnement : 0 °C à 50 °C
 Dimensions :
Clavier : 69 x 76 mm
Cable : 20 x 88 mm
 Support adhésif

III.3.11. Diode électroluminescente


III.3.11.1. Définition

Une diode électroluminescente, plus connue sous l’appellation DEL ou LED (Light
Emitting Diode), est un dispositif optoélectronique capable d’émettre de la lumière lorsqu’il est
parcouru par un courant électrique. [36]

Figure III. 22 : diode électroluminescente

77
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.11.2. Les broches d’une LED

Figure III. 23 : les broches d’une LED

 Anode : pôle positif représenté par la patte la plus longue


 Cathode : pôle négatif représenté par la patte la plus courte

III.3.12. Les résistances


III.3.12.1. Définition

La résistance est un composant électronique dont la principale caractéristique est d’opposer


une plus ou moins grande résistance à la circulation du courant électrique.

Nous avons utilisé deux types de résistances dans ce projet : fixes et variables

III.3.12.2. Les résistances fixes

Leur utilité principale est d’augmenter la résistance à un endroit d’un circuit électrique.

Figure III. 24 : les résistances fixes

78
CHAPITRE III Environnement Arduino et les composants
utilisés

III.3.12.3. Les résistances variables

Ce sont des résistances dont la valeur est variable.

Figure III. 25 : résistance variable

III.4. Conclusion

Dans ce chapitre nous avons présenté la plate-forme Arduino avec ses différentes cartes, son
logiciel et son langage de programmation. Après cela, on a présenté les différents composants
électroniques que nous avons utilisés pour réaliser ce projet, tout en spécifiant la signification de
leurs boches et leurs caractéristiques techniques, et le fonctionnement de certains composants.

Nous verrons dans le prochain chapitre qui est dédié à la réalisation de notre projet,
comment brancher ces composants avec la carte Arduino.

79

Vous aimerez peut-être aussi