TP Arduino
TP Arduino
TP Arduino
1
Avant-propos
Ce fascicule des travaux pratiques s’adresse aux étudiants de deuxième année Licence
fondamentale en électronique (Licence en Systèmes Embarqués et Licence en Électronique
Industriel). Ce support inclut quatre manipulations pour prendre en main la programmation sur
le logiciel Arduino IDE et la communication avec la carte Arduino Uno. Après ce TP (ayant
comme charge 10 heures et demi par semestre), les étudiants seront capables de réaliser plusieurs
prototypes à l’aide de microcontrôleur Arduino. Il est à noter que le présent support inclut une
section « Introduction à Arduino » permettant aux étudiants d’être capables de réaliser les
travaux pratiques demandés dans les quatre manipulations proposées.
La deuxième manipulation permet aux étudiants de savoir utiliser et gérer les entrées/sorties
analogiques de la carte Arduino.
La troisième manipulation consiste à utiliser des dispositifs afficheurs pour l’affichage des
messages telque l’écran Lyquid Crystal Display LCD I2C, l’afficheur Sept segments 5011 AS
(cathode commune) et les matrice à Leds (8x8) avec MAX7219.
La quatrième manipulation consiste à commander des voitures robotiques via une application
Android utilisant des modules Bluetooth HC-05.
2
Sommaire
Introduction à Arduino .................................................................................................... 4
Manipulation 3 : Affichage sur l’écran Lyquid Crystal Display I2C, l’ afficheur Sept
segments 5011 AS et les matrices à Leds (8x8) avec MAX7219 ................................. 22
Manipulation 4 : Commander des voitures robotiques par une application Android ... 25
3
Introduction à Arduino
Arduino est une plateforme de prototypage électronique open-source conçue pour être
accessible aux débutants en électronique et en programmation. La plateforme est basée sur une
carte électronique dotée d'un microcontrôleur et d'une variété de ports d'entrée/sortie qui
permettent aux utilisateurs de connecter des capteurs, des actionneurs et d'autres composants
électroniques.
L'environnement de programmation d'Arduino est également open-source et utilise un langage
de programmation simplifié basé sur le C/C++. Les utilisateurs peuvent écrire des programmes
en utilisant l'interface graphique de l'environnement de programmation, qui leur permet de
sélectionner des fonctions et des variables à partir de menus déroulants, plutôt que d'avoir à
écrire du code à partir de zéro.
Grâce à sa simplicité d'utilisation et à sa grande communauté en ligne, Arduino est devenu une
plateforme très populaire pour la création de projets électroniques interactifs, que ce soit pour
le prototypage rapide de concepts ou pour des projets plus avancés nécessitant une intégration
matérielle complexe.
1. Description de la carte Arduino
Il existe différent modèles de cartes Arduino. Chaque model est caractérisé par une fiche
technique et un prix spécifiques. Donnons-en quelques-unes:
Uno : C'est la version la plus populaire, ~ 23,80 € ;
Mega : C'est la version la plus utilisée après la UNO, elle est caractérisée par un
nombre plus grand de broches, ~ 45,60 € ;
Nano : Cette version des cartes est caractérisée par sa taille minimisée. Ces
caractéristiques sont peu au-dessous à la carte UNO, au contraire, il est impossible de
l’alimenter autrement que par la liaison USB, ~ 22,80 € [1].
Dans ce notre TP, nous utilisons la carte Arduino Uno donnée par la figure.1, incluant un
microcontrôleur ATMEGA328 alimenté en 5 V. Cette carte possède 14 entrées/sorties
numériques dont 6 sont utilisables en PWM (Pulse Width Modulation ou MLI pour modulateur
de largeur d’impulsion). Ces 14 pins peuvent être utilisés en entrée ou en sortie sous le contrôle
du programme. De même, la carte Arduino intègre 6 entrées analogiques (A0....A5). Le
microcontrôleur a un convertisseur analogique numérique (CAN) avec 10 bits de résolution.
4
Figure.1: Carte Arduino Uno [2]
L’intensité maximale délivrée par la carte Arduino est de 0.40 mA. Donc, on peut calculer la
puissance maximale par la relation suivante: P=U*I.
2. Le microcontrôleur
La carte Arduino Uno est basée essentiellement sur le microcontrôleur ATMEGA328
(Microcontrôleur ATMEL de la famille AVR 8bits) qui va recevoir le programme écrit en
language Arduino et le stocke dans sa mémoire avant de l’exécuter.
5
A l’aide de ce microcontrôleur, plusieurs applications industrielles peuvent être exécutées. En
fait, les microcontrôleurs ont des performances réduites, mais ils sont caractérisés par une faible
taille et une consommation réduite d’énergie les permettant fondamentales dans les systèmes
embarqués (robots, voitures,). Une architecture interne de microcontrôleur ATMEGA 328 est
donnée par la figure.2.
3. Les mémoires
Pour stocker le programme à exécuter, le microcontrôleur Arduino contient une mémoire
flash de 32ko. De même, il dispose une mémoire volatile SRAM pour le stockage des résultats
temporaires lors de calcul. L’ATMEGA 328 intègre également une mémoire EEPROM de taille
1ko permettant au programme le stockage des données persistantes
[2].
Les entrées/sorties sont les moyens qu’à la carte Arduino peut se communiquer avec
l’extérieur. Les entrées sont lues par le microcontrôleur Arduino permettant de savoir l’état du
système auquel est-il interconnecté. Les sorties sont contrôlées par le microcontrôleur
permettant de réaliser des actions (allumer/éteindre une LED, activer un moteur…). La carte
Arduino inclut 14 E/S numériques (D0…D13). Les Pin D0 et D1 sont réservés pour la
communication série donc il ne faut pas les employer. Les sorties numériques ne peuvent pas
délivrer une puissance supérieure à 40 mA.
La carte Arduino inclut 5 ports analogiques (A0…A5) comme indiqué dans la figure.3. La
carte lit la tension appliquée sur le port. C’est une valeur analogique alors que le microcontrôleur
ne fonctionne qu’avec des valeurs numériques (0 ou 1). Cette tension doit être transformée à sa
valeur numérique. D’où le rôle du convertisseur analogique numérique (CAN). Ce dernier
fonctionne sur 10 bits. Il reçoit à l’entrée une tension entre 0 et 5V et envoie au microcontrôleur
un entier entre 0 et 1023.
6
5.2. Les sorties analogiques
Dans la carte Arduino, on ne trouve pas des vraies sorties analogiques. Certaines broches
numériques peuvent être utilisées comme sorties analogiques employant la technique PWM
(voir figure.4). Les broches 3, 5, 6, 9,10 et 11 peuvent fournir une tension entre 0V et 5V. La
valeur moyenne de la tension est 2.5 V avec un rapport cyclique de 50%. La carte Arduino
varie la valeur moyenne de ces broches avec une sensibilité de 8 bits pour donner un entier
entre 0 et 255 et le port fournit une tension moyenne entre 0 et 5V.
6. Alimentation
La carte Arduino peut être alimentée en 5V par le port USB ou par une alimentation externe
(par Pile) qui est comprise entre 7V et 12V. Le câble USB (figure.5) permet à la fois l’alimentation
de la carte et la communication série avec elle.
7
7. Les câbles de connexion
La carte Arduino n’intègre pas d’autres composants comme les résistances, les moteurs, les
diodes à part le pin 13… Pour réaliser plusieurs applications, il faut les connecter à la carte.
Cette connexion est réalisée par des cables (figure.6).
8. La plaque à essais
Une plaque à essaie nous permet de réaliser plusieurs prototypes électroniques. Elle peut
intégrer plusieurs composants électroniques qui communiquent avec la carte Arduino. Tous les
connecteurs dans une ligne de 5 sont interconnectés entre eux. Les lignes de connecteurs rouges
sont employées pour 5v d’alimentation alors que les lignes bleues sont utilisées pour la masse
(figure.7).
8
9. Les résistances
Une résistance est un composant électronique utilisé principalement pour l’objectif de
protection pour les autres composants (pour ne pas griller les composants). La résistance R est
calculée par l’équation. 2:
R=U/I (ohm). (Eqt.2)
Pour sélectionner la résistance R qui doit être utilisée dans le prototype, il faut s’aider par le
code de couleur présentée par la figure.8 en exploitant l’équation. 3.
9
la carte Arduino. L’interface de programmation est donnée par la figure.10:
Programme
10
12. Les étapes de développement d’un programme et téléversement sur la
carte Arduino Uno
Les étapes de téléversement d’un programme sur la carte Arduino UNO sont données par la figure 11
[21].
Développer un code Arduino sous Arduino IDE Compiler le programme par le bouton de compilation et vérifier
que le code ne contient pas d’erreur. Si pas d’erreurs le console
affiche : « compilation terminée ».
12
MANIPULATION 1
3. Partie pratique
Exercice 1: Faire clignoter une LED
13
2. Quelle est le rôle de la résistance?
3. Ecrire un programme Arduino permettant de clignoter une diode LED connectée sur la
broche numérique n°13 de la carte Arduino Uno. Cette LED doit rester allumée pendant
2 s et éteinte pendant 1 s.
3. Faire clignoter 10 fois la LED afin de créer un signal de SOS lumineux.
14
Figure.15: Câblage pour rotation de lumière [7]
Feux 1
Feux 2
15
Feu 1: La LED rouge (R1) est branchée sur le Pin 5, la LED jaune (J1) est branchée sur
le Pin 6 et la LED verte (V1) est branchée sur le Pin 7 de l’Arduino.
Feu 2: La LED rouge (R2) est branchée sur pin 8 et la LED jaune (J2) est branchée sur
le Pin 9 tandis que la LED verte (V2) est connectée sur le Pin 10.
2. Réaliser le montage correspondant en utilisant une carte Arduino UNO, des Leds, des
résistances, les câbles de connexion et la plaque à essaie.
Figure.16: Câblage pour allumer une Led selon l’état d’un bouton poussoir [8]
16
MANIPULATION 2
3. Partie pratique
Exercice 1: Lire la température par un capteur température LM35.
17
Figure.17: Montage pour la lecture de la température par un capteur LM35 [10]
Figure.18: Montage pour varier l’intensité d’une Led par un potentiomètre [11]
18
- Si la température est inférieure à 30 alors la LED verte est allumée.
- Si la température est entre 30 et 40 alors la LED rouge est allumée.
- Sinon (température supérieure à 40) alors la LED jaune est allumée.
1. Indiquer quelles sont les composants électroniques qu’on peut les ajouter à l’Arduino
permettant de fournir l’intensité suffisante pour commander un moteur.
2. Comprendre le rôle et le fonctionnement d’un Pont H (L298N).
3. Coder en Arduino pour faire tourner deux moteurs dans un seul sens pendant 5 s avec une
vitesse constante puis dans le sens inverse avec un retard de 2s.
19
- Faire tourner deux moteurs dans le même sens avec des vitesses diffrentes :
(100%,75%,50% et 25%) de la vitesse maximale pendant 5 secondes.
- Arrêter les moteurs pendant 3 secondes.
- Faire tourner les deux moteurs dans l’autre sens pendant 5 secondes.
- Arrêter les moteurs pendant 3 secondes.
5. Réaliser le montage en utilisant l’outil de simulation ISIS.
Figure.21: Montage pour commander l’état d’un moteur à courant continu par un
bouton poussoir. [15]
20
6. Programmer en Arduino un code permettant de commander un moteur par la carte
Arduino. Un bouton poussoir est utilisé pour le fonctionnement du moteur. Un appui sur
le bouton poussoir assure le fonctionnement de moteur sinon le moteur ne fonctionne pas.
21
MANIPULATION 3
Affichage sur l’écran LCD I2C,
l’afficheur Sept segments et les Matrices à
Leds.
5. 2 Diodes LED
2. Partie Pratique
22
Figure.22 : Montage pour affichage sur LCD [16]
3. Ajouter la bibliothèque Liquid Crystal permettant de contrôler les écrans I2C.
4. Ecrire le programme Arduino permettant de faire clignoter les trois LEDs selon
la valeur de température contrôlée par le potentiomètre et afficher cette valeur
sur l’écran LCD I2C. Les Leds sont respectivement branchées aux pins 11,10 et
9 de la carte Arduino.
5. Refaire le montage en utilisant ISIS.
Figure.23: Montage pour l’affichage des nombres sur l’afficheur Sept Segments [17]
23
5. Ajouter la bibliothèque SevSeg permettant de contrôler tous les segments de
circuit 5011 AS.
6. Ecrire le code Arduino permettant d’afficher tous les nombres de 0 à 9 sur le
dispositif à cathode commune.
Exercice 3: Ecrire et afficher des lettres sur des matrices à Leds (8x8) avec
MAX7219
1. Comprendre le fonctionnement des matrices à Leds 8x8
2. Comprendre l’utilité de dispositif Max7219.
24
MANIPULATION 4
Commander des voitures robotiques par
une application Android
5. Diodes LED
7. 4 Moteurs DC 5v.
8. Pont en H L298N
9. Batterie 9V
10. Module Bluetooth HC-05
11. Smartphone
3. Partie pratique
Exercice 1: Controller un dispositif (Led) avec un-Smartphone Android
en utilisant un module Bluetooth
25
Pour le téléversement du programme, les broches Rx et Tx du module Bluetooth seront
connectées aux broches de liaison série de l’Arduino Tx (broche 1) et Rx
(broche 0).
Notez bien: Il faut inverser les broches Rx et Tx entre la carte Arduino et le module
Bluetooth. Lors de téléversement, il faut débrancher les pins Rx et Tx.
Figure.26: Montage pour le contrôle d’une Led par smartphone via module HC-05 [19]
26
2. Ecrire le code Arduino permettant de contrôler quatre moteurs par la carte Arduino et
le module Shiel L298N. On désire tourner les moteurs de la voiture robotique en avant, en
arrière, à gauche et à droite avec une vitesse maximale.
3. Modifier le code afin de contrôler le mouvement des moteurs selon l’état d’un bouton
poussoir. Si un bouton poussoir est appuyé, alors les moteurs tournent sinon les moteurs sont
en mode blocage.
Figure.28: Montage pour le contrôle d’un robot utilisant une application Android et un
module Bluetooth [20]
27
Références
[1] https://boutique.semageek.com/fr/8-cartes-arduino.
[2] http://arduino.education/wp- content/uploads/2018/01/Arduino_cours.pdf
[3] https://www.theengineeringknowledge.com/introduction-to-atmega328/
[4] https://www.positron- libre.com/cours/electronique/resistances/code-couleurs-resistances.php
[5] https://www.google.com/search?q=diode+led&oq=diode+led&aqs=chrome.0.69i59j0i20i263i512j0i512l8.3156j
0j4&sourceid=chrome&ie=UTF8#imgrc=6O3VsH5pVskU_M&imgdii=m7zW2X1NpG6VRM
[6] https://tesseract-it.com/blog/article/comment-allumer-une-led-en-continu-avec- Arduino.
[7] https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique- embarqués/743_
gestion-des-entrees-sorties/3422_tp-feux-de-signalisation-routiere/
[8] https://arduino-france.site/led-avec-bouton/
[9] https://lepetitbidouilleur.wordpress.com/2014/08/29/arduino2-bouton-poussoir.
[10] https://www.carnetdumaker.net/articles/mesurer-une-temperature-avec-un-capteur-lm35-
et-une-carte Arduino
[11] https://projetsdiy.fr/debuter-led-arduino-intensite-couleur-rgb/
[12] https://arduino-france.site/capteur-lm35/.
[13] https://arduino.blaisepascal.fr/pont-en-h-l298n/.
[14] http://electroniqueamateur.blogspot.com/2016/06/controle-dun-ou-deux-moteurs- cc-avec.html.
[15] https://www.robotique.tech/tutoriel/commander-un-moteur-a-courant-continu-avec- Arduino/.
[16] https://create.arduino.cc/projecthub/arduino_uno_guy/i2c-liquid-crystal-displays-5b806c.
[17]https://ledisrupteurdimensionnel.com/arduino/connexion-dun-afficheur-de-7-segments-avec-
arduino/#v%C3%A9rifier.
[18] https://www.aranacorp.com/fr/utilisation-dune-matrice-de-led-8x8-avec-arduino.
[19] https://icn.lycee-valin.fr/dokuwiki/doku.php?id=arduino:le_bluetooth.
[20] https://www.crawforty.top/products.aspx?cname=bluetooth+car+using
28
29