SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
L’ESSENTIEL SUR LE
MICROCONTRÔLEUR ET LA
CARTE ARDUINO UNO
Module I
Arduino Uno Rev3
Théorique
Préparé par:
TANDU SUAMUNU Byorn
MUNENA MPOYI Schadrack
NABURACHA MURANGA David
© 2016
PLAN
LES FONDAMENTALES DU MCU;
ENVIRONNEMENT ARDUINO;
PROGRAMMATION EN ARDUINO.
LES FONDAMENTALES DU MCU
Les MCUs sont à nos jours aussi fréquents dans les domaines tels
que: les télécommunications (téléphones mobiles, modem,...),
industriel (Automates programmables, imprimantes 3D,…),
automobile (tableau de bord, contrôle des sièges,…), domotique
(micro-ondes, machines à café,…), militaire (sonde, robots,
lanceurs des fusées,...), etc
1. OÙ EN SOMMES-NOUSAVEC LES MCUs?
Ils ont atteint une fréquente utilisation en 2014 avec 18,6 milliards
d’unités vendues et une croissance de 12% l’année dernière (2015)
(20.832.000.000 d’unités vendues) selon IC Insights. Ces bêtes
programmables deviennent de plus en plus des autoroutes pour
atteindre nos villes (targets) en pleine révolution.
LES FONDAMENTALES DU MCU
Le microcontrôleur (µC ou MCU pour MicroController Unit en
anglais) est un circuit programmable capable d’exécuter un
programme et possédant des circuits d’interface intégrés (entrées-
sorties) avec le monde extérieur. En d’autre terme, le MCU est un
mini-ordinateur sans clavier ni écran mais capable d’interagir avec
le monde extérieur grâce à ses interfaces d’entrées-sorties
intégrées.
2. QUID MCU?
Apparu vers les années 1970 dont Intel fut le premier, ce dernier
peut avoir 6 à 200 pattes pour interagir avec le monde extérieur (y
compris celles d’alimentation) et généralement de 4-bits (pour sa
première apparition et en disparition), 8-bits (le plus répandu), 16-
bits et 32-bits (de plus en plus fréquents à nos jours).
LES FONDAMENTALES DU MCU
Un système à MCU est un système ayant en global un interfaçage
d’entrée (une unité d’acquisition), une unité de traitement et un
interfaçage de sortie (une unité de sortie).
3. STRUCTURE D’UN SYSTÈME A MCU
INTERFACAGE
D’ENTREE
UNITE
CENTRALE DE
TRAITEMENT
INTERFACAGE
DE SORTIE
UNITE DETRAITEMENT ELECTRONIQUE
MCU
Capteur/
Données
en sortie
Actionneur/
Données en
sortie
LES FONDAMENTALES DU MCU
3. STRUCTURE D’UN SYSTÈME A MCU
LES DONNÉES EN ENTRÉE:
Les données en entrée peuvent être d’origine diverses, elles peuvent
provenir de capteurs (température, humidité,…), d’un clavier (pour le
dialogue homme-machine), etc. Donc, toutes ces données sont
acquisitionées par l’interface d’entrée.
L’UNITE CENTRALE DETRAITEMENT:
L’unité centrale de traitement est destinée au traitement de
données/informations acquisitionées par l’unitée d’interfaçage d’entrée
afin de fournir les données/informations nécessaires à la sortie.
LES DONNEES EN SORTIE:
Les données en sortie représentent le résultat attendu du traitement
spécifié par le programme des données en entrée.
LES FONDAMENTALES DU MCU
3. STRUCTURE D’UN SYSTÈME A MCU
Hormis cette vision globale, un MCU contient en son sein les éléments ci-après:
 Microprocesseur : Abrégé autre fois μP ou CPU pour Central Processing
Unit en anglais. Comme dans un ordinateur classique, il est le cerveau d’un
MCU.
 Mémoires : contrairement à un ordinateur classique, le MCU comprend trois
(3) types de mémoires qui se différentie dans l’utilisation avec celles d’un
ordinateur classique.
• RAM (Random Access Memory) : contient le programme d’exécution
du MCU et elle est volatile c’est-à-dire les informations stockées se
perdent dès mise hors tension. Sa taille peut aller de 256 octets à 1Ko
mais, elle peut être élargie par une RAM externe de 32Ko.
• ROM (Read Only Memory) : Elle contient généralement le
programme de l’utilisateur et n’est accessible qu’en lecture seule.
• EPROM (Erasable Programmable Read Only Memory) : est une
mémoire ayant les mêmes propriétés qu’une ROM mais
programmable. C’est-à-dire le programme en son sein peut être
effacé par les rayons UV ainsi, elle peut être reprogrammée.
LES FONDAMENTALES DU MCU
3. STRUCTURE D’UN SYSTÈME A MCU
 Timer/horloge : elle donne la référence temporelle au MCU pour exécuter
les instructions.
 Chien de garde : Est une structure de contrôle du bon déroulement du
programme pouvant être interne ou externe du MCU.
 Le reset à la mise sous tension : avant le lancement du programme, le MCU
a besoin d’un temps minimum qui est donné par la documentation du
constructeur et par conséquent, il faut produire un signal de durée
supérieure à la mise sous tension.
 Surveillance de l’alimentation : lorsqu’une chute de tension dans
l’alimentation est détectée, cette structure produit un reset au MCU.
 Les périphériques : sont les périphériques d’interfaçage d’entrées et sorties
du MCU, et de conversion du signal Analogique-Numérique ou l’inverse.
Entre autres : les ports d’entrées-sorties (parallèles et analogiques),, les ports
séries synchrones et asynchrones, la gestion Ethernet, les CAN, les CNA, la
gestion de bus USB, la gestion de bus CAN.
LES FONDAMENTALES DU MCU
4. APPLICATIONS
Ces bêtes programmables sont à nos jours présentes dans tous les systèmes
autonomes destinés à gérer des périphériques c’est-à-dire tout système
ayant le contrôle des périphériques. D’où, ses applications s’avèrent
énormes:
 La technique médicale ;
 Les systèmes de communication ;
 Les technologies de sécurité ;
 Mécatronique et automation industrielle ;
 Moyens de transport ;
 Électronique de consommation;
 Etc.
LES FONDAMENTALES DU MCU
5. CRITERES DE CHOIX
Le choix d’un MCU est porté sur son nombre de pattes, la fréquence du CPU,
la taille du bus de données (8-bits, 16-bits ou 32-bits) et le prix.
6. AVANTAGES
 Diminution de l’encombrement du matériel et du circuit imprimé;
 Simplification du tracé du circuit imprimé p(lus besoin de tracer de bus;
 Augmentation de la fiabilité du système
- nombre de composants réduits;
- connexions composants/supports et composant circuit imprimé.
 Intégration en technologie MOS, CMOS, ou HCMOS:
- diminution de la consommation
 Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux:
- moins cher que les composants qu’il remplace ;
- Diminution des coûts de main d’oeuvre (conception et montage).
 Environnement de programmation et de simulation évolués.
LES FONDAMENTALES DU MCU
7. INCONVENIENTS/DEFAUTS
 le microcontrôleur est souvent surdimensionné devant les besoins de l’application;
 Investissement dans les outils de développement;
 Fabrication uniquement en grande série >1000.
ENVIRONNEMENT ARDUINO
1. QUID ARDUINO?
Arduino est un projet Open Source développé en 2005 par : Massimo
Banzi, David Cuertielles, Tom Igoe, Gianluca Martino, David Mellis, Nicolas
Zambetti. C’est un concept à la fois matériel et logiciel appelé « système
Arduino ».
Retenons qu’Arduino n’est pas un microcontrôleur en soi mais un
environnement à MCU et constitué de plusieurs cartes électroniques
programmables entre autre: entre autre : Uno, Mega, leonardo, Yun,
Duemilanove, Diecimila, Nano, Mini, LilyPAd et Serial. Toutes
programmées par un langage proche/semblable du C appelé langage
Arduino et faisant l’objet de nos travaux pratiques.
ENVIRONNEMENT ARDUINO
2. CARACTERISTIQUES ARDUINO UNO
 Microcontrôleur : ATmega328
 Tension de fonctionnement : 5V
 Tension d'Input (recommandée) : 7-12V
 Tension d'Input : (limites) : 6 -20V
 Pins I/O digitales : 14 (dont 6 sont des PWM - modulation de largeur d'impulsions)
 Pins InputAnalogiques : 6 (A0, A1, A2, A3, A4 et A5)
 Courant DC par pin I/O : 40 mA
 Courant DC pour la broche 3.3V : 50 mA
 Mémoire Flash : 32 KB (ATmega328) dont 0.5 KB utilisé par le 'bootloader'
 SRAM : 2 KB (ATmega328)
 EEPROM : 1 KB (ATmega328)
 Fréquence d'horloge: 16 MHz
La carte Arduino Uno a les caractéristiques ci-après:
ENVIRONNEMENT ARDUINO
2. CARACTERISTIQUES ARDUINO UNO
ENVIRONNEMENT ARDUINO
3. QUE PILOTERA ARDUINO?
Tout dispositif technique (ou un appareil ou une machine d’un domaine
quelconque) peut être contrôlé d’une manière automatique ou par un
ordinateur, il suffit juste d’une interface compatible avec ce dispositif et
d’un programme/logiciel adapté.
De même, la carte Arduino peut commander/piloter une large gamme de
dispositifs, il suffit de la munir d’un programme adapté. En réalité, elle est
une des interfaces pour piloter ces dispositifs techniques.
Donc, la carte Arduino comme tout MCU peut commander un actionneur
ou un pré-actionneur pour commander une partie puissance (le cas des
Moteurs avec des relais).
ENVIRONNEMENT ARDUINO
3. QUE POURRA PILOTER LA CARTE ARDUINO?
C’est ainsi, elle peut piloter:
 Un moteur;
 Un afficheur ou plus (le cas de montre digitale ou chronomètre);
 Une télévision;
 Des lampes;
 Une plaque chauffante;
 Une alarme (le cas de détecteur d’intrusion, )
 Une micro-onde;
 Etc.
En conclusion, les applications de la carte Arduino ou du
MCU se différent selon l’imagination du programmeur
car, elles sont multiples.
ENVIRONNEMENT ARDUINO
3. PROBLEMATIQUE DE PILOTAGE?
Comment utiliser ladite carte avec ces diverses
applications d’autant plus qu’elle ne délivre qu’une
tension de +5v DC sur toutes ses bornes (le cas d’un
moteur à 12v DC par exemple), elle ne possède aucune
antenne pour envoyer les informations à distance (le cas
d’une alarme détecteur d’intrusion),…?
ENVIRONNEMENT ARDUINO
Les développeurs du projet Arduino ont prévu les solutions ci-après:
4. SOLUTIONS/ASTUCES
 Les cartes d’extension pour remplir certaines fonction, entre autre:
• Shield Motor;
• Shield GSM;
• Etc.
 Utilisation des montages électroniques;
 Utilisation des circuits intégrés pour élargir les E/S afin de remplir certaines
fonctions.
De même, seule la carte ne suffit pour répondre à certaines attentes. C’est
ainsi, elle est raccordé à des composants tels que: Les composants actifs et
passifs (Résistances fixe et variables, diodes, condensateurs,…), Décodeur
BCD, etc.
PROGRAMMATION EN ARDUINO
Comme évoqué ci-haut, un MCU est une bête programmable. alors
comment le programmer et avec quel langage s’y prendre?
Un MCU est programmé grâce à un programmateur (ressemblant à un
socket) dont le programme (codé dans un langage approprié) est téléversé à
partir d’un PC moyennant un compilateur.
Un MCU peut être programmé dans un langage:
o Machine;
o Assembleur;
o Haut niveau (C, C++, Java,…).
Mais, la majorité des MCUs sont programmés en C. Ainsi,Arduino est proche
de C.
LE LANGAGE ARDUINO
Un langage de programmation est une grammaire formelle qui inclut
des symboles et des règles syntaxiques auxquels on associe des règles
sémantiques.
PROGRAMMATION EN ARDUINO
Il en est ainsi pour Arduino qui, malgré sa ressemblance avec le C a ses
propres règles, symboles et syntaxiques.
Donc, avec Arduino, il y a une phase de déclaration, d’initialisation,
appel de fonction, appel de librairies,…
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Commentaire
Un commentaire en langage de programmation est un bout de
mots destinés à documenter le programme et n’est pas exécuté par
le compilateur.
// Ceci est un commentaire simple
/* ceci est un long commentaire */
Son importance est pour un repérage facile lors de la
programmation d’un gros programme contenant beaucoup de
lignes tant faciles que complexes.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Déclaration des variables
Une variable est un espace réservé dans la mémoire contenant une
information (valeur), qui est caractérisée par un nom et un type.
int nomVariable1 ;
float nomVariable2 ;
char nomVariable3 ;
long nomVariable4 ;
Déclarer une variable, c’est créer cet espace prêt à acquérir
l’information. Ainsi, nous avons : int (entier), float (flottant), char
(caractère), long int (entier long), byte et volatile.
Forme : <type> <nom_de_la_variable>
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Déclaration des constantes
Il est parfois nécessaire de déclarer des variables qui ne changeront
pas tout au long de l’exécution du programme, ces variables sont
appelées les constantes.
Const int nomVariable1 ;
Const float nomVariable2 ;
Const char nomVariable3 ;
Forme : <mot_clef> <type> <nom_de_la_variable>
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Déclaration des tableaux
Un tableau est une variable particulière contenant des lignes et des
colonnes. En d’autre terme un tableau est un ensemble fini
d'éléments de même type.
int tab[5] ;
int tab2[3][2] ;
int tab3[2] ;
Forme une dimension : <type> <nom_du_tableau> [<nombre_éléments>]
Forme 2D :<type> <nom_du_tableau> [<nombre_éléments1>][<nombre_éléments2>]
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Affectation
Affecter une variable/tableau, c’est lui attribuer de l’information
(valeur) pour une bonne manipulation. Ce processus est remarqué
par l’opérateur égal (=) et des accolades {} pour le tableau.
int nomVariable1 = 5;
float nomVariable2 = 2.3 ;
char nomVariable3 =’a’;
long nomVariable4 = 1000;
int tab [5] = {1, 2, 3, 4, 5, 6} ;
float tab2 [3] = {1.0, 2.0, 3.0} ;
char tab [] = {’a’, ’c’} ;
Forme : <type> <nom_de_la_variable> = <valeur>
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Opérateurs arithmétiques
L’addition (+), la soustraction (-), la division (/), la multiplication (*)
et le modulo (%) sont des opérateurs arithmétiques.
int nomVariable1 = 5;
int nomVariable2 = 2;
int somme ;
somme = nomVariable1 + nomVariable2
 Opérateurs rationnels
Ces opérateurs comparent deux valeurs, nous avons :
< Strictement inférieur
> Strictement supérieur
!= Différent de
== égal (à ne pas confondre avec le signe d’affectation =)
<= inférieur ou égal
>= supérieur ou égal
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Autres opérations
Hormis les opérations arithmétiques citées ci-haut, le C offre un
raccourci d’ajout et de soustraction d’un nombre que celui existant
appelé l’incrémentation et la décrémentation. Elles sont
remarquées par les signes (++) pour la première (incrémentation) et
(--) pour la deuxième (décrémentation).
int nomVariable1 = 5;
int nomVariable2=nomVariable1++;
int nomVariable3=4 ;
int nomVariable4=nomVariable3-- ;
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 Instructions de controle
Une instruction de contrôle permet de contrôler le fonctionnement
d'un programme. Parmi ces instructions, on distingue les
instructions de branchement et les boucles.
If (expression1)
Instruction1 ;
Else Instruction2 ;
a. Instruction de branchement
Les instructions de branchement permettent de
déterminer quelles instructions seront exécutées et
dans quel ordre.
If (expression1)
Instruction1;
Else if (expression2)
Instruction2;
Else Instruction3;
Branchement simple:
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
//illustration de la forme 1
int nomVariable1 = 5;
int nomVariable2=3
int nomVariable3 ;
if (nomVariable1=5);
nomVariable3=nomVariable1+nomVariable2;
else nomVariable3=nomVariable1-nomVariable2;
//illustration de la forme 2
int nomVariable4 = 4 ;
int nomVariable5 = 2;
int nomVariable6 ;
if (nomVariable4 = 4)
nomVariable6 = nomVariable4 + nomVariable5;
else if (nomVariable4 > 5)
nomVariable6 = nomVariable4 - nomVariable5;
else nomVariable6=nomVariable4 * nomVariable5;
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Branchement multiple:
switch (expression) {
case valeur1 : Instruction1;
break ;
Case valeur2 : Instruction2;
break ;
Case valeurN : InstructionN;
break ;
}
int nomVariable1 = 5;
int nomVariable2=3
int nomVariable3 ;
switch (nomVariable1){
case nomVariable1 = 5 :
nomVariable1 = nomVariable1 + nomVariable2 ;
break ;
case nomVariable1 = 2 :
nomVariable1 = nomVariable1- nomVariable2 ;
break ;
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
b. Les boucles
while (expression){
Instruction;
}
int nomVariable1 = 2 ;
int nomVariable2 = 3;
int nomVariable3 ;
while (nomVariable1 = 2){
nomVariable3 = nomVariable2++;
}
BoucleWHILE
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Do {
Instruction
}
while (expression)
int nomVariable1 = 2 ;
int nomVariable2 = 3;
int nomVariable3 ;
do {
nomVariable3 = nomVariable2++}
while (expression)
Boucle DO…WHILE
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
void nomProcedure () {
Instruction-bloc;
}
int nomFonction (int nomVariable)
{
Instruction-bloc;
Return <expression>;
}
 Procédure et fonction
Une fonction est un bout de codes destiné à effectuer une
tache précise et renvoie généralement une valeur, résultat d’un
calcul.Tandis qu’une méthode ne renvoie pas un résultat.
Forme : déclaration :<type> <nom_de_la_fonction> (<paramètre(s)_de_la_fonction>)
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
pinMode(13,OUTPUT);pinMode(13,INPUT);
 Initialisation des pins
Il est évident que le MCU est une bête donc, ne sait faire que ce que
l’on lui dit de faire c’est-à-dire lui préciser réellement ce que ses pins
seront soit à l’état d’acquisition (initialisé comme entrée) ou de
restitution (initialisé comme sorties)
o Initialisation des pins en entrée et en sortie
Pour initialiser une pin avec Arduino, il suffit d’appeler la fonction
prédéfinie pinMode() en lui donnant comme paramètre, le numéro
de port et l’état, soit en entrée (INPUT) ou soit en sortie (OUTPUT).
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Void setup(){
pinMode(13,OUTPUT);
}
Void setup(){
pinMode(13,INPUT);
}
o Où appeler cette fonction pour initialiser les pins?
Dans la programmation de la carte Arduino, il a été prévu deux
fonctions prédéfinies dont l’une est pour l’initialisation ou la
configuration (void setup()) et l’autre pour la boucle (void loop()).
D’où, comme il s’agit de l’initialisation, toutes ces commandes
seront faites dans void setup().
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
Void loop(){
digitalRead(13);
}
Void loop{
digitalWrite(13,HIGH);
}
 LES FONCTIONS DigitalWrite() et DigitalRead()
Après la configuration, il sera question d’activer lesdites pins à l’état
haut qui correspond à fournir une tension de +5v (HIGH) ou bas qui
correspond à 0v (LOW) ou encore de lire l’état du capteur au cas où,
la pin a été initialisée en entrée.
DigitaWrite() sert à configurer l’état d’une pin digitale et reçoit deux
paramètres dont le numéro de la pin et son état (HIGH ou LOW).
DigitalRead() sert à lire l’état d’un capteur connectée sur une pin
digitale et recoit en paramètre le numéro de la pin, si possible avec
son état (HIGH ou LOW).
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LES FONCTIONS analogWrite() et analogRead()
Pour lire/afficher une valeur (ou l’état d’un capteur) analogique, il
est évident qu’il faut utiliser les pins analogiques (A1, A2, A3, AA4 et
A5) en utilisant les fonctions soit analogRead() pour la lire et
analogWrite() pour afficher. Ces fonctions reçoivent en paramètre
le numéro de la pin.
Elles peuvent être tout comme les deux précédentes (digitalWrite()
et digitalRead()) appelées partout dans le programme.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
Il est possible qu’un MCU puisse communiquer avec un autre
système à CPU tel qu’un PC, MCU,…
Ainsi, cette interface/liaison permet cette communication entre
systèmes à CPU reposant sur la norme RS232.
C’est-à-dire avec cette liaison, nous pouvons faire communiquer
deux MCUs, cartes Arduino, PCs et autres appareils/dispositifs
supportant cette norme.
La dite liaison est obtenue par un connecteur DB9 qui est presque
plus existant à nos jours mais cela est remédié par un câble USB le
cas de communication PC-Arduino.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
 Communication Arduino Uno et PC
Pour utiliser cette liaison, il faut l’établir non seulement
physiquement c’est-à-dire par un câble mais aussi dans le
programme tout en définissant la vitesse de communication
exprimée en bauds (bds).
void setup(){
Serial.begin(vitesse);
}
Pour établir une communication série, il suffit d’ajouter la syntaxe
ci-dessous dans setup() :
La vitesse s’étend de 110 à
115200 bauds (bds).
void setup(){
Serial.begin(9600);
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
 Communication d’une carte Arduino avec une autre.
Pour relier une carte Arduino avec une autre, il suffit de relier les
deux broches Rx et Tx de l’une avec les Rx et Tx de l’autre. C’est-à-
dire relier Rx de l’une avec Tx de l’autre et Tx de l’une avec Rx de
l’autre.
Rx
Rx
Tx
Tx
Carte 1 Carte 2
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
o Envoi de données
Relier deux systèmes implique le partage des données entre ces
derniers, pour ce cas précis (entre une carte Arduino et un PC) ce
partage se fait dans les deux sens.
Les données qu’enverront la carte Arduino seront prélevées par des
capteurs et envoyées dans un PC via une liaison série pour être
informé de quelques détails.
Pour envoyer des données via cette liaison, il suffit de taper la
commande ci-après:
void loop ()
{
Serial.print(valeur_a_envoyer);
Serial.println(valeur_a_envoyer);
}
La valeur à envoyer est celle
contenant une variable
récupérée par un capteur.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
o Réception de données
Il est évident que cette réception devra se faire soit du PC-Arduino
soit Arduino-PC pour ce cas, c’est la carte qui reçoit donc PC-
Arduino.
 Les fonctions Serial.avalaible() et Serial.read()
Les deux fonctions de l’objet Serial ci-haut permettent de vérifier et
lire les données dans le buffer de réception d’une liaison série. L’une
vérifie la présence d’une donnée si non elle revoie -1.
void loop(){
int donnee = Serial.avalaible();
}
En réalité, ladite fonction
renvoie le nombre de caractères
dans le buffer de réception et au
cas où il y a l’absence, elle
renvoie -1.
En somme, la fonction vérifie seulement la présence des données.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 LA LIAISON SERIE/PORT SERIE
o Réception de données
Dès que les données sont présentent dans le buffer de réception, il est
possible de les lire avec la fonction read() du même objet:
void loop(){
char donnee = Serial.read();
}
Le caractère lu est stocké dans une
variable afin si possible d’être utilisée
ultérieurement.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 ENTREESANALOGIQUES
Ces entrées correspondent à la manipulation des données analogiques via les
pins analogiques (A0, A1, A2, A3, A4, A5)
Les données analogiques proviennent de capteurs tels que: un
potentiomètre, une LDR, un piézoélectrique, un capteur de température,
etc.
Un signal analogique est constitué d’une fréquence, période et amplitude; la
fréquence est le nombre de fois que ce signal change de l’alternance en une
seconde et est l’inverse de la période, et l’amplitude est le niveau maximal de
ce signal.
Une fois l’une de ces entrées est connectée à un capteur le dit signal sera
converti en numérique grâce à un convertisseur analogique-numérique (CAN
intégré dans la carte) afin d’être manipulé par le MCU.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 ENTREESANALOGIQUES
L’acquisition est faite par la fonction analogRead() et reçoit en argument le
numéro de pin analogique.
La fonction retourne une valeur int comprise entre 0 et 1023, et devra être
converti en volt en la multipliant par 5 puis diviser par 1024.
Int valeur=0;
Int capteur=0;
float vExacte=0;
void loop(){
valeur = analogRead(capteur);
vExacte = (valeur*5)/1024;
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 ENTREESANALOGIQUES
Il est possible avec la fonction map() de raccourcir le processus pour
atteindre le même but. Elle prend en argument cinq (5) paramètres dont la
valeur à convertir (acquise par le capteur), le 0, 1023, o et 5000 (5000mV ce
puis diviser par 1000 pour avoir 5v).
Int valeur=0;
Int capteur=0;
float vExacte=0;
void loop(){
valeur = analogRead(capteur);
vExacte = map(valeur, 0, 1023, 0, 5000);
vExacte = vExacte/1000;
}
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
L’acronyme PWM pour Pulse Width Modulation en français Modulation à
Largeur d’Impulsion. Elle est en fait un signal numérique qui, à une fréquence
donnée, a un rapport cyclique qui change.
 PWM/MLI
Le rapport cyclique avec un signal numérique désigne le fait que le niveau
logique 1 peut ou ne pas durer le même temps que le niveau logique 0. Il est
mesuré en pour cent (%). Plus le pourcentage est élevé, plus le niveau
logique 1 est présent dans la période et moins le niveau logique 0 l'est. Et
inversement.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
D’où, la PWM est un signal de
fréquence fixe ayant un rapport
cyclique variant dans le temps.
Ainsi, la fréquence de la PWM avec la
carte Arduino est de 490Hz.
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 PWM/MLI
D’autant plus que la PWM est un signal numérique, sa génération est faite
par la fonction analogWrite() via les pins 3, 5, 6, 9, 10 et 11 dites pins PWM
marquées avec le symbole tilde (~).
La dite fonction reçoit deux (2) paramètres:
1. le numéro de la pin;
2. la valeur du rapport cyclique
(comprise entre 0 et 255).
- 0 représente un rapport cyclique de 0%;
- 127 représente 50%;
- 255 représente 100%;
- pour avoir un rapport cyclique quelconque, il suffit de diviser la valeur
par 255 multipliée par 100 (e.g. 169/255 = 0,6627*100 = 66,27%).
LE LANGAGE ARDUINO
PROGRAMMATION EN ARDUINO
 ENTREESANALOGIQUES et la PWM/MLI
 PWM/MLI
int capteur=0;
void setup(){
pinMode(capteur, OUTPUT);
}
void loop(){
analogWrite(capteur,169);
}
Cette commande/fonction analogWrite()
génère de la PWM avec un rapport cyclique de
66,2%.
Ainsi, avec la PWM il est possible de varier la vitesse d’un moteur à DC.
PROGRAMMATION EN ARDUINO
ANALOG : Analogique.
AREF : Abréviation pour Analog REFerence, référence analogique.
AVAILABLE : Disponible.
BEGIN : Début.
BIT : bit, unit d'information informatique pouvant prendre soit la valeur 0
soit la valeur 1.
BUFFER : Tampon, dans le sens de "zone tampon".
BYTE : Octet, soit un groupe de 8 bits.
bps : Abréviation pour Bits Per Second, Bits Par Seconde. Attention,
abréviation toujours en minuscules.
Les termes ci-dessous sont les plus employés dans ledit domaine de
l’életronique programmée:
LEXIQUE DESTERMES EN ANGLAIS
PROGRAMMATION EN ARDUINO
BREADBOARD: plaque d’expérimentation
CAPACITOR: condensateur
CHAR : Abréviation de CHARacter, caractère (typographique). Type de variable d'une
taille d'un octet. C'est un synonyme de "byte" utilisé pour déclarer des variables
stockant
un caractère ou des chaines de caractères.
DEFINE : Définit.
DIGITAL : Numérique.
DO : Faire.
FALSE : Faux.
FOR : Pour.
GND : Abréviation pour GrouND, la terre. C'est la masse, 0Volt.
HIGH : Haut.
ICSP : Abréviation pour In Circuit Serial Programming, programmation série sur circuit.
IF /THEN/ ELSE : Si / Alors / Sinon.
IN : Souvent l'abréviation pour INput, Entre. Est toujours en rapport avec le sens
extérieur vers carte Arduino.
LEXIQUE DESTERMES EN ANGLAIS
PROGRAMMATION EN ARDUINO
INCLUDE : Inclut.
INPUT : Entrée.
IS : Est (souvent dans le sens d'une question : Est ?).
INT : Abréviation pour INTeger, entier. Groupe de 16 bits, 2 octets groupés, considérés
comme représentant un nombre entier négatif ou positif.
LONG : Abréviation pour "entier long". Groupe de 32 bits, 4 octets groupés, considérés
comme représentant un nombre entier négatif ou positif.
LOOP : Boucle.
LOW : Bas.
OUT : Souvent l'abréviation pour OUTput, Sortie. Est toujours en rapport avec le sens
carte Arduino vers extérieur.
OUTPUT : Sortie.
PIN : Broche.
POWER : Puissance, alimentation.
PWM : Abréviation de (Pulse Width Modulation), soit Modulation en Largeur
d'Impulsion.
PWR : Abréviation pour PoWeR, puissance, alimentation.
READ: Lire.
LEXIQUE DESTERMES EN ANGLAIS
PROGRAMMATION EN ARDUINO
RESISTOR: résistance.
RELAY: relais.
RX : Abréviation pour Receive, réception.
SERIAL : Série.
SETUP : Initialisation.
SENSOR: capteur
TRUE : Vrai.
TX: AbréviationTransmit, transmission (mission).
WIRE: câble
WHILE : Tant que.
WORD : mot, soit dans le mot de langage ; soit dans le sens d'un groupe de 16 bits, 2
octets groups considérés comme représentant un nombre entier positif (>= 0).
WRITE: Écrire.
LEXIQUE DESTERMES EN ANGLAIS
BIBLIOGRAPHIE - WEBOGRAPHIE
WEBOGRAPHIE
1. http://www.electronique-mixte.fr/kits-de-developpement-processeurs-et-
microcontroleurs/kit-msp430-de-ti/.
2. http://www.wikipedia.org/wiki/Langage_de_programmation
1. Arduino pour bien commencer en électronique et en programmation,
Astalaseven, Eskimon et olyte, site du zero, 2012 inédit;
2. Les microcontrôleurs dans les systèmes embarqués, Elham Firouzi, Haute
école spécialisée bernoise, Janvier 2012 inédit;
3. Microprocesseurs & Microcontrôleurs, Sylvain MONTAGNY, Université de
Savoie,
4. Les microcontrôleurs, JérômeVICENTE, université de Marseille, 2005 inédit.
BIBLIOGRAPHIE
FEEDBACK
E-mails: byorntandu@gmail.com
naburacha.muranga@gmail.com
Mobiles: +243 85 10 66 991
+243 81 32 20 189
+243 81 74 11 819
Microcontroleur arduino uno

Contenu connexe

Tendances

Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarquéHoussem Rouini
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic nawzat
 
Crouzet Automation - Guide de sélection
Crouzet Automation - Guide de sélectionCrouzet Automation - Guide de sélection
Crouzet Automation - Guide de sélectionCrouzet
 
Benchmarking des kits de developpement _ Usine IO
Benchmarking des kits de developpement _ Usine IOBenchmarking des kits de developpement _ Usine IO
Benchmarking des kits de developpement _ Usine IODorian Schnepp
 
Crouzet Automation - Millenium3 French version
Crouzet Automation - Millenium3 French versionCrouzet Automation - Millenium3 French version
Crouzet Automation - Millenium3 French versionCrouzet
 
Rapport: Robot supervisor
Rapport: Robot supervisorRapport: Robot supervisor
Rapport: Robot supervisorMalak Talbi
 
Newsletter enregistreur video
Newsletter enregistreur videoNewsletter enregistreur video
Newsletter enregistreur videoPrismaInstruments
 
Séance 2 robo cept.ppt
Séance 2 robo cept.pptSéance 2 robo cept.ppt
Séance 2 robo cept.pptWiem Ben Ayed
 
Projet ima4 descamd_michel (1)
Projet ima4 descamd_michel (1)Projet ima4 descamd_michel (1)
Projet ima4 descamd_michel (1)bourouissi
 
Api cours
Api coursApi cours
Api coursBel Ami
 
les-automates-programmables-industriels
les-automates-programmables-industrielsles-automates-programmables-industriels
les-automates-programmables-industrielselectrolouhla
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded SystemsSara Morgan
 
cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)Hạ Cháy
 
08 automates programmables
08 automates programmables08 automates programmables
08 automates programmablesbadr zaimi
 
Notice alarme-cobra-7905 par autoprestige-alarmes
Notice alarme-cobra-7905 par autoprestige-alarmesNotice alarme-cobra-7905 par autoprestige-alarmes
Notice alarme-cobra-7905 par autoprestige-alarmesautoprestige
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de courssarah Benmerzouk
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réelmikhailether
 

Tendances (19)

Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarqué
 
Conception avec pic
Conception avec pic Conception avec pic
Conception avec pic
 
Crouzet Automation - Guide de sélection
Crouzet Automation - Guide de sélectionCrouzet Automation - Guide de sélection
Crouzet Automation - Guide de sélection
 
Benchmarking des kits de developpement _ Usine IO
Benchmarking des kits de developpement _ Usine IOBenchmarking des kits de developpement _ Usine IO
Benchmarking des kits de developpement _ Usine IO
 
Crouzet Automation - Millenium3 French version
Crouzet Automation - Millenium3 French versionCrouzet Automation - Millenium3 French version
Crouzet Automation - Millenium3 French version
 
Rapport: Robot supervisor
Rapport: Robot supervisorRapport: Robot supervisor
Rapport: Robot supervisor
 
Newsletter enregistreur video
Newsletter enregistreur videoNewsletter enregistreur video
Newsletter enregistreur video
 
Séance 2 robo cept.ppt
Séance 2 robo cept.pptSéance 2 robo cept.ppt
Séance 2 robo cept.ppt
 
Projet ima4 descamd_michel (1)
Projet ima4 descamd_michel (1)Projet ima4 descamd_michel (1)
Projet ima4 descamd_michel (1)
 
Api cours
Api coursApi cours
Api cours
 
les-automates-programmables-industriels
les-automates-programmables-industrielsles-automates-programmables-industriels
les-automates-programmables-industriels
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
 
cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
08 automates programmables
08 automates programmables08 automates programmables
08 automates programmables
 
Cours api
Cours apiCours api
Cours api
 
Notice alarme-cobra-7905 par autoprestige-alarmes
Notice alarme-cobra-7905 par autoprestige-alarmesNotice alarme-cobra-7905 par autoprestige-alarmes
Notice alarme-cobra-7905 par autoprestige-alarmes
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de cours
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
 

En vedette

EDM Inversión Factsheet (español)
EDM Inversión Factsheet (español)EDM Inversión Factsheet (español)
EDM Inversión Factsheet (español)ignaciopedrosa
 
Fascículo 04
Fascículo 04Fascículo 04
Fascículo 04Skepper63
 
W&N Lunch and Learn with: Cable Green, Creative Commons
W&N Lunch and Learn with: Cable Green, Creative CommonsW&N Lunch and Learn with: Cable Green, Creative Commons
W&N Lunch and Learn with: Cable Green, Creative CommonsCable Green
 
Jornal 11 ediçao junho
Jornal 11 ediçao junhoJornal 11 ediçao junho
Jornal 11 ediçao junhoLu Preslhak
 
Offenes Seminarangebot 2016
Offenes Seminarangebot 2016Offenes Seminarangebot 2016
Offenes Seminarangebot 2016DialogArt
 
Resume H
Resume HResume H
Resume HPeterLI
 
Metales
MetalesMetales
Metalesefrej4
 
Historia de la informatica natalia
Historia de la informatica nataliaHistoria de la informatica natalia
Historia de la informatica nataliaNatali Ortega
 
Ruta literària de Miquel Martí i Pol
Ruta literària de Miquel Martí i PolRuta literària de Miquel Martí i Pol
Ruta literària de Miquel Martí i Polarnaurudu
 
Gregorio Fernández-Henarejos Martínez
Gregorio Fernández-Henarejos MartínezGregorio Fernández-Henarejos Martínez
Gregorio Fernández-Henarejos Martínezcarm
 
Locos por la informática.pp.jgt.98 kb
Locos por la informática.pp.jgt.98 kbLocos por la informática.pp.jgt.98 kb
Locos por la informática.pp.jgt.98 kbcepaplusultra
 
2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech
2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech
2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small BiotechMary Syto
 
De què són fets els gens?
De què són fets els gens?De què són fets els gens?
De què són fets els gens?dreaa3
 

En vedette (20)

EDM Inversión Factsheet (español)
EDM Inversión Factsheet (español)EDM Inversión Factsheet (español)
EDM Inversión Factsheet (español)
 
CRI final project
CRI final projectCRI final project
CRI final project
 
Fascículo 04
Fascículo 04Fascículo 04
Fascículo 04
 
W&N Lunch and Learn with: Cable Green, Creative Commons
W&N Lunch and Learn with: Cable Green, Creative CommonsW&N Lunch and Learn with: Cable Green, Creative Commons
W&N Lunch and Learn with: Cable Green, Creative Commons
 
Jornal 11 ediçao junho
Jornal 11 ediçao junhoJornal 11 ediçao junho
Jornal 11 ediçao junho
 
Offenes Seminarangebot 2016
Offenes Seminarangebot 2016Offenes Seminarangebot 2016
Offenes Seminarangebot 2016
 
Silverline 2011 CO2 savings
Silverline 2011 CO2 savingsSilverline 2011 CO2 savings
Silverline 2011 CO2 savings
 
Resume H
Resume HResume H
Resume H
 
Metales
MetalesMetales
Metales
 
AGBATA VALERIAN OSITA C.V
AGBATA VALERIAN OSITA C.VAGBATA VALERIAN OSITA C.V
AGBATA VALERIAN OSITA C.V
 
Historia de la informatica natalia
Historia de la informatica nataliaHistoria de la informatica natalia
Historia de la informatica natalia
 
Ruta literària de Miquel Martí i Pol
Ruta literària de Miquel Martí i PolRuta literària de Miquel Martí i Pol
Ruta literària de Miquel Martí i Pol
 
Servets bilingualprogramme 2013
Servets bilingualprogramme 2013Servets bilingualprogramme 2013
Servets bilingualprogramme 2013
 
Tour fotográfico
Tour fotográficoTour fotográfico
Tour fotográfico
 
Protocolo etcote
Protocolo etcoteProtocolo etcote
Protocolo etcote
 
Gregorio Fernández-Henarejos Martínez
Gregorio Fernández-Henarejos MartínezGregorio Fernández-Henarejos Martínez
Gregorio Fernández-Henarejos Martínez
 
Nucleo
NucleoNucleo
Nucleo
 
Locos por la informática.pp.jgt.98 kb
Locos por la informática.pp.jgt.98 kbLocos por la informática.pp.jgt.98 kb
Locos por la informática.pp.jgt.98 kb
 
2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech
2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech
2015-11 Mary Syto CTS SoCal Challenges in Global Supply Mgmt in Small Biotech
 
De què són fets els gens?
De què són fets els gens?De què són fets els gens?
De què són fets els gens?
 

Similaire à Microcontroleur arduino uno

Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industrielsHafsaELMessaoudi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Chapitre3.pptx
Chapitre3.pptxChapitre3.pptx
Chapitre3.pptxHachmi3
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfMENNANIZinedine
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptwafawafa52
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptAbdo Brahmi
 
L'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.comL'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.commorin moli
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxAbdo Brahmi
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfDAPcreat
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfWahideArabe
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurssarah Benmerzouk
 
Electronique et-loisirs-n011
Electronique et-loisirs-n011Electronique et-loisirs-n011
Electronique et-loisirs-n011Cecilia Bevilaqua
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industrielAdnane Ahmidani
 

Similaire à Microcontroleur arduino uno (20)

Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Chapitre3.pptx
Chapitre3.pptxChapitre3.pptx
Chapitre3.pptx
 
Cours formation automate
Cours formation automateCours formation automate
Cours formation automate
 
Automates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdfAutomates Programmables Industriels (API).pdf
Automates Programmables Industriels (API).pdf
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.ppt
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.ppt
 
L'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.comL'automate programmable - www.cours-online.com
L'automate programmable - www.cours-online.com
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdf
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Electronique et-loisirs-n011
Electronique et-loisirs-n011Electronique et-loisirs-n011
Electronique et-loisirs-n011
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 

Dernier

GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 

Dernier (20)

GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 

Microcontroleur arduino uno

  • 1. L’ESSENTIEL SUR LE MICROCONTRÔLEUR ET LA CARTE ARDUINO UNO Module I Arduino Uno Rev3 Théorique Préparé par: TANDU SUAMUNU Byorn MUNENA MPOYI Schadrack NABURACHA MURANGA David © 2016
  • 2. PLAN LES FONDAMENTALES DU MCU; ENVIRONNEMENT ARDUINO; PROGRAMMATION EN ARDUINO.
  • 3. LES FONDAMENTALES DU MCU Les MCUs sont à nos jours aussi fréquents dans les domaines tels que: les télécommunications (téléphones mobiles, modem,...), industriel (Automates programmables, imprimantes 3D,…), automobile (tableau de bord, contrôle des sièges,…), domotique (micro-ondes, machines à café,…), militaire (sonde, robots, lanceurs des fusées,...), etc 1. OÙ EN SOMMES-NOUSAVEC LES MCUs? Ils ont atteint une fréquente utilisation en 2014 avec 18,6 milliards d’unités vendues et une croissance de 12% l’année dernière (2015) (20.832.000.000 d’unités vendues) selon IC Insights. Ces bêtes programmables deviennent de plus en plus des autoroutes pour atteindre nos villes (targets) en pleine révolution.
  • 4. LES FONDAMENTALES DU MCU Le microcontrôleur (µC ou MCU pour MicroController Unit en anglais) est un circuit programmable capable d’exécuter un programme et possédant des circuits d’interface intégrés (entrées- sorties) avec le monde extérieur. En d’autre terme, le MCU est un mini-ordinateur sans clavier ni écran mais capable d’interagir avec le monde extérieur grâce à ses interfaces d’entrées-sorties intégrées. 2. QUID MCU? Apparu vers les années 1970 dont Intel fut le premier, ce dernier peut avoir 6 à 200 pattes pour interagir avec le monde extérieur (y compris celles d’alimentation) et généralement de 4-bits (pour sa première apparition et en disparition), 8-bits (le plus répandu), 16- bits et 32-bits (de plus en plus fréquents à nos jours).
  • 5. LES FONDAMENTALES DU MCU Un système à MCU est un système ayant en global un interfaçage d’entrée (une unité d’acquisition), une unité de traitement et un interfaçage de sortie (une unité de sortie). 3. STRUCTURE D’UN SYSTÈME A MCU INTERFACAGE D’ENTREE UNITE CENTRALE DE TRAITEMENT INTERFACAGE DE SORTIE UNITE DETRAITEMENT ELECTRONIQUE MCU Capteur/ Données en sortie Actionneur/ Données en sortie
  • 6. LES FONDAMENTALES DU MCU 3. STRUCTURE D’UN SYSTÈME A MCU LES DONNÉES EN ENTRÉE: Les données en entrée peuvent être d’origine diverses, elles peuvent provenir de capteurs (température, humidité,…), d’un clavier (pour le dialogue homme-machine), etc. Donc, toutes ces données sont acquisitionées par l’interface d’entrée. L’UNITE CENTRALE DETRAITEMENT: L’unité centrale de traitement est destinée au traitement de données/informations acquisitionées par l’unitée d’interfaçage d’entrée afin de fournir les données/informations nécessaires à la sortie. LES DONNEES EN SORTIE: Les données en sortie représentent le résultat attendu du traitement spécifié par le programme des données en entrée.
  • 7. LES FONDAMENTALES DU MCU 3. STRUCTURE D’UN SYSTÈME A MCU Hormis cette vision globale, un MCU contient en son sein les éléments ci-après:  Microprocesseur : Abrégé autre fois μP ou CPU pour Central Processing Unit en anglais. Comme dans un ordinateur classique, il est le cerveau d’un MCU.  Mémoires : contrairement à un ordinateur classique, le MCU comprend trois (3) types de mémoires qui se différentie dans l’utilisation avec celles d’un ordinateur classique. • RAM (Random Access Memory) : contient le programme d’exécution du MCU et elle est volatile c’est-à-dire les informations stockées se perdent dès mise hors tension. Sa taille peut aller de 256 octets à 1Ko mais, elle peut être élargie par une RAM externe de 32Ko. • ROM (Read Only Memory) : Elle contient généralement le programme de l’utilisateur et n’est accessible qu’en lecture seule. • EPROM (Erasable Programmable Read Only Memory) : est une mémoire ayant les mêmes propriétés qu’une ROM mais programmable. C’est-à-dire le programme en son sein peut être effacé par les rayons UV ainsi, elle peut être reprogrammée.
  • 8. LES FONDAMENTALES DU MCU 3. STRUCTURE D’UN SYSTÈME A MCU  Timer/horloge : elle donne la référence temporelle au MCU pour exécuter les instructions.  Chien de garde : Est une structure de contrôle du bon déroulement du programme pouvant être interne ou externe du MCU.  Le reset à la mise sous tension : avant le lancement du programme, le MCU a besoin d’un temps minimum qui est donné par la documentation du constructeur et par conséquent, il faut produire un signal de durée supérieure à la mise sous tension.  Surveillance de l’alimentation : lorsqu’une chute de tension dans l’alimentation est détectée, cette structure produit un reset au MCU.  Les périphériques : sont les périphériques d’interfaçage d’entrées et sorties du MCU, et de conversion du signal Analogique-Numérique ou l’inverse. Entre autres : les ports d’entrées-sorties (parallèles et analogiques),, les ports séries synchrones et asynchrones, la gestion Ethernet, les CAN, les CNA, la gestion de bus USB, la gestion de bus CAN.
  • 9. LES FONDAMENTALES DU MCU 4. APPLICATIONS Ces bêtes programmables sont à nos jours présentes dans tous les systèmes autonomes destinés à gérer des périphériques c’est-à-dire tout système ayant le contrôle des périphériques. D’où, ses applications s’avèrent énormes:  La technique médicale ;  Les systèmes de communication ;  Les technologies de sécurité ;  Mécatronique et automation industrielle ;  Moyens de transport ;  Électronique de consommation;  Etc.
  • 10. LES FONDAMENTALES DU MCU 5. CRITERES DE CHOIX Le choix d’un MCU est porté sur son nombre de pattes, la fréquence du CPU, la taille du bus de données (8-bits, 16-bits ou 32-bits) et le prix. 6. AVANTAGES  Diminution de l’encombrement du matériel et du circuit imprimé;  Simplification du tracé du circuit imprimé p(lus besoin de tracer de bus;  Augmentation de la fiabilité du système - nombre de composants réduits; - connexions composants/supports et composant circuit imprimé.  Intégration en technologie MOS, CMOS, ou HCMOS: - diminution de la consommation  Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux: - moins cher que les composants qu’il remplace ; - Diminution des coûts de main d’oeuvre (conception et montage).  Environnement de programmation et de simulation évolués.
  • 11. LES FONDAMENTALES DU MCU 7. INCONVENIENTS/DEFAUTS  le microcontrôleur est souvent surdimensionné devant les besoins de l’application;  Investissement dans les outils de développement;  Fabrication uniquement en grande série >1000.
  • 12. ENVIRONNEMENT ARDUINO 1. QUID ARDUINO? Arduino est un projet Open Source développé en 2005 par : Massimo Banzi, David Cuertielles, Tom Igoe, Gianluca Martino, David Mellis, Nicolas Zambetti. C’est un concept à la fois matériel et logiciel appelé « système Arduino ». Retenons qu’Arduino n’est pas un microcontrôleur en soi mais un environnement à MCU et constitué de plusieurs cartes électroniques programmables entre autre: entre autre : Uno, Mega, leonardo, Yun, Duemilanove, Diecimila, Nano, Mini, LilyPAd et Serial. Toutes programmées par un langage proche/semblable du C appelé langage Arduino et faisant l’objet de nos travaux pratiques.
  • 13. ENVIRONNEMENT ARDUINO 2. CARACTERISTIQUES ARDUINO UNO  Microcontrôleur : ATmega328  Tension de fonctionnement : 5V  Tension d'Input (recommandée) : 7-12V  Tension d'Input : (limites) : 6 -20V  Pins I/O digitales : 14 (dont 6 sont des PWM - modulation de largeur d'impulsions)  Pins InputAnalogiques : 6 (A0, A1, A2, A3, A4 et A5)  Courant DC par pin I/O : 40 mA  Courant DC pour la broche 3.3V : 50 mA  Mémoire Flash : 32 KB (ATmega328) dont 0.5 KB utilisé par le 'bootloader'  SRAM : 2 KB (ATmega328)  EEPROM : 1 KB (ATmega328)  Fréquence d'horloge: 16 MHz La carte Arduino Uno a les caractéristiques ci-après:
  • 15. ENVIRONNEMENT ARDUINO 3. QUE PILOTERA ARDUINO? Tout dispositif technique (ou un appareil ou une machine d’un domaine quelconque) peut être contrôlé d’une manière automatique ou par un ordinateur, il suffit juste d’une interface compatible avec ce dispositif et d’un programme/logiciel adapté. De même, la carte Arduino peut commander/piloter une large gamme de dispositifs, il suffit de la munir d’un programme adapté. En réalité, elle est une des interfaces pour piloter ces dispositifs techniques. Donc, la carte Arduino comme tout MCU peut commander un actionneur ou un pré-actionneur pour commander une partie puissance (le cas des Moteurs avec des relais).
  • 16. ENVIRONNEMENT ARDUINO 3. QUE POURRA PILOTER LA CARTE ARDUINO? C’est ainsi, elle peut piloter:  Un moteur;  Un afficheur ou plus (le cas de montre digitale ou chronomètre);  Une télévision;  Des lampes;  Une plaque chauffante;  Une alarme (le cas de détecteur d’intrusion, )  Une micro-onde;  Etc. En conclusion, les applications de la carte Arduino ou du MCU se différent selon l’imagination du programmeur car, elles sont multiples.
  • 17. ENVIRONNEMENT ARDUINO 3. PROBLEMATIQUE DE PILOTAGE? Comment utiliser ladite carte avec ces diverses applications d’autant plus qu’elle ne délivre qu’une tension de +5v DC sur toutes ses bornes (le cas d’un moteur à 12v DC par exemple), elle ne possède aucune antenne pour envoyer les informations à distance (le cas d’une alarme détecteur d’intrusion),…?
  • 18. ENVIRONNEMENT ARDUINO Les développeurs du projet Arduino ont prévu les solutions ci-après: 4. SOLUTIONS/ASTUCES  Les cartes d’extension pour remplir certaines fonction, entre autre: • Shield Motor; • Shield GSM; • Etc.  Utilisation des montages électroniques;  Utilisation des circuits intégrés pour élargir les E/S afin de remplir certaines fonctions. De même, seule la carte ne suffit pour répondre à certaines attentes. C’est ainsi, elle est raccordé à des composants tels que: Les composants actifs et passifs (Résistances fixe et variables, diodes, condensateurs,…), Décodeur BCD, etc.
  • 19. PROGRAMMATION EN ARDUINO Comme évoqué ci-haut, un MCU est une bête programmable. alors comment le programmer et avec quel langage s’y prendre? Un MCU est programmé grâce à un programmateur (ressemblant à un socket) dont le programme (codé dans un langage approprié) est téléversé à partir d’un PC moyennant un compilateur. Un MCU peut être programmé dans un langage: o Machine; o Assembleur; o Haut niveau (C, C++, Java,…). Mais, la majorité des MCUs sont programmés en C. Ainsi,Arduino est proche de C.
  • 20. LE LANGAGE ARDUINO Un langage de programmation est une grammaire formelle qui inclut des symboles et des règles syntaxiques auxquels on associe des règles sémantiques. PROGRAMMATION EN ARDUINO Il en est ainsi pour Arduino qui, malgré sa ressemblance avec le C a ses propres règles, symboles et syntaxiques. Donc, avec Arduino, il y a une phase de déclaration, d’initialisation, appel de fonction, appel de librairies,…
  • 21. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Commentaire Un commentaire en langage de programmation est un bout de mots destinés à documenter le programme et n’est pas exécuté par le compilateur. // Ceci est un commentaire simple /* ceci est un long commentaire */ Son importance est pour un repérage facile lors de la programmation d’un gros programme contenant beaucoup de lignes tant faciles que complexes.
  • 22. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Déclaration des variables Une variable est un espace réservé dans la mémoire contenant une information (valeur), qui est caractérisée par un nom et un type. int nomVariable1 ; float nomVariable2 ; char nomVariable3 ; long nomVariable4 ; Déclarer une variable, c’est créer cet espace prêt à acquérir l’information. Ainsi, nous avons : int (entier), float (flottant), char (caractère), long int (entier long), byte et volatile. Forme : <type> <nom_de_la_variable>
  • 23. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Déclaration des constantes Il est parfois nécessaire de déclarer des variables qui ne changeront pas tout au long de l’exécution du programme, ces variables sont appelées les constantes. Const int nomVariable1 ; Const float nomVariable2 ; Const char nomVariable3 ; Forme : <mot_clef> <type> <nom_de_la_variable>
  • 24. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Déclaration des tableaux Un tableau est une variable particulière contenant des lignes et des colonnes. En d’autre terme un tableau est un ensemble fini d'éléments de même type. int tab[5] ; int tab2[3][2] ; int tab3[2] ; Forme une dimension : <type> <nom_du_tableau> [<nombre_éléments>] Forme 2D :<type> <nom_du_tableau> [<nombre_éléments1>][<nombre_éléments2>]
  • 25. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Affectation Affecter une variable/tableau, c’est lui attribuer de l’information (valeur) pour une bonne manipulation. Ce processus est remarqué par l’opérateur égal (=) et des accolades {} pour le tableau. int nomVariable1 = 5; float nomVariable2 = 2.3 ; char nomVariable3 =’a’; long nomVariable4 = 1000; int tab [5] = {1, 2, 3, 4, 5, 6} ; float tab2 [3] = {1.0, 2.0, 3.0} ; char tab [] = {’a’, ’c’} ; Forme : <type> <nom_de_la_variable> = <valeur>
  • 26. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Opérateurs arithmétiques L’addition (+), la soustraction (-), la division (/), la multiplication (*) et le modulo (%) sont des opérateurs arithmétiques. int nomVariable1 = 5; int nomVariable2 = 2; int somme ; somme = nomVariable1 + nomVariable2  Opérateurs rationnels Ces opérateurs comparent deux valeurs, nous avons : < Strictement inférieur > Strictement supérieur != Différent de == égal (à ne pas confondre avec le signe d’affectation =) <= inférieur ou égal >= supérieur ou égal
  • 27. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Autres opérations Hormis les opérations arithmétiques citées ci-haut, le C offre un raccourci d’ajout et de soustraction d’un nombre que celui existant appelé l’incrémentation et la décrémentation. Elles sont remarquées par les signes (++) pour la première (incrémentation) et (--) pour la deuxième (décrémentation). int nomVariable1 = 5; int nomVariable2=nomVariable1++; int nomVariable3=4 ; int nomVariable4=nomVariable3-- ;
  • 28. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  Instructions de controle Une instruction de contrôle permet de contrôler le fonctionnement d'un programme. Parmi ces instructions, on distingue les instructions de branchement et les boucles. If (expression1) Instruction1 ; Else Instruction2 ; a. Instruction de branchement Les instructions de branchement permettent de déterminer quelles instructions seront exécutées et dans quel ordre. If (expression1) Instruction1; Else if (expression2) Instruction2; Else Instruction3; Branchement simple:
  • 29. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO //illustration de la forme 1 int nomVariable1 = 5; int nomVariable2=3 int nomVariable3 ; if (nomVariable1=5); nomVariable3=nomVariable1+nomVariable2; else nomVariable3=nomVariable1-nomVariable2; //illustration de la forme 2 int nomVariable4 = 4 ; int nomVariable5 = 2; int nomVariable6 ; if (nomVariable4 = 4) nomVariable6 = nomVariable4 + nomVariable5; else if (nomVariable4 > 5) nomVariable6 = nomVariable4 - nomVariable5; else nomVariable6=nomVariable4 * nomVariable5;
  • 30. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Branchement multiple: switch (expression) { case valeur1 : Instruction1; break ; Case valeur2 : Instruction2; break ; Case valeurN : InstructionN; break ; } int nomVariable1 = 5; int nomVariable2=3 int nomVariable3 ; switch (nomVariable1){ case nomVariable1 = 5 : nomVariable1 = nomVariable1 + nomVariable2 ; break ; case nomVariable1 = 2 : nomVariable1 = nomVariable1- nomVariable2 ; break ; }
  • 31. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO b. Les boucles while (expression){ Instruction; } int nomVariable1 = 2 ; int nomVariable2 = 3; int nomVariable3 ; while (nomVariable1 = 2){ nomVariable3 = nomVariable2++; } BoucleWHILE
  • 32. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Do { Instruction } while (expression) int nomVariable1 = 2 ; int nomVariable2 = 3; int nomVariable3 ; do { nomVariable3 = nomVariable2++} while (expression) Boucle DO…WHILE
  • 33. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO void nomProcedure () { Instruction-bloc; } int nomFonction (int nomVariable) { Instruction-bloc; Return <expression>; }  Procédure et fonction Une fonction est un bout de codes destiné à effectuer une tache précise et renvoie généralement une valeur, résultat d’un calcul.Tandis qu’une méthode ne renvoie pas un résultat. Forme : déclaration :<type> <nom_de_la_fonction> (<paramètre(s)_de_la_fonction>)
  • 34. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO pinMode(13,OUTPUT);pinMode(13,INPUT);  Initialisation des pins Il est évident que le MCU est une bête donc, ne sait faire que ce que l’on lui dit de faire c’est-à-dire lui préciser réellement ce que ses pins seront soit à l’état d’acquisition (initialisé comme entrée) ou de restitution (initialisé comme sorties) o Initialisation des pins en entrée et en sortie Pour initialiser une pin avec Arduino, il suffit d’appeler la fonction prédéfinie pinMode() en lui donnant comme paramètre, le numéro de port et l’état, soit en entrée (INPUT) ou soit en sortie (OUTPUT).
  • 35. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Void setup(){ pinMode(13,OUTPUT); } Void setup(){ pinMode(13,INPUT); } o Où appeler cette fonction pour initialiser les pins? Dans la programmation de la carte Arduino, il a été prévu deux fonctions prédéfinies dont l’une est pour l’initialisation ou la configuration (void setup()) et l’autre pour la boucle (void loop()). D’où, comme il s’agit de l’initialisation, toutes ces commandes seront faites dans void setup().
  • 36. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO Void loop(){ digitalRead(13); } Void loop{ digitalWrite(13,HIGH); }  LES FONCTIONS DigitalWrite() et DigitalRead() Après la configuration, il sera question d’activer lesdites pins à l’état haut qui correspond à fournir une tension de +5v (HIGH) ou bas qui correspond à 0v (LOW) ou encore de lire l’état du capteur au cas où, la pin a été initialisée en entrée. DigitaWrite() sert à configurer l’état d’une pin digitale et reçoit deux paramètres dont le numéro de la pin et son état (HIGH ou LOW). DigitalRead() sert à lire l’état d’un capteur connectée sur une pin digitale et recoit en paramètre le numéro de la pin, si possible avec son état (HIGH ou LOW).
  • 37. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LES FONCTIONS analogWrite() et analogRead() Pour lire/afficher une valeur (ou l’état d’un capteur) analogique, il est évident qu’il faut utiliser les pins analogiques (A1, A2, A3, AA4 et A5) en utilisant les fonctions soit analogRead() pour la lire et analogWrite() pour afficher. Ces fonctions reçoivent en paramètre le numéro de la pin. Elles peuvent être tout comme les deux précédentes (digitalWrite() et digitalRead()) appelées partout dans le programme.
  • 38. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE Il est possible qu’un MCU puisse communiquer avec un autre système à CPU tel qu’un PC, MCU,… Ainsi, cette interface/liaison permet cette communication entre systèmes à CPU reposant sur la norme RS232. C’est-à-dire avec cette liaison, nous pouvons faire communiquer deux MCUs, cartes Arduino, PCs et autres appareils/dispositifs supportant cette norme. La dite liaison est obtenue par un connecteur DB9 qui est presque plus existant à nos jours mais cela est remédié par un câble USB le cas de communication PC-Arduino.
  • 39. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE  Communication Arduino Uno et PC Pour utiliser cette liaison, il faut l’établir non seulement physiquement c’est-à-dire par un câble mais aussi dans le programme tout en définissant la vitesse de communication exprimée en bauds (bds). void setup(){ Serial.begin(vitesse); } Pour établir une communication série, il suffit d’ajouter la syntaxe ci-dessous dans setup() : La vitesse s’étend de 110 à 115200 bauds (bds). void setup(){ Serial.begin(9600); }
  • 40. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE  Communication d’une carte Arduino avec une autre. Pour relier une carte Arduino avec une autre, il suffit de relier les deux broches Rx et Tx de l’une avec les Rx et Tx de l’autre. C’est-à- dire relier Rx de l’une avec Tx de l’autre et Tx de l’une avec Rx de l’autre. Rx Rx Tx Tx Carte 1 Carte 2
  • 41. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE o Envoi de données Relier deux systèmes implique le partage des données entre ces derniers, pour ce cas précis (entre une carte Arduino et un PC) ce partage se fait dans les deux sens. Les données qu’enverront la carte Arduino seront prélevées par des capteurs et envoyées dans un PC via une liaison série pour être informé de quelques détails. Pour envoyer des données via cette liaison, il suffit de taper la commande ci-après: void loop () { Serial.print(valeur_a_envoyer); Serial.println(valeur_a_envoyer); } La valeur à envoyer est celle contenant une variable récupérée par un capteur.
  • 42. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE o Réception de données Il est évident que cette réception devra se faire soit du PC-Arduino soit Arduino-PC pour ce cas, c’est la carte qui reçoit donc PC- Arduino.  Les fonctions Serial.avalaible() et Serial.read() Les deux fonctions de l’objet Serial ci-haut permettent de vérifier et lire les données dans le buffer de réception d’une liaison série. L’une vérifie la présence d’une donnée si non elle revoie -1. void loop(){ int donnee = Serial.avalaible(); } En réalité, ladite fonction renvoie le nombre de caractères dans le buffer de réception et au cas où il y a l’absence, elle renvoie -1. En somme, la fonction vérifie seulement la présence des données.
  • 43. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  LA LIAISON SERIE/PORT SERIE o Réception de données Dès que les données sont présentent dans le buffer de réception, il est possible de les lire avec la fonction read() du même objet: void loop(){ char donnee = Serial.read(); } Le caractère lu est stocké dans une variable afin si possible d’être utilisée ultérieurement.
  • 44. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  ENTREESANALOGIQUES Ces entrées correspondent à la manipulation des données analogiques via les pins analogiques (A0, A1, A2, A3, A4, A5) Les données analogiques proviennent de capteurs tels que: un potentiomètre, une LDR, un piézoélectrique, un capteur de température, etc. Un signal analogique est constitué d’une fréquence, période et amplitude; la fréquence est le nombre de fois que ce signal change de l’alternance en une seconde et est l’inverse de la période, et l’amplitude est le niveau maximal de ce signal. Une fois l’une de ces entrées est connectée à un capteur le dit signal sera converti en numérique grâce à un convertisseur analogique-numérique (CAN intégré dans la carte) afin d’être manipulé par le MCU.
  • 45. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  ENTREESANALOGIQUES L’acquisition est faite par la fonction analogRead() et reçoit en argument le numéro de pin analogique. La fonction retourne une valeur int comprise entre 0 et 1023, et devra être converti en volt en la multipliant par 5 puis diviser par 1024. Int valeur=0; Int capteur=0; float vExacte=0; void loop(){ valeur = analogRead(capteur); vExacte = (valeur*5)/1024; }
  • 46. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  ENTREESANALOGIQUES Il est possible avec la fonction map() de raccourcir le processus pour atteindre le même but. Elle prend en argument cinq (5) paramètres dont la valeur à convertir (acquise par le capteur), le 0, 1023, o et 5000 (5000mV ce puis diviser par 1000 pour avoir 5v). Int valeur=0; Int capteur=0; float vExacte=0; void loop(){ valeur = analogRead(capteur); vExacte = map(valeur, 0, 1023, 0, 5000); vExacte = vExacte/1000; }
  • 47. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI L’acronyme PWM pour Pulse Width Modulation en français Modulation à Largeur d’Impulsion. Elle est en fait un signal numérique qui, à une fréquence donnée, a un rapport cyclique qui change.  PWM/MLI Le rapport cyclique avec un signal numérique désigne le fait que le niveau logique 1 peut ou ne pas durer le même temps que le niveau logique 0. Il est mesuré en pour cent (%). Plus le pourcentage est élevé, plus le niveau logique 1 est présent dans la période et moins le niveau logique 0 l'est. Et inversement.
  • 48. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI D’où, la PWM est un signal de fréquence fixe ayant un rapport cyclique variant dans le temps. Ainsi, la fréquence de la PWM avec la carte Arduino est de 490Hz.
  • 49. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  PWM/MLI D’autant plus que la PWM est un signal numérique, sa génération est faite par la fonction analogWrite() via les pins 3, 5, 6, 9, 10 et 11 dites pins PWM marquées avec le symbole tilde (~). La dite fonction reçoit deux (2) paramètres: 1. le numéro de la pin; 2. la valeur du rapport cyclique (comprise entre 0 et 255). - 0 représente un rapport cyclique de 0%; - 127 représente 50%; - 255 représente 100%; - pour avoir un rapport cyclique quelconque, il suffit de diviser la valeur par 255 multipliée par 100 (e.g. 169/255 = 0,6627*100 = 66,27%).
  • 50. LE LANGAGE ARDUINO PROGRAMMATION EN ARDUINO  ENTREESANALOGIQUES et la PWM/MLI  PWM/MLI int capteur=0; void setup(){ pinMode(capteur, OUTPUT); } void loop(){ analogWrite(capteur,169); } Cette commande/fonction analogWrite() génère de la PWM avec un rapport cyclique de 66,2%. Ainsi, avec la PWM il est possible de varier la vitesse d’un moteur à DC.
  • 51. PROGRAMMATION EN ARDUINO ANALOG : Analogique. AREF : Abréviation pour Analog REFerence, référence analogique. AVAILABLE : Disponible. BEGIN : Début. BIT : bit, unit d'information informatique pouvant prendre soit la valeur 0 soit la valeur 1. BUFFER : Tampon, dans le sens de "zone tampon". BYTE : Octet, soit un groupe de 8 bits. bps : Abréviation pour Bits Per Second, Bits Par Seconde. Attention, abréviation toujours en minuscules. Les termes ci-dessous sont les plus employés dans ledit domaine de l’életronique programmée: LEXIQUE DESTERMES EN ANGLAIS
  • 52. PROGRAMMATION EN ARDUINO BREADBOARD: plaque d’expérimentation CAPACITOR: condensateur CHAR : Abréviation de CHARacter, caractère (typographique). Type de variable d'une taille d'un octet. C'est un synonyme de "byte" utilisé pour déclarer des variables stockant un caractère ou des chaines de caractères. DEFINE : Définit. DIGITAL : Numérique. DO : Faire. FALSE : Faux. FOR : Pour. GND : Abréviation pour GrouND, la terre. C'est la masse, 0Volt. HIGH : Haut. ICSP : Abréviation pour In Circuit Serial Programming, programmation série sur circuit. IF /THEN/ ELSE : Si / Alors / Sinon. IN : Souvent l'abréviation pour INput, Entre. Est toujours en rapport avec le sens extérieur vers carte Arduino. LEXIQUE DESTERMES EN ANGLAIS
  • 53. PROGRAMMATION EN ARDUINO INCLUDE : Inclut. INPUT : Entrée. IS : Est (souvent dans le sens d'une question : Est ?). INT : Abréviation pour INTeger, entier. Groupe de 16 bits, 2 octets groupés, considérés comme représentant un nombre entier négatif ou positif. LONG : Abréviation pour "entier long". Groupe de 32 bits, 4 octets groupés, considérés comme représentant un nombre entier négatif ou positif. LOOP : Boucle. LOW : Bas. OUT : Souvent l'abréviation pour OUTput, Sortie. Est toujours en rapport avec le sens carte Arduino vers extérieur. OUTPUT : Sortie. PIN : Broche. POWER : Puissance, alimentation. PWM : Abréviation de (Pulse Width Modulation), soit Modulation en Largeur d'Impulsion. PWR : Abréviation pour PoWeR, puissance, alimentation. READ: Lire. LEXIQUE DESTERMES EN ANGLAIS
  • 54. PROGRAMMATION EN ARDUINO RESISTOR: résistance. RELAY: relais. RX : Abréviation pour Receive, réception. SERIAL : Série. SETUP : Initialisation. SENSOR: capteur TRUE : Vrai. TX: AbréviationTransmit, transmission (mission). WIRE: câble WHILE : Tant que. WORD : mot, soit dans le mot de langage ; soit dans le sens d'un groupe de 16 bits, 2 octets groups considérés comme représentant un nombre entier positif (>= 0). WRITE: Écrire. LEXIQUE DESTERMES EN ANGLAIS
  • 55. BIBLIOGRAPHIE - WEBOGRAPHIE WEBOGRAPHIE 1. http://www.electronique-mixte.fr/kits-de-developpement-processeurs-et- microcontroleurs/kit-msp430-de-ti/. 2. http://www.wikipedia.org/wiki/Langage_de_programmation 1. Arduino pour bien commencer en électronique et en programmation, Astalaseven, Eskimon et olyte, site du zero, 2012 inédit; 2. Les microcontrôleurs dans les systèmes embarqués, Elham Firouzi, Haute école spécialisée bernoise, Janvier 2012 inédit; 3. Microprocesseurs & Microcontrôleurs, Sylvain MONTAGNY, Université de Savoie, 4. Les microcontrôleurs, JérômeVICENTE, université de Marseille, 2005 inédit. BIBLIOGRAPHIE