Académique Documents
Professionnel Documents
Culture Documents
comportement désiré.
Dans le cadre de ce cours nous étudierons la carte Arduino UNO plus précisément
sa version 3 (R3).
1
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Microcontrôleur ATmega328P
Il s’agit d’un microcontrôleur 8 bits de la famille AVR créé par la société ATMEL
avec une architecture RISC avancée. C’est l’élément central de la carte Arduino UNO.
INP-HB/DFR Génie Électrique et Électronique
2
KONE Siriky Youssouf Édition 2022
Electronique Programmable
3
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Connecteur Jack DC
La carte Arduino UNO dispose d’un connecteur Jack DC
via lequel la carte peut être directement alimentée.
L’alimentation via ce connecteur doit être comprise entre
7V et 12V.
Ce connecteur est relié à un régulateur intégré de tension de 5V (NCP1117ST50T3G)
qui permet de fournir une tension continue et stable de 5V au microcontrôleur
ATmega328P et à d’autres éléments fonctionnant en 5V DC.
Connecteur ICSP
Le connecteur ICSP (In-Circuit Serial Programming) est une connectique qui permet
entre autre de programmer directement le microcontrôleur ATmega328P sur les
couches les plus basses en langage bas niveau (bootloader, code ASM, etc.).
Le second connecteur ICSP permet de programmer directement le microcontrôleur
ATmega16U2.
Bouton RESET
Le bouton RESET, une fois appuyé, permet de faire une réinitialisation matérielle de
la carte Arduino UNO en ramenant tous ses paramètres à leurs valeurs par défaut
c’est-à-dire toutes les variables sont réinitialisées à leurs valeurs d’origine et tous les
INP-HB/DFR Génie Électrique et Électronique
4
KONE Siriky Youssouf Édition 2022
Electronique Programmable
1 port NC
Ce port Non Connecté (NC) est une prévision d'usages ultérieurs.
1 port IOREF
Ce port donne la tension de fonctionnement de la carte Arduino UNO.
1 port RESET
Ce port est utilisé pour permettre une réinitialisation de la carte de
manière matérielle ou logicielle.
1 port 3.3V
Ce port d’alimentation est utilisé par la carte Arduino UNO pour délivrer
une tension de 3,3V avec un courant maximal de 50 mA grâce à un
régulateur intégré de tension interne (LP2985-33DBVR) afin d’alimenter
des composants ou modules externes fonctionnant avec du 3.3 V.
1 port 5V
Ce port d’alimentation est utilisé par la carte Arduino UNO pour délivrer
une tension de 5V avec un courant maximal de 500 mA afin d’alimenter des
composants ou modules externes fonctionnant avec du 5V.
3 ports GND
Ces ports GND (GROUND) sont interconnectés à la masse (potentiel 0V) de la
carte Arduino UNO et peuvent être utilisés comme masse pour les différents
composants ou modules externes.
1 Port Vin
Ce port est utilisé pour alimenter la carte Arduino UNO depuis une source
d’alimentation externe de 7V à 12V avec un courant maximal de 500 mA. Il est relié
au circuit d’alimentation principale de la carte Arduino UNO.
6 ports d’entrées analogiques (A0 à A5)
La carte Arduino UNO dispose de 6 ports d’entrées analogiques numérotés A0, A1,
A2, A3, A4 et A5. Chaque port analogique permet de lire un signal analogique
INP-HB/DFR Génie Électrique et Électronique
5
KONE Siriky Youssouf Édition 2022
Electronique Programmable
modulée par largeur d'impulsion dont la valeur moyenne se situe entre 0V et 5V, et
ce, en alternant l’état bas (0V) et l’état haut (5V) et en contrôlant la largeur
d'impulsion (0 à 255).
6
KONE Siriky Youssouf Édition 2022
Electronique Programmable
7
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Interface I2C
La carte Arduino UNO dispose de 2 ports d’entrées analogiques qui peuvent être
utilisés comme interface I2C (Inter Integrated Circuit). Il s’agit des ports analogiques
A4 (SDA) et A5 (SCL).
L’interface I2C (Inter Integrated Circuit) permet à la carte Arduino UNO de
communiquer par liaison série synchrone bidirectionnel half-duplex avec des circuits
électroniques disposant d’une interface I2C, grâce à seulement deux fils, un fil pour
le signal de donnée (SDA) et l’autre pour le signal d'horloge (SCL).
Une des particularités de la liaison I2C est que l'on peut faire communiquer le maître
(en général le microprocesseur) avec plusieurs esclaves (les autres circuits) en les
reliant tous au même bus. Il faut uniquement mettre deux résistances de tirage sur
les lignes SDA et SCL.
8
KONE Siriky Youssouf Édition 2022
Electronique Programmable
9
KONE Siriky Youssouf Édition 2022
Electronique Programmable
10
KONE Siriky Youssouf Édition 2022
Electronique Programmable
11
KONE Siriky Youssouf Édition 2022
Electronique Programmable
L’interface de l’IDE Arduino peut être décomposée en quatre (04) zones comme
l’illustre la figure ci-dessous.
12
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Moniteur
Ouvre la fenêtre du moniteur (ou terminal) série.
Série :
La fenêtre du moniteur (ou terminal) série permet d'afficher des messages textes
reçus par la carte Arduino et d'envoyer des caractères vers la carte Arduino.
Cette fonctionnalité permet de faciliter la mise au point des programmes à travers
l'affichage sur l'ordinateur de l'état de variables, des résultats de calculs ou de
conversions analogique-numérique : un élément essentiel pour améliorer, tester et
corriger ses programmes.
INP-HB/DFR Génie Électrique et Électronique
13
KONE Siriky Youssouf Édition 2022
Electronique Programmable
14
KONE Siriky Youssouf Édition 2022
Electronique Programmable
15
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Début
En-tête déclarative
Configuration
void setup()
Initialisation
Acquisition
Transmission
Fin
16
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Opérateurs booléens
ET booléen &&
OU booléen ||
NON booléen !
17
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Traitement21;
}
18
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Syntaxe :
Switch (Variable)
{
case valeur1 :
// Instructions à exécuter dans le cas où la variable « Variable » vaut « valeur1 ».
Traitement 1;
break ;
case valeur2 :
// Instructions à exécuter dans le cas où la variable « Variable » vaut « valeur2 ».
Traitement 2;
break ;
default :
/* Instructions à exécuter dans le cas où la variable « Variable » vaut une valeur
autre que « valeur1 » et « valeur2 ».*/
Traitement 3;
break ;
}
Structures de contrôles de répétitions ou d’itérations
Les structures de contrôles de répétitions ou boucles sont des blocs qui permettent
de tester si une condition est vraie pour faire des traitements répétitifs (en boucle).
Structure de contrôle « for »
La structure « for » permet d’exécuter le même bloc instructions plusieurs fois. Il faut
donc prévoir une variable qui sert de compteur, sa valeur initiale, sa valeur finale et
son pas d'incrémentation. Quand la variable atteint la valeur finale précisée, la boucle
s'arrête.
Syntaxe :
INP-HB/DFR Génie Électrique et Électronique
19
KONE Siriky Youssouf Édition 2022
Electronique Programmable
while (condition)
{
// Instruction à effectuer tant que la condition est vraie.
Traitement ;
}
Syntaxe :
do
{
// Instructions à exécuter tant que la condition est vraie.
Traitement ;
}
while (condition);
Les instructions à l’intérieur de la boucle sont toujours exécutées au moins une fois.
suivante sans finir d'exécuter les instructions correspondant à celle qui est en cours,
soit en forçant le programme à quitter la boucle, comme si la condition était fausse.
Instruction « continue »
L'instruction « continue » permet de passer au cycle suivant d'une boucle sans
exécuter les instructions restantes de l'itération en cours.
Syntaxe : continue ;
20
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Instruction « break »
Cette instruction permet de sortir d’une boucle d’itération. Il ne peut sortir que d’un
niveau d’accolade.
Syntaxe : break ;
Instruction « goto »
Il s’agit d’une instruction de saut inconditionnel permettant de renvoyer l'exécution
du programme vers une étiquette. Ce saut systématique entraîne une rupture du flot
d'exécution.
Syntaxe :
goto LABEL ;
// Instructions à sauter
LABEL :
Instruction « return »
Cette instruction provoque la fin de l’exécution de la fonction dans laquelle elle se
trouve et un retour à la fonction appelante.
Syntaxe :
return ;
ou
return (expression) ;
INP-HB/DFR Génie Électrique et Électronique
21
KONE Siriky Youssouf Édition 2022
Electronique Programmable
22
KONE Siriky Youssouf Édition 2022
Electronique Programmable
23
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Syntaxe :
pinMode(Port, INPUT) ;
pinMode(Port, INPUT_PULLUP) ;
Port GPIO orienté en « Sortie »
Un port GPIO de la carte Arduino orienté en « Sortie » sert à faire de la transmission
d’un ordre ou de données.
Syntaxe :
pinMode(Port, OUTPUT) ;
24
KONE Siriky Youssouf Édition 2022
Electronique Programmable
25
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Fonction « millis () »
La fonction « millis () » permet de mesurer le temps écoulé en milliseconde (ms)
depuis le démarrage du programme.
Syntaxe : millis () ;
La fonction « millis () » est sans paramètre et elle est capable de mesurer une durée
allant jusqu’à 50 jours. La valeur retournée doit donc être stockée dans une variable
de type « unsigned long ».
26
KONE Siriky Youssouf Édition 2022
Electronique Programmable
Fonction « micros () »
La fonction « micros () » permet de mesurer le temps écoulé en microseconde (μs)
depuis le démarrage du programme.
Syntaxe : micros () ;
La fonction « micros () » est aussi sans paramètre et elle est capable de mesurer une
durée allant jusqu’à 50 jours. La valeur retournée doit donc être stockée dans une
variable de type « unsigned long ».
Fonction « delay () »
La fonction « delay () » permet de mettre en pause le programme pendant un temps
prédéterminé. C’est une fonction bloquante, car aucune action ne sera effectuée
pendant cette temporisation.
Syntaxe : delay (Param1) ;
Param1 : durée de temporisation en milliseconde (ms).
Résistances de rappel
Un port GPIO numérique orienté en « Entrée » et non connecté à un état indéfini
dit « flottant ». Une résistance de rappel permet donc de fixer cette « Entrée »
numérique à un état stable (HIGH ou LOW).
Ce problème peut être résolu de manière physique en utilisant une résistance externe
à la carte Arduino ou de manière logicielle en utilisant une résistance interne à la carte
Arduino.
Résistance Pull up : Résistance de tirage vers le haut (VCC)
Cette approche permet de fixer l’« Entrée » numérique à un état
HIGH en plaçant une résistance entre VCC et le port GPIO.
Syntaxe : pinMode (Port, INPUT_PULLUP);
INP-HB/DFR Génie Électrique et Électronique
27
KONE Siriky Youssouf Édition 2022