ADESFA
Séminaire de formation des formateurs
Informatique Industrielle et Systèmes Embarqués
INUBIL-Douala – Université Paris-Saclay
28 octobre- 02 novembre 2024
SYSTEME ARDUINO
MEGA 2560
TP1 Initiation et Fonctionnalités de Base du Système Arduino
Commande d’une LED,
Chenillard à fréquences fixe et variable,
Feux de circulation.
E/S numériques (MLI)
Microcontrôleur
Port USB - A ATmega2560
Fiche Jack
d’alimentation
5V
E/S
numériques
16 entrées analogiques
Résolution 10 bits
Table des matières
I. Le système Arduino MEGA 2560 ................................................................................................ 3
Présentation ....................................................................................................................................... 3
Introduction........................................................................................................................................ 3
Compétences visées ......................................................................................................................... 4
II. Initiation et fonctionnalités de base ......................................................................................... 5
Objectifs ............................................................................................................................................. 5
La platine d’expérimentation ............................................................................................................ 5
III. Présentation de l’IDE.............................................................................................................. 7
IV. Pour commencer : une LED clignotante ............................................................................. 8
V. Chenillard à fréquence fixe ................................................................................................. 11
VI. Lecture d’une tension analogique et conversion analogique-numérique .................. 12
VII. Chenillard à fréquence variable ......................................................................................... 13
VIII. Commande des feux de circulation d’un carrefour ........................................................ 13
IX. CONCLUSIONS ...................................................................................................................... 13
ADESFA 28-octobre au 2 novembre 2024 Page 2 sur 13
I. Le système Arduino MEGA 2560
Présentation
Le système Arduino MEGA 2560 R3, basé sur le microcontrôleur 8 bits ATmega2560, présente
les éléments principaux suivants, permettant de mettre en œuvre des travaux pratiques sans
ajout de composants extérieurs onéreux.
Broches (pins)
Built-in LED Pin 13
Digital I/O Pins 54
Analog input pins 16
PWM pins 15
Communication
UART Yes, 4
I2C Yes
SPI Yes
Alimentation
I/O Voltage 5V
Input voltage (nominal) 7-12V
DC Current per I/O Pin 20 mA
Supported battery 9V battery
Power Supply Connector Barrel Plug
Horloge
Main Processor ATmega2560 16 MHz
USB-Serial Processor ATmega16U2 16 MHz
Mémoire
ATmega2560 8KiB SRAM, 256KiB FLASH, 4KiB EEPROM
Introduction
Le contenu de ce sujet est valable pour le système Arduino ATmega2560 basé sur le
microcontrôleur 8-bit ATmega2560. Ces travaux pratiques peuvent facilement s’adapter à
d’autres versions de la même famille de ces cartes microcontrôleurs, l’utilisation du contenu
de ce manuel doit faire l’objet d’adaptations mineures en vue de respecter les spécifications de
chaque version et les fonctionnalités intégrées.
L’ensemble des exemples d’illustrations, est inspiré de programmes disponibles en accès libre
(Open Source).
Le gratuiciel (freeware) Arduino IDE 2.3.x d’[Link] est un environnement de travail intégré,
téléchargeable gratuitement à partir du lien suivant : (dernière version disponible IDE 2.3.3) :
[Link]
Pour plus d’informations relatives au microcontrôleur 8-bits ATmega2560 (Fig. 1), vous pouvez
télécharger sa fiche technique du site de son fabricant Microchip :
[Link]
DataSheets/[Link]
ADESFA 28-octobre au 2 novembre 2024 Page 3 sur 13
Fig. 1 Brochage du microcontrôleur ATmega2560
Compétences visées
L’objectif est de mettre à votre disposition, des sujets de travaux pratiques concernant le
système Arduino utilisant le microcontrôleur 8-bits ATmega2560. Les sujets ci-inclus, inspirés
d’exemples disponibles en accès libre et des travaux pratiques réalisés à l’ISTY basés sur des
systèmes 32-bits, ont été conçus pour des objectifs pédagogiques montrant la faisabilité
d’enseigner la théorie des microcontrôleurs et la valider par des travaux pratiques en se basant
sur des équipements accessibles.
Compétences et connaissances visées : liste non exhaustive
- Les éléments constitutifs du système Arduino MEGA2560.
- L’environnement Arduino IDE (Fig. 2).
- La programmation en langage C du système Arduino.
- La programmation des différentes opérations arithmétiques et logiques.
- Les signaux et les interfaces d’entrée/sorties et la programmation en temps réel.
- La communication du microcontrôleur avec différents périphériques.
- Les différents types de périphériques (série, parallèle, sans fils).
ADESFA 28-octobre au 2 novembre 2024 Page 4 sur 13
Fig. 2 Exemple d’écran d’accueil de l’environnement Arduino IDE 2.3.3
II. Initiation et fonctionnalités de base
Objectifs
- Se familiariser avec le système Arduino MEGA 2560 R3 et sa programmation
- Ecrire, compiler, téléverser et exécuter un programme développé en C.
- Mettre en œuvre des exemples d’applications.
La platine d’expérimentation
La plaquette d’expérimentation aussi appelée moniteur ou maquette est une matrice de points
contacts disposés en lignes et en colonnes selon le schéma type de la Fig. 3. Le nombre de ces
points-contact détermine la taille de la plaquette.
Fig. 3. La platine : les lignes en rouge, en bleu et en noir indiquent les points reliés entre eux.
ADESFA 28-octobre au 2 novembre 2024 Page 5 sur 13
Composants passifs
Tableau 1 Code de couleurs des résistances
4ème
1ère bague 2ème bague 3ème bague
bague
Couleur
Chiffre des Chiffre des Multiplicateur
Tolérance
dizaines unités 10m
Noir 0 0 100 = 1
Marron 1 1 101 = 10
Rouge 2 2 102 = 100
Orange 3 3 103 = 1 K
Jaune 4 4 104 = 10 K
Vert 5 5 105 = 100 K
Bleu 6 6 106 = 1 M
Violet 7 7 107 = 10 M
Gris 8 8
Blanc 9 9
Or 10-1 = 0,1 5%
Argent 10-2 = 0,01 10%
Exemple : une résistance ayant le code de couleurs suivant :
1ere bague: vert → chiffre 5
2eme bague: bleu → chiffre 6
3eme bague: jaune → chiffre 4
4eme bague: argent : → tolérance : 10%
La valeur de cette résistance est donc : 56 x 104 10% = 560 K 10%
la valeur réelle se situe dans l’intervalle :
o 560 K – 56 K = 504 K
o et 560 K + 56 K = 616 K
Quelques précautions à prendre
- Toujours vérifier le montage du circuit avant de le mettre sous tension.
- Ne jamais modifier le câblage d’un circuit alors qu’il est sous tension.
- Ne jamais laisser trainer sur la platine, des fils non connectés.
ADESFA 28-octobre au 2 novembre 2024 Page 6 sur 13
III. Présentation de l’IDE
Sans alimentation externe, la carte MEGA2560 peut être alimentée par le PC via le câble USB.
Fig. 4 Choix du type de carte dans l’environnement Arduino (Version IDE 2.3.3)
Système de numérotation
Un nombre précédé du symbole indique
0x hexadécimal
Aucun symbole décimal (système utilisé par défaut)
Se référant au système Arduino MEGA2560 et sans interface supplémentaire (ou Shields), en
déduire :
1. Le nombre maximal de signaux numériques disponibles.
__________________________________________________________________________________
2. Le nombre d’entrées analogiques que le système peut traiter.
__________________________________________________________________________________
3. Le nombre de sorties MLI disponibles.
__________________________________________________________________________________
Rappel :
- La tension de référence analogique est égale à 5 V par défaut. Vous pouvez changer
cette limite via l’entrée AREF et la fonction analogReference().
- Dans un programme C, le symbole // indique un commentaire.
- Les variables sont sensibles à la casse (écriture minuscule et majuscule), par exemple
pinmode est différent de pinMode.
ADESFA 28-octobre au 2 novembre 2024 Page 7 sur 13
IV. Pour commencer : une LED clignotante
Dans l’onglet « Fichier » choisir Exemples → 01. Basics → Blink, voir Fig. 5.
Fig. 5 Choix de l’exemple d’application d’une LED clignotante.
Compiler le programme en cliquant sur “Vérifier” (symbole : ✓), voir Fig. 6.
Fig. 6 Compilation du programme
A la fin de la compilation, cet exemple ne contenant pas d’erreurs, vous pouvez le téléverser
vers le système Arduino pour l’exécuter, en cliquant sur (→), voir Fig. 7.
ADESFA 28-octobre au 2 novembre 2024 Page 8 sur 13
Fig. 7 Téléversement du programme vers le système Arduino MEGA 2560
1. Présenter de manière succincte la structure d’un programme en C.
_________________________________________________________________________________________
_________________________________________________________________________________________
_________________________________________________________________________________________
_________________________________________________________________________________________
_________________________________________________________________________________________
2. Quel est le rôle de pinMode ( ) ?
_________________________________________________________________________________________
_________________________________________________________________________________________
_________________________________________________________________________________________
3. Peut-on définir une ligne d’entrée/sortie numérique pour agir simultanément en Entrée
ET en Sortie ? Justifier votre réponse.
_________________________________________________________________________________________
_________________________________________________________________________________________
4. Quelle est l’unité de temps de la fonction Delay.
_________________________________________________________________________________________
_________________________________________________________________________________________
ADESFA 28-octobre au 2 novembre 2024 Page 9 sur 13
Un bouton-poussoir pour contrôler une LED
Refaire la même procédure que IV pour choisir l’exemple du bouton-poussoir (ou interrupteur)
pour commander la même LED reliée à la ligne d’E/S 13. Voir Fig. 8.
Fig. 8 Choix de l’exemple du bouton
1. Montrer comment peut-on relier au système Arduino, un bouton-poussoir de type NO ?
_________________________________________________________________________________________
_________________________________________________________________________________________
_________________________________________________________________________________________
2. Donner la différence entre les instructions digitalRead et digitalWrite
_________________________________________________________________________________________
_________________________________________________________________________________________
3. Utiliser deux LED externes reliées à 2 lignes d’E/S de votre choix (entre 2 et 13).
Changer le programme précédent pour contrôler les LED selon la méthode suivante :
lorsqu’on actionne l’interrupteur, une des LED est allumée, l’autre sera éteinte et vice
versa.
ADESFA 28-octobre au 2 novembre 2024 Page 10 sur 13
Attention : Les LED doivent être reliées en anode commune de façon à soulager le
microcontrôleur, alimenté via le port USB du PC. La connexion en anode commune des
LED permet d’éviter de recourir à une alimentation externe.
Les LED doivent être protégées par des résistances en série afin de limiter le courant.
Les courants sont fixés en se référant aux notices des fabricants selon les couleurs des
LED, tels présentés dans le tableau 2.
Tableau 2 : Résistances de protection des LED
LED Courant de Tension de Résistance 𝑽𝒄𝒄 − 𝑽𝒇
(taille 5 mm) polarisation polarisation minimale 𝑹=
𝑰𝒇
directe Vf (Volts) R ()
If (mA)
Bleue 20 3.5 75
Infrarouge 20 1.6 170
Verte 20 2.6 120
Orange 20 2.2 140
Rouge 20 2.1 145
Jaune 20 2.4 130
Blanche 20 3.5 75
Exemple
Si nous fixons ce courant à 15 mA, la loi d’Ohm : R= U/I donnera R 5V/15mA 333 .
V. Chenillard à fréquence fixe
Utiliser 4 LED pour les relier aux lignes d’E/S numériques (entre 2 et 13) de votre choix.
Ecrire un programme (en C), qui permet de réaliser un chenillard fonctionnant comme suit :
1- Chenillard unidirectionnel avec un délai d’une (1) seconde :
LED1→LED2 →LED3→LED4→LED1
2- Bidirectionnel avec un délai de 0,5 seconde.
LED1→LED2→ED3→LED4→LED3→LED2→LED1
Note : Dans les deux versions, faites attention au timing lorsque le chenillard revient à la LED1.
ADESFA 28-octobre au 2 novembre 2024 Page 11 sur 13
VI. Lecture d’une tension analogique et conversion analogique-numérique
Fig. 9 Choix de l’exemple d’application de lecture d’une tension analogique
Rappel : Les tensions d’entrée analogique sont par défaut limitées à 5 V. Utiliser un
potentiomètre de 2,2 k. Toute autre valeur disponible peut également convenir sous
réserve de refaire le calcul correspondant.
Un diviseur de tension permet de déterminer une tension proportionnellement à une autre
tension.
5 V (tension de référence)
Vers l’entrée analogique (de A0 à A15)
5
𝑉𝑠 = 𝑅() ×
2200
GND (masse)
Fig. 10 Branchement du potentiomètre en diviseur de tension
Utiliser [Link](9600) et [Link]() pour déduire et afficher sur le moniteur (écran
de votre PC), la valeur numérique correspondant à
1. La tension maximale d’entrée (5 V)
__________________________________________________________________________________
2. La tension minimale d’entrée (0 V)
_________________________________________________________________________________________
3. Proposer une méthode permettant de mesurer une tension d’entrée qui varie par
exemple de 0 à 10 V.
_________________________________________________________________________________________
_________________________________________________________________________________________
ADESFA 28-octobre au 2 novembre 2024 Page 12 sur 13
VII. Chenillard à fréquence variable
Combiner les exemples des parties V et VI pour écrire un programme permettant de réaliser
un chenillard aller-retour, dont la fréquence de clignotement est déterminée par le
potentiomètre.
VIII. Commande des feux de circulation d’un carrefour
Composants requis :
- 4 x LEDS x 3 couleurs
(Rouge R + Jaune J + Verte V)
- Résistance de 220 (x4)
1. Dans un premier temps, nous allons
ignorer les feux de signalisation
destinés aux piétons.
Les feux de circulation doivent
s’allumer alternativement comme suit :
Vert → 5 s, Jaune → 2 s, Rouge → 5 s.
La synchronisation des feux F1/F3 et
F2/F4 respectivement, permet
d’optimiser le nombre de lignes d’E/S
utilisées.
Réaliser le montage et écrire un
programme permettant de contrôler
les feux de circulation de ce carrefour.
Rappel : afin de soulager les sorties du microcontrôleur, les LEDS doivent être connectées en
anode commune comme suit :
La résistance de protection étant commune aux trois LED, elle doit être capable de dissiper une
puissance de : P = 3 x U x I = 3 x 5 x 15 x 10-3 = 225 mW. Une résistance de ¼ W vérifie donc ce
critère.
2. Compléter votre montage et changer votre programme pour intégrer les feux de circulation
piétons (P1D : feu piéton 1 droit, P1G : feu piéton 1 gauche, …).
IX. CONCLUSIONS
- Environnement Arduino IDE
- Compatibilité des systèmes Arduino
- Programmation en C
- Interfaces d’entrées-sorties
ADESFA 28-octobre au 2 novembre 2024 Page 13 sur 13