Vous êtes sur la page 1sur 18

Ministère de l’Enseignement Supérieur République de Côte d’Ivoire

et de la Recherche Scientifique Union – Discipline – Travail

Génie Électrique & Électronique

Microcontrôleur NG
La carte Arduino UNO

1ère année STIC


Cycle technicien supérieur

UP Électronique
Département Génie Électrique et Électronique (GEE)

Édition 2017
Microcontrôleur NG

PROGRAMME DU COURS

CHAPITRE 1 : ARCHITECTURE DES ORDINATEURS

CHAPITRE 2 : PRESENTATION DE LA CARTE ARDUINO

CHAPITRE 3 : INTRODUCTION A LA PROGRAMMATION EN LANGAGE « C ARDUINO »

CHAPITRE 4 : GESTION DES ENTREES/SORTIES NUMERIQUES

CHAPITRE 5 : COMMUNICATION PAR LIAISON SERIE

CHAPITRE 6 : GESTION DES ENTREES/SORTIES ANALOGIQUES


DFR Génie Électronique et Électronique

I
UP Électronique Édition 2017
Microcontrôleur NG

CHAPITRE 1 : ARCHITECTURE DES ORDINATEURS


Objectifs du cours :
 Connaître l’architecture de base d’un ordinateur ;
 Comprendre le principe de fonctionnement d’un ordinateur ;
 Introduire les microcontrôleurs.
Prérequis :
Architecture des ordinateurs, Microprocesseurs.
Durée du cours : 1 Heure

I- GENERALITES
Un ordinateur est une machine programmable de traitement de l'information. Il est capable d’acquérir de
l’information, de la stocker, de la traiter puis de la restituer sous une autre forme.
Cette machine programmable est constituée de matériels et de logiciels. Le matériel (hardware) correspond
à l’aspect physique de l’ordinateur. Quant au logiciel (software), c’est un ensemble d’instructions, appelé
programme, contenu dans les différentes mémoires de l’ordinateur. Ces instructions définissent les actions
effectuées par le matériel.
L'architecture d’un ordinateur met en évidence l’organisation des différents éléments matériels de
l’ordinateur.
II- STRUCTURE D’UN ORDINATEUR
La structure d’un ordinateur comporte quatre (04) organes essentiels que sont :
 L’unité d’entrée : elle permet l’acquisition des informations.
 L’unité de sortie : elle permet la diffusion des informations.
 La mémoire centrale : elle permet le stockage des informations.
 Le processeur : il est chargé d’interpréter les instructions, de séquencer le déroulement des actions, de
traiter les opérations et d’exécuter les actions. Il est composé principalement d’une unité de traitement
et d’une unité de commande.
En plus des unités citées plus haut les ordinateurs actuels possèdent d’autres unités additionnelles (wifi,
Bluetooth, USB, etc.).
La structure d’un ordinateur se présente comme suit :

MÉMOIRE CENTRALE

Informations UNITÉ PROCESSEUR UNITÉ Informations


D’ENTRÉE DE SORTIE
Unité de Unité de
traitement commande

Figure 1 : structure d’un ordinateur


DFR Génie Électronique et Électronique

1- Lignes de communication
Les différentes composantes d’un ordinateur communiquent entre elles grâce à un ensemble de liaisons
physiques (câbles, pistes de circuits imprimés, etc.) appelé bus. On distingue deux principaux bus à savoir
le bus système qui permet au processeur de communiquer avec la mémoire centrale et le bus d'extension
qui permet aux diverses composantes de la carte-mère de l’ordinateur de communiquer entre elles.
En réalité chaque bus est constitué de plusieurs lignes physiques distinctes, classées en trois (03) sous-
ensembles fonctionnels :
 Le bus de données : Le bus de données véhicule les instructions émises par le processeur et celles qui lui
sont adressées.
 Le bus d’adresses : Le bus d'adresses transporte les adresses mémoire auxquelles le processeur souhaite
accéder pour lire ou écrire une donnée.
 Le bus de contrôle ou de commande : Le bus de contrôle transporte les ordres tout comme les signaux
de réponse.

1
UP Électronique Édition 2017
Microcontrôleur NG

2- Mémoire centrale
La mémoire centrale est assimilable à une « armoire » avec plusieurs millions d’étagères identiques, chacune
d’elles porte une adresse. Chaque étagère peut contenir un octet (8bits). On distingue principalement deux
(02) catégories de mémoire :
2-1- La mémoire morte (ROM = Read Only Memory)
Originalement, la mémoire morte désignait une mémoire non volatile 1 dont le contenu était fixé lors de sa
fabrication et accessible uniquement en lecture. Avec l'évolution des technologies, la définition d’une
mémoire morte a été élargie pour inclure le faite que son contenu peut être effacé et reprogrammé par un
utilisateur expérimenté. Les mémoires mortes sont classées selon la possibilité de les programmer et de les
effacer :
 La mémoire ROM (Read Only Memory) :
Mémoire permanente, non volatile et accessible uniquement en lecture.
 La mémoire PROM (Programmable Read Only Memory) :
Mémoire programmable une seule fois par l’utilisateur. Une fois programmée elle devient une ROM au
sens littéral du terme.
 La mémoire EPROM (Erasable Programmable Read Only Memory) :
Mémoire effaçable par rayons ultraviolets et programmable plusieurs fois par l’utilisateur.
 La mémoire EEPROM (Electrically Erasable Programmable Read Only Memory) :
Mémoire effaçable électriquement et programmable plusieurs fois par l’utilisateur.
 La mémoire Flash :
Mémoire programmable et accessible en lecture / écriture.
2-2- La mémoire vive (RAM = Random Access Memory)
C’est une mémoire temporaire et volatile. Elle est chargée de stocker les programmes et données en cours
d’exécution. La RAM est accessible en lecture et en écriture mais l’information est perdue à la mise hors
tension.
On distingue généralement deux grandes catégories de mémoires vives :
 Les mémoires dynamiques (DRAM, Dynamic Random Access Module)
Elles sont principalement utilisées pour la mémoire centrale de l'ordinateur. La DRAM exige que les données
soient actualisées périodiquement afin de conserver les données.
 Les mémoires statiques (SRAM, Static Random Access Module)
Les SRAM sont notamment utilisées pour les mémoires cache du processeur.
III- PRINCIPE DE FONCTIONNEMENT D’UN ORDINATEUR
L’ordinateur est une machine programmable dont la partie physique est essentiellement constituée d’un
processeur, d’une mémoire et des unités d’entrées/sorties. Ces éléments communiquent entre eux via des
bus d’adresses, de données et de commandes. La partie physique de l’ordinateur, en l’occurrence le
processeur, est chargé de l’exécution des différentes actions définies sous forme d’une suite d’instructions
dans un programme stocké dans la mémoire de l’ordinateur.
Lors de l’exécution d’un programme, celui-ci est chargé par le système d'exploitation (à partir du disque
DFR Génie Électronique et Électronique

dur) dans une zone de la mémoire RAM. Celle-ci étant organisée en cellule mémoire, chaque instruction
du programme est stockée à une adresse de la mémoire. L'adresse de la première instruction est
communiquée au processeur pour qu'il commence l'exécution au bon endroit.
Une fois l’instruction récupérée, le processeur l’interprète, séquence le déroulement des actions
élémentaires, effectue les opérations de calculs et d’exécuter chaque action élémentaire demandée.
A la fin de l’exécution de la première instruction, le processeur transmet à la mémoire centrale le numéro
de la prochaine instruction à traiter. Cette dernière transfert vers le processeur l’instruction à traiter et le
cycle se répète.
Toutefois, il faut noter que les opérations ne sont pas forcément exécutées dans l’ordre de rangement dans
la mémoire centrale.

1
Une mémoire non volatile est une mémoire qui ne s’efface pas lorsque l’appareil qui la contient n’est plus alimenté en électricité.

2
UP Électronique Édition 2017
Microcontrôleur NG

IV- MICROCONTROLEUR
1- Définition d’un microcontrôleur
Un microcontrôleur est un composant électronique constitué des éléments essentiels d'un ordinateur et qui
se présente sous la forme d'un circuit intégré. La figure ci-dessous présente un microcontrôleur plus
précisément le PIC 16F84.

Figure 2 : Microcontrôleur PIC 16F84

Un microcontrôleur est constitué principalement de :


 Processeur ;
 Mémoires (mémoire morte et mémoire vive) ;
 Unités périphériques ;
 Interfaces d'entrées-sorties.
Les microcontrôleurs se caractérisent par un plus haut degré d'intégration, une plus faible consommation
électrique, une vitesse de fonctionnement plus faible (de quelques Mégahertz jusqu'à plus d'un Gigahertz)
et un coût réduit par rapport aux microprocesseurs polyvalents utilisés dans les ordinateurs personnels.
Compte tenu de leur petite taille, ils sont très utilisés dans les systèmes électroniques, comme les contrôleurs
des moteurs automobiles, les télécommandes, les appareils de bureau, l'électroménager, les jouets, la
téléphonie mobile, etc.
2- Familles de microcontrôleurs
Les fabricants tels que Microchip, Atmel et Texas Instrument proposent des microcontrôleurs. Chaque
fabricant offre souvent plusieurs familles de microcontrôleurs.
Exemples
 Microchip : PIC, dsPIC
 Atmel : AVR, AVR32, ARM, ATmega
 Texas Instruments : MSP430, MSP432
Chaque famille comporte souvent des dizaines, voire des centaines de sous-famille, qui diffèrent les uns des
autres principalement par les tailles mémoires (RAM et ROM) et le nombre de broches d’entrée-sortie.

Exercice d’application :

1 - Qu’est-ce qu’un ordinateur ?


2 - Quelle est la différence entre la partie Hardware et la partie Software d’un ordinateur ?
3 - Citer quatre (04) organes essentiels d’un ordinateur.
4 - Quelles sont les quatre (04) grandes fonctions d’un processeur ?
DFR Génie Électronique et Électronique

5 - Qu’est-ce qu’une mémoire vive ?


6 - Quelle est la différence entre un bus système et un bus d’extension ?
7 - Donner la caractéristique principale d’un processeur.
8 - Citer deux (02) éléments constitutifs d’un processeur.
9 - Dans quelle mémoire d’un ordinateur se trouve le programme en cours d’exécution ?
10 - Quelle est la particularité d’un microcontrôleur vis-à-vis d’un ordinateur ?

3
UP Électronique Édition 2017
Microcontrôleur NG

CHAPITRE 2 : PRESENTATION DE LA CARTE ARDUINO


Objectifs du cours :
 Connaître la composition matérielle d’une carte Arduino UNO ;
 Prendre en main de l’Environnement de Développement Intégré (EDI) Arduino.
Prérequis :
Durée du cours : 2 Heures

I- GENERALITES
La plus grande partie des systèmes électroniques complexes utilisés de nos jours sont des systèmes
embarqués. Ce sont des systèmes électroniques et informatiques autonomes, souvent temps réel, spécialisés
dans une tâche bien précise. On les rencontre dans différentes applications tels que les systèmes de
communication, de sécurité, de contrôle des processus industriels.
En général, le schéma fonctionnel d’un système électronique se présente comme suit :

Alimentation

Unité Unité de Unité de


d’entrée traitement sortie

Unité de
commande

Figure I.1 : Schéma fonctionnel d’un système électronique


 L’unité d’entrée
Elle permet d’acquérir l’information (données) d’entrée qu’elle transmet par la suite à l’unité de traitement.
Exemples : les capteurs et le clavier.
 L’unité de traitement
Elle permet de traiter et d’exécuter une action en fonction du contenu dans l’information qu’elle a reçu.
Exemple : Microcontrôleur.
 L’unité de sortie
Elle est chargée de concrétiser l’ordre qu’elle reçoit de l’unité de traitement.
Exemples : un écran d’affichage.
 L’unité de commande
Elle permet de contrôler et de paramétrer le système.
Exemple : Bouton de Marche/Arrêt
 L’alimentation :
Elle permet de fournir de l’énergie nécessaire à une unité pour son fonctionnement.
DFR Génie Électronique et Électronique

Exemple : Pile

II- PRESENTATION DE LA CARTE ARDUINO


La carte Arduino est un projet créé par une équipe de développeurs. C’est un outil qui permet aux
débutants, amateurs ou professionnels de créer des systèmes électroniques plus ou moins complexes.
Une carte Arduino donne la possibilité d'allier les performances de la programmation à celles de
l'électronique. Cette carte nous permet de réaliser un grand nombre de projets qui ont une application dans
tous les domaines.
On distingue plusieurs types de carte ARDUINO parmi lesquelles nous pouvons citer :
 La carte Arduino NANO
 La carte Arduino UNO
 La carte Arduino MEGA
 La carte Arduino MEGA 2560

4
UP Électronique Édition 2017
Microcontrôleur NG

1- Vue d’ensemble de la carte Arduino UNO


La carte Arduino UNO se présente comme suit :

Figure 2 : Carte Arduino UNO

2- Composition de la carte Arduino


Une présentation globale de la carte Arduino UNO met en évidence cinq (05) principales composantes
matérielles :
2-1- Alimentation
Pour fonctionner, la carte Arduino UNO peut-être alimentée soit par le biais de la connexion USB (qui
fournit 5 V avec un courant maximum de 500 mA) soit à partir d'une alimentation externe. La source
d'alimentation est sélectionnée automatiquement par la carte.
L'alimentation externe (non-USB) peut être soit un adaptateur secteur (pouvant fournir typiquement de 3
V à 12 V sous 500 mA) ou des piles.
Les broches d'alimentation sont les suivantes :
 VIN
La tension d'entrée positive lorsque la carte Arduino est utilisée avec une source de tension externe
(à distinguer du 5V de la connexion USB ou autre source 5V régulée).
La carte peut être alimentée à l'aide de cette broche. Si l'alimentation est fournie par le jack
DFR Génie Électronique et Électronique

d'alimentation, l’accès à la tension d'alimentation se fait via cette broche.


 5V
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, de la connexion USB (qui fournit du 5V régulé) ou de toute autre source
d'alimentation régulée.
 3.3V
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 de l'ATmega) de la carte est disponible.
L'intensité maximale disponible sur cette broche est de 50 mA.
 GND
Broche de masse (ou 0V).

6
UP Électronique Édition 2017
Microcontrôleur NG

2-2- Microcontrôleur
Il s’agit du microcontrôleur ATmega328 du fabricant ATMEL. C’est l’élément central de la carte
Arduino. Il est chargé de recevoir le programme informatique en le stockant dans sa mémoire puis
de l’exécuter. Grâce à ce programme, il saura communiquer avec les autres composantes du système
électronique.
Le microcontrôleur ATmega328 dispose de 32 Ko de mémoire FLASH pour stocker le programme
dont 0,5 Ko également utilisés par le bootloader2. Il a également 2 ko de mémoire SRAM (volatile)
et 1 Ko d'EEPROM.
2-3- Entrées et sorties numériques
Chacune des 14 broches numériques de la carte UNO (numérotées des 0 à 13) 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 40 mA
d'intensité.
De plus, certaines broches ont des fonctions spécialisées :
 Communication Série :
Broches 0 (RX) et 1 (TX). Utilisées pour recevoir (RX) et transmettre (TX) les données séries de
niveau TTL.
 Interruptions Externes :
Broches 2 et 3. 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 (largeur d'impulsion modulée):
Broches 3, 5, 6, 9, 10, et 11. Ces broches fournissent une impulsion PWM 8-bits.
 SPI (Interface Série Périphérique) :
Broches 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ces broches supportent la communication
SPI (Interface Série Périphérique) disponible avec la librairie pour communication SPI. Les broches
SPI sont également connectées sur le connecteur ICSP qui est mécaniquement compatible avec les
cartes Mega.
 I2C:
Broches 4 (SDA) et 5 (SCL). Supportent les communications de protocole I2C (ou interface TWI
(Two Wire Interface - Interface "2 fils"), disponible en utilisant la librairie Wire/I2C (ou TWI - Two-
Wire interface - interface "2 fils").
 LED :
Broche 13. Il y a une LED incluse dans la carte connectée à la broche 13. Lorsque la broche est au
niveau HAUT, la LED est allumée, lorsque la broche est au niveau BAS, la LED est éteinte.
2-4- Broches analogiques
La carte Arduino UNO dispose de 6 entrées analogiques (numérotées de 0 à 5), chacune pouvant
fournir une mesure d'une résolution de 10 bits (c’est-à-dire sur 1024 niveaux soit de 0 à 1023).
Par défaut, ces broches mesurent entre le 0V (valeur 0) et le 5V (valeur 1023), mais il est possible
de modifier la référence supérieure de la plage de mesure.
DFR Génie Électronique et Électronique

Les broches analogiques peuvent être utilisées en tant que broches numériques : elles sont numérotées
en tant que broches numériques de 14 à 19.
2-5- Autres broches
Il y a deux autres broches disponibles sur la carte Arduino UNO :

 AREF :
Tension de référence pour les entrées analogiques (si différent du 5V).
 Reset :
Mettre cette broche au niveau BAS entraîne la réinitialisation (le redémarrage) du microcontrôleur.
Typiquement, cette broche est utilisée pour ajouter un bouton de réinitialisation sur le circuit qui
bloque celui présent sur la carte.

2
Le bootloader est un programme préprogrammé une fois pour toute dans l'ATméga et qui permet la communication entre l'ATmega et le logiciel
Arduino via le port USB, notamment lors de chaque programmation de la carte.

7
UP Électronique Édition 2017
Microcontrôleur NG

3- Brochage
Le brochage de la carte Arduino UNO est le suivant :

4- Caractéristiques principales
Les principales caractéristiques d’une carte Arduino UNO sont les suivantes :
 Alimentation via port USB ou 7 à 12 V sur connecteur alimentation
 Microcontrôleur ATMega 328
 Mémoire flash de 32 kB
 Mémoire SRAM de 2 kB
 Mémoire EEPROM de 1 kB
 14 broches d'E/S dont 6 PWM
 6 entrées analogiques 10 bits
 Intensité par E/S de 40 mA
 Cadencement de 16 MHz
 Bus série, I2C et SPI
 Gestion des interruptions
La carte ARDUINO doit sa popularité aux logiciels qui facilitent la mise en œuvre du microcontrôleur et
aussi à une grande communauté d’utilisateurs.
DFR Génie Électronique et Électronique

III- PROGRAMMATION DE LA CARTE ARDUINO


1- Logiciel de programmation
Pour programmer la carte Arduino UNO, nous utiliserons l’Environnement de Développement Intégré
(EDI) Arduino. Cet environnement de développement intégré (EDI) possède :
 Un éditeur qui sert à écrire facilement un programme ;
 Un compilateur qui permet de corriger les fautes de syntaxe dans les programmes, d’éditer les liens
(linker), de traduire les instructions en binaire (traducteur), de transmettre les instructions du PC
à la carte ARDUINO (fonction de transfert) ;
 Un ensemble de fonctions stockées dans une bibliothèque ;
 Un langage de programmation. Il s’agit du « C ARDUINO ».
Téléchargement de l’IDE Arduino
Pour télécharger l’IDE Arduino, il faut se rendre sur la page de téléchargement du site
(https://www.arduino.cc/en/Main/Software).

8
UP Électronique Édition 2017
Microcontrôleur NG

2- Interface du logiciel
L’interface du logiciel Arduino peut être décomposée en quatre (04) parties comme l’illustre la figure ci-
dessous :

1
2

Figure 3 : Interface du logiciel Arduino

Correspondance :
 Le cadre 1 :
Ce sont les options de configuration du logiciel
 Le cadre 2 :
Il contient les boutons qui vont nous servir lorsque l’on va programmer nos cartes.
 Le cadre 3 :
Ce bloc va contenir le programme que nous allons créer
 Le cadre 4 :
Celui-ci est important, car il va nous aider à corriger les fautes dans notre programme. C’est le débogueur.
DFR Génie Électronique et Électronique

9
UP Électronique Édition 2017
Microcontrôleur NG

CHAPITRE 3 : INTRODUCTION A LA PROGRAMMATION EN LANGAGE « C ARDUINO »


Objectifs du cours :
 Connaître la structure générale d’un programme en langage « C Arduino » ;
 Apprendre les bases de la programmation en langage « C Arduino » ;
 Prendre en main le logiciel de simulation électronique « Proteus Version 8.6 ».
Prérequis :
Algorithme, Structure de données, Langage C.
Durée du cours : 3 Heures

I- ETAPES DE CONSTRUCTION D’UN PROGRAMME


La résolution d’un problème par programmation se fait en général en trois étapes :
 L’analyse du problème ;
 L’élaboration de l’organigramme ;
 La programmation dans un langage.
1- Analyse du problème
Il s’agit de réfléchir à une démarche explicite et hiérarchisée de résolution du problème posé. Cette réflexion
doit aboutir à une proposition de solution sous la forme d’un organigramme.
2- Organigramme
C’est une représentation graphique de la résolution du problème. Cette représentation utilise des symboles
bien précis. Les différents symboles graphiques sont :

Début ou Fin

Traitement

Renvoi

Lecture ou Ecriture

Choix ou Test

Sous-programme

Liaison
DFR Génie Électronique et Électronique

Exercice d’application :
Elaborer l’organigramme d’un programme informatique qui permet d’allumer une LED Verte pendant une
durée de 10 s si l’interrupteur K est fermé. La LED Rouge reste allumée si l’interrupteur K est ouvert.
3- Programmation dans un langage
La programmation dans un langage consiste à traduire l’organigramme dans un langage de programmation.
Dans notre cas le langage de programmation que nous allons utiliser pour ce cours est le langage « C
Arduino ».
La structure d’un programme en langage « C Arduino » se décompose en trois (03) parties :
 La déclaration d’en-tête
 Le corps du programme principal
 Le corps du programme secondaire

10
UP Électronique Édition 2017
Microcontrôleur NG

II- STRUCTURE GENERALE D’UN PROGRAMME EN LANGAGE « C ARDUINO »

1- La déclaration d’en-tête
Cette partie du programme comporte :
 La déclaration des fichiers en-tête des bibliothèques
Syntaxe : #include <NomFichier>
Il s’agit d’une directive destinée au compilateur afin d'inclure les fonctions intégrées à la bibliothèque (ou
librairie) dont le nom du fichier en-tête est « NomFichier ».
Exemple : #include <MsTimer2.h>
 La définition des constantes
Syntaxe : const TypeConstante NomConstante = ValeurConstante ;
Il s’agit de faire correspondre une valeur particulière (le numéro d’une broche de la carte Arduino) à un
nom significatif (chaine de caractère).
Exemples : const int BrocheLED = 2 ;
 La déclaration des variables globales
Syntaxes : TypeVariable NomVariable ;
TypeVariable NomVariable = ValeurInitiale ;
Une variable globale est une variable qui peut être « vue » et utilisée par n'importe quelle fonction dans un
programme. Les variables locales ne sont visibles que dans la fonction dans laquelle elles ont été déclaré.
Dans le langage « C Arduino », toute variable déclarée en dehors d'une fonction, au niveau de l'en-tête du
programme par exemple, est une variable globale.
2- Le corps du programme principal
Le corps du programme principal est constitué de deux (02) fonctions obligatoires dans tout programme
en langage « C Arduino ». Il s’agit des fonctions « setup () » et « loop () ».
 La fonction « setup () »
La fonction « setup () » est la fonction qui contient les différents codes d’initialisation et de configuration
du matériel utilisé (Carte Arduino, Ecran LCD, Clavier, etc.).
C’est la première fonction du programme à être exécutée. Elle est exécutée une seule fois au démarrage du
programme.
Syntaxe : void setup ()
{
// Instructions à exécuter au démarrage
}

 La fonction « loop () »
Le code contenu dans cette fonction s'exécute sans fin en boucle aussi longtemps que la carte Arduino est
sous tension. Cette fonction peut être vide de contenu.
Syntaxe : void loop ()
{
DFR Génie Électronique et Électronique

// Instructions à exécuter en boucle infinie


}

3- Le corps du programme secondaire


Cette partie est dédiée aux autres fonctions en dehors des fonctions « setup () » et « loop () ». En général
ces fonctions sont appelées dans le programme principal.

Remarque :
 Pour comprendre le rôle des différentes parties d'un programme, il est conseillé d’insérer des
commentaires. Les commentaires ne sont pas interprétés par le programme. Un commentaire est
précédé de « // » par ligne ou compris entre « /* » et « */ ».
 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 dans des parenthèses « ( » et « ) ».

11
UP Électronique Édition 2017
Microcontrôleur NG

III- FONCTIONS EN LANGAGE « C ARDUINO »

1- Fonction vide
Une fonction vide est une procédure. Elle est de type « void » et ne renvoie aucune valeur à la fin de son
exécution.
Syntaxe :
void NomFonctionVide ()
{
// Instructions à exécuter
}
2- Fonction typée
Une fonction typée est une fonction qui renvoie une valeur dont le type correspond au type de la fonction.
Le type de cette fonction est différent de « void ».
Syntaxe :
Type NomFonctionType ()
{
Type NomVariableRenvoyer ;
// Instructions à exécuter
return NomVariableRenvoyer ;
}
Cette fonction renvoie la valeur de la variable « NomVariableRenvoyer » de type « Type ».
3- Fonction paramétrée
Une fonction paramétrée est une fonction typée qui possède des paramètres en argument.
Syntaxe :
Type NomFonctionParametre (Type1 Param1, Type2 Param2)
{
Type NomVariableRenvoyer ;
// Instructions à exécuter
return NomVariableRenvoyer ;
}

Appel de la fonction
Syntaxe : NomFonction (NomVariable) ;

IV- INSTRUCTIONS DE CONTROLE

1- Les instructions conditionnelles

 Instruction « if »
Syntaxe :
if (condition)
DFR Génie Électronique et Électronique

{
Instructions à exécuter si la condition est vraie.
}

 Instruction « if … else »
Syntaxe :
if (condition)
{
Instructions à exécuter si la condition est vraie.
}
Else
{
Instruction à exécuter si la condition est fausse.
}

12
UP Électronique Édition 2017
Microcontrôleur NG

 Instruction « switch … case »


Syntaxe :
Switch (NomVariable)
{
case valeur1 :
Instructions à exécuter dans le cas où la variable « NomVariable » vaut « valeur1 ».
break ;
case valeur2:
Instructions à exécuter dans le cas où la variable « NomVariable » vaut « valeur2 ».
break ;
default :
Instructions à exécuter dans le cas où la variable « NomVariable » vaut une valeur autre que
« valeur1 » et « valeur2 ».
break ;
}

2- Les instructions de répétitions ou d’itérations

 L’instruction « for »
Syntaxe :
for (initialisation ; condition ; opération sur la variable de boucle)

{
Instruction à exécuter tant que la condition est vraie.
}
Elle est généralement utilisée lorsque l'on veut répéter un nombre de fois connu une action.

 L’instruction « while »
Syntaxe :
while (condition)
{
Instruction à effectuer tant que la condition est vraie.
}

 L’instruction « do … while » (faire … tant que)


Syntaxe :
do
{
Instructions à exécuter tant que la condition est vraie.
}
while (condition);
DFR Génie Électronique et Électronique

Les instructions à l’intérieur de la boucle sont toujours exécutées au moins une fois.

13
UP Électronique Édition 2017
Microcontrôleur NG

3- Les instructions de ruptures de séquence

Le langage C propose plusieurs instructions qui permettent d'altérer le contrôle de boucles itératives, soit
en forçant le programme à passer à l'itération 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.

 L’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 ;

 L’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 ;

 L’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 :

 L’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 ;
return (expression) ;
DFR Génie Électronique et Électronique

14
UP Électronique Édition 2017
Microcontrôleur NG

CHAPITRE 4 : GESTION DES ENTREES/SORTIES NUMERIQUES

I- PRESENTATION DES BROCHES NUMERIQUES

1- Définition
Une broche numérique est un point de connexion physique ou encore un port qui permet à la carte Arduino
d’interagir avec d’autres périphériques (un écran LCD, un capteur numérique, etc.) via un signal numérique.
Un signal numérique est un signal qui varie de façon discrète dans le temps. C'est une succession de « 0 »
et de « 1 », appelés bits. On dit qu'il est binaire.
La carte Arduino UNO dispose de quatorze (14) broches numériques numérotées de 0 à 13. Certaines
d’entre elles peuvent également être utilisées en sortie PWM (3 ; 5 ; 6 ; 9 ; 10 et 11) ou pour la
communication série (0 et 1).

2- Fonctionnement
Chaque broche numérique de la carte Arduino UNO peut fonctionner comme une entrée ou une sortie
avec un courant maximal de 40 mA. Chaque broche peut prendre l’un des trois états suivant :
 Un état « HIGH »
 Un état « LOW »
 Un état « INPUT ».

L'état « HIGH » signifie que la broche génère un signal. Cet état se traduit au niveau de la broche par une
tension de 5 V en sortie.
L'état « LOW » signifie que la broche ne génère pas de signal. Cet état se traduit au niveau de la broche
par une tension de 0 V en sortie.
L'état « INPUT » est un état dans lequel la broche reçoit un signal de l’extérieur. La broche est en lecture
ou en entrée.
L’état « HIGH » ou l’état « LOW » permet à la carte Arduino d’actionner un périphérique. Quant à l’état
« INPUT », il permet à un périphérique de fournir une information à la carte Arduino.
DFR Génie Électronique et Électronique

Informations
10 Capteur
Entrée

Arduino UNO

Ordres
3 Actionneur
Sortie

15
UP Électronique Édition 2017
Microcontrôleur NG

II- QUELQUES FONCTIONS DU LANGAGE « C ARDUINO »

1- Configuration des broches

La fonction « pinMode () » permet de configurer une broche en sortie ou en entrée (haute impédance).
Syntaxe : pinMode (Param1, Param2) ;
La fonction « pinMode () » accepte deux (02) paramètres obligatoires.
Param1 : nom ou numéro de broche à configurer.
Param2 : mode de fonctionnement ou orientation de la broche.
Le mode de fonctionnement de la broche peut prendre les valeurs suivantes : OUTPUT (sortie), INPUT
(entrée) ou INPUT_PULLUP (entrée avec résistance interne de rappel).

2- Etat d’une broche numérique

 La fonction « digitalWrite () »

Elle permet de choisir l'état d'une broche.


Syntaxe : digitalWrite (Param1, Param2) ;
La fonction « digitalWrite () » accepte deux paramètres obligatoires.
Param1 : nom ou numéro de broche à configurer.
Param2 : état de la broche.
L'état de la broche peut prendre les valeurs suivantes : HIGH (état haut) ou LOW (état bas).

 La fonction « digitalRead () »

Elle permet de lire l'état d'une broche.


Syntaxe : digitalRead (Param1) ;
La fonction « digitalRead () » accepte un paramètre obligatoire.
Param1 : nom ou numéro de la broche à lire.
La fonction « digitalRead () » retourne une valeur pouvant être : HIGH (état haut) ou LOW (état bas) en
fonction de l'état physique de la broche.

3- Gestion du temps

Le langage « C Arduino » propose plusieurs fonctions pour gérer le temps.

 La 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.
DFR Génie Électronique et Électronique

La valeur retournée doit donc être stockée dans une variable de type « unsigned long ».

 La 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 ».

 La 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).

16
UP Électronique Édition 2017
Microcontrôleur NG

III-APPLICATIONS
1- Clignotement de LEDs commandé par un bouton poussoir
Soit le système électronique ci-dessous.
D7
R7
7
Vcc
390
D6
R6

ON
Reset BTN
6
390

www.TheEngineeringProjects.com
PILE D5
5V AREF R5
5
13 390
PB5/SCK
12
RESET PB4/MISO
11 D4
Vcc ~PB3/MOSI/OC2A
10
R4
VCC ~PB2/SS/OC1B 4
9 390
GND ~ PB1/OC1A 8
PB0/ICP1/CLKO D3
R3
ATMEGA328P-PU
1121
BP 7
ANALOG IN

PD7/AIN1 7 3
Vcc SignalBP 6
A0 ~ PD6/AIN0 6 390
PC0/ADC0 5
A1
PC1/ADC1
~ PD5/T1
4
5 D2
A2
PC2/ADC2
PD4/T0/XCK
3
4 R2
R A3
PC3/ADC3 ~ PD3/INT1 2
3 2
A4 PD2/INT0 2 390
10k PC4/ADC4/SDA 1
A5
PC5/ADC5/SCL
TX PD1/TXD
0
1 D1
RX PD0/RXD SignalBP R1
1
390
ARDUINO UNO

On souhaite faire clignoter un groupe de sept (07) LEDs à l’aide d’une carte Arduino UNO. L’intervalle
de clignotement est de 2 s et un (01) bouton poussoir BP permet d’enclencher (BP enfoncé) et stopper
(BP défoncé) le clignotement des LEDs.
1 - Elaborer l’organigramme du programme informatique.
2 - Ecrire le programme informatique en langage « C Arduino » sous l’IDE Arduino.
3 - Réaliser le schéma du système électronique sous Isis Proteus.
4 - Simuler le fonctionnement du système électronique.
Liste des composants :
Pile --> CELL ; Bouton poussoir --> BUTTON ; Résistance --> RESISTORS (1/2 W ; 5%) ;
Carte Arduino UNO --> ARDUINO UNO ; Diode électroluminescente --> LED (3mm ; Rouge ; digital).

2- Chenillard à LEDs commandé par un bouton poussoir


Soit le système électronique ci-dessous.
Vcc
D7
R7
7
Vcc 390
D6
R6
ON
Reset BTN

6
390
www.TheEngineeringProjects.com

PILE D5
5V AREF R5
5
13
DFR Génie Électronique et Électronique

PB5/SCK 390
12
RESET PB4/MISO
11 D4
Vcc SignalBP Vcc ~PB3/MOSI/OC2A
10
R4
VCC ~PB2/SS/OC1B 4
9 390
GND ~ PB1/OC1A 8
PB0/ICP1/CLKO D3
BP R3
ATMEGA328P-PU
1121

7
ANALOG IN

PD7/AIN1 7 3
6 390
A0 ~ PD6/AIN0 6
PC0/ADC0 5
A1
PC1/ADC1
~ PD5/T1
4
5 D2
A2
PC2/ADC2
PD4/T0/XCK 4 R2
R A3 ~ PD3/INT1
3
3 2
10k PC3/ADC3 2
A4 PD2/INT0 2 390
PC4/ADC4/SDA 1
A5
PC5/ADC5/SCL
TX PD1/TXD
0
1 D1
RX PD0/RXD SignalBP R1
1
390
ARDUINO UNO

On souhaite réaliser un chenillard à LEDs à l’aide d’une carte Arduino UNO. L’intervalle de temps entre
chaque allumage de LED est de 1 s et un (01) bouton poussoir BP permet d’enclencher (BP enfoncé) et
stopper (BP défoncé) le chenillard.
Programmer la carte Arduino UNO puis simuler le fonctionnement du système.

17
UP Électronique Édition 2017

Vous aimerez peut-être aussi